CNAMEで登録したファイルサーバをクロールできない

(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アドレスでクロール設定している方もいると思うので、是非原因の特定をお願いします。

余裕があったら、検索結果画面でファイルのフルパス表示をする方法と、
パスマッピングの設定で、処理の種類にクロールを指定すると差分クロールが出来なくなる件も、調査ください。
(最新バージョンでどれかひとつを修正されても、他の要件に引っ張られて最新バージョンを使えない可能性があるため)

よろしくお願いします。

(from osdn.net/users/shinsuke)

jcifsかFessの不具合だと思うのですが、いかがでしょうか。

Fessではそこで特殊なことはしていないので、jcifsですね。
jcifsもオプションがいろいろとシステムプロパティにあるかと
思うので、そのあたりで調整できるのかもしれません。

パスマッピングの設定で、ホスト名やIPアドレスからCNAME名に変換することはできますが、

表示を選択すれば良いと思います。

(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名のクロールができれば、パスマッピングを使う必要はないのですが、前述のように現状できないので、その回避策としてパスマッピングを使ったらフルクロールになって使えなかったということです。

(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名
は特に不要でした。

(from osdn.net/users/makiyama-shinji)
[メッセージ #79152 への返信]

setspn -L CNAME名
は特に不要でした。

setspn -a host/aliasname targetserver
が不要だったの間違いでした