(from osdn.net/users/makiyama-shinji)
お世話になります、Fess10.0.3をWindows 2012 Serverで構築しました。
他のWindowsファイルサーバでDFSのルートになっている領域を、
ファイルシステムクロールの設定で、smb://ホスト名/パス/ や、smb://IPアドレス/パス/ だとクロールできますが、
smb://CNAME名/パス/ だとクロールできません。
(CNAME名はDNSサーバに登録されているホスト名の別名です)
いずれも障害URLには以下のエラーが出力されます。
Caused by: jcifs.smb.SmbException: A duplicate name exists on the network.
ファイル認証のホスト名の設定は、上記クロール設定に合わせて変えたり、任意:任意 でやってもダメで、
Fessサーバからクロール対象のファイルサーバに対して、net useコマンドで\CNAME名\パス\ をネットワークドライブとして割り当てることはできるので、認証の問題ではなさそうです。
(いずれも同じユーザアカウントとパスワードを使用)
jcifsはNetBIOS名を使っているようですが、何が重複しているのか特定できませんでした。
jcifsかFessの不具合だと思うのですが、いかがでしょうか。
特に変わった使い方をしている認識はありません。
CNAME名を使いたい理由は、CNAME名でurlフィールド指定検索をしたいからです。
(ホスト名やIPアドレスを利用者に見せたくないため)
パスマッピングの設定で、ホスト名やIPアドレスからCNAME名に変換することはできますが、
これをやると差分クロールにならず、毎回フルクロールになって時間がかかって仕方ありません。
(これもFessの不具合だと思います)
もしかしたらFessの最新バージョンではそうはならないのかもしれませんが、
検索結果画面でファイルのフルパス表示をしたくて、
http://blog.goo.ne.jp/szrsrv/e/b882edee2fe6f91c3aec967ef52a1009
を参考に、searchResults.jspに手を加えて使用していて、Fess10.1系では上記修正が効かなくなっていたため、Fess10.0.3を使っています。
経緯を詳しくお伝えしたいばっかりに、指摘ばっかりになってしまいましたが、
同じように困っていて、仕方なくホスト名やIPアドレスでクロール設定している方もいると思うので、是非原因の特定をお願いします。
余裕があったら、検索結果画面でファイルのフルパス表示をする方法と、
パスマッピングの設定で、処理の種類にクロールを指定すると差分クロールが出来なくなる件も、調査ください。
(最新バージョンでどれかひとつを修正されても、他の要件に引っ張られて最新バージョンを使えない可能性があるため)
よろしくお願いします。
discuss
2
(from osdn.net/users/shinsuke)
jcifsかFessの不具合だと思うのですが、いかがでしょうか。
Fessではそこで特殊なことはしていないので、jcifsですね。
jcifsもオプションがいろいろとシステムプロパティにあるかと
思うので、そのあたりで調整できるのかもしれません。
パスマッピングの設定で、ホスト名やIPアドレスからCNAME名に変換することはできますが、
表示を選択すれば良いと思います。
discuss
3
(from osdn.net/users/makiyama-shinji)
返信ありがとうございます。
以下インラインでコメントします。
[メッセージ #79110 への返信]
jcifsかFessの不具合だと思うのですが、いかがでしょうか。
Fessではそこで特殊なことはしていないので、jcifsですね。
jcifsもオプションがいろいろとシステムプロパティにあるかと
思うので、そのあたりで調整できるのかもしれません。
システムプロパティというのは、
D:\fess-10.0.3\app\WEB-INF\conf にあるsystem.propertiesのことでしょうか。
どのように jcifsオプションを書けばいいか、参考になるドキュメント等ないでしょうか。
パスマッピングの設定で、ホスト名やIPアドレスからCNAME名に変換することはできますが、
表示を選択すれば良いと思います。
先のメールにも書きましたが、パスマッピングの設定でクロールを選択せず、
表示だけであれば差分クロールにはなりますが、以下のような形でCNAME名でurlフィールド指定検索ができません。
url:“smb://CNAME名/パス/パス/*”
jcifsでCNAME名のクロールができれば、パスマッピングを使う必要はないのですが、前述のように現状できないので、その回避策としてパスマッピングを使ったらフルクロールになって使えなかったということです。
discuss
4
(from osdn.net/users/makiyama-shinji)
返事くれなそうなので、結果を書いておきます。
「Caused by: jcifs.smb.SmbException: A duplicate name exists on the network.」
で調べると英語のドキュメントで、以下のKBが原因と上げている記事をいくつか見つけました。
https://support.microsoft.com/en-us/kb/281308
これは2003までが対象ですが、2008R2でも同様のようで、
クロールされる側のファイルサーバにレジストリキー追加後、OS再起動したら、
Fessサーバ側からCNAME名でクロールができるようになりました。
setspn -L CNAME名
は特に不要でした。
discuss
5
(from maki-shinji's Profile - OSDN)
[メッセージ #79152 への返信]
setspn -L CNAME名
は特に不要でした。
setspn -a host/aliasname targetserver
が不要だったの間違いでした