Exchange 2007/2010 検索インデックスについて
Exchange 2007/2010 における検索インデックス (コンテンツ インデックス) についてご案内いたします。
検索インデックスの作成は以下の 4 つのサービス (プロセス) が役割を分担して、行われています。
MSExchangeIS
MSExchangeSearch
msftesql-Exchange
msftefd.exe
MSExchangeIS は Information Store サービスで、インデックスする対象のデータの提供元となります。
MSExchangeSearch は作成処理全体のコーディネートの役割を行うサービスで、インデックス作成対象データのリストを msftesql-Exchange へ渡し、インデックス作成を依頼します。
msftesql-Exchange は SharePoint 等でも使用されているインデックス作成を行う Exchange サーバー用のサービスであり、インデックス ファイルを作成・管理します。
msftefd.exe は msftesql-Exchange のワーカー プロセスで、msftesql-Exchange より渡されたデータのワード ブレイク等を実施して、結果を msftesql-Exchange へ返します。
詳細については以下の資料などをご参考ください。
Title: Introduction to Exchange 2007 Search
URL: https://blogs.technet.com/b/exchange/archive/2009/09/14/3408299.aspx
Title: Exchange 2007 Search - Part 2: Content Indexing
URL: https://blogs.technet.com/b/exchange/archive/2009/09/17/3408316.aspx
Title: Exchange 2007 Search - Part 3: The Search Process
URL: https://blogs.technet.com/b/exchange/archive/2009/10/16/3408557.aspx
インデックス作成の状態については、以下の方法で簡単に確認することができます。
・インデックス ファイルがそもそも作成されているか?
メールボックス データベースのフォルダの “CatalogData-<>” というフォルダ内に *.ci ファイルが作成されます。このファイルが作成されていて、フォルダのサイズが目安として データベースのサイズの 5%- 10 % 程度あればインデックスの作成自体は少なくともできていると考えられます。
・ パフォーマンス ログ
MSExchange Search Indices に含まれるカウンタが有効です。一般的には、Number of Documents Successfully Indexed やNumber of Documents That Failed During Indexing などが目安となります。
例えば、インデックス再構築時などに Number of Documents Successfully Indexed がまったく上昇せず、Number of Documents That Failed During Indexing が上昇しているような場合には、処理自体は進んでいますが、何らかの理由で失敗していることが分かります (正常な環境でも Number of Documents That Failed During Indexing は必ずしも 0 ではありません)。
インデックスが正常に作成されていない環境では、まずは以下の点についてご確認いただければと思います。
CRL チェックの無効化
msftesql-Exchange や msftefd.exe の動作において、Certificate Revocation List (CRL) の確認が試みられます。
これが失敗しても動作そのものには影響はありませんが、失敗までに時間がかかるような場合にインデックスが作成できない状況に陥る可能性があります。これは、msftesql-Exchange がmsftefd.exe をタイマーで一定間隔で状態をチェックしており、この間に msftefd.exe が初期化を完了しないような場合に msftesql-Exchange は msftefd.exe を終了するためです (正常時にも、msftefd.exe は必要に応じて起動され、アイドル状態になると msftesql-Exchange により終了されます)。
CRL のチェックでは、https://crl.microsoft.com へのアクセスが試みられますが、インターネットへの接続がない環境では DNS の名前解決等で時間がかかることで、インデックスが正常に作成されない状態になる事例が確認されており、以下の情報をご案内しております。
Title: Exchange Search Fails After Installing Exchange 2007 SP3
URL: https://blogs.technet.com/b/exchangesearch/archive/2011/01/18/exchange-search-fails-after-installing-exchange-2007-sp3.aspx
Title: XADM: Exchange Search Fails After Installing Exchange 2007 SP3
URL: https://support.microsoft.com/kb/2469863/
該当する環境では以下の手順で、CRL チェックを無効化することで回避することができます (CRL チェックを無効化しても、Exchange サーバーの機能に影響はありません)。
※ 以下の手順では、カタログ ファイルの再構築も含めています。
1. Hosts ファイルに以下のエントリを追加して、保存します。
※ Hosts ファイルは、%SystemRoot%\system32\drivers\etc\hosts に格納されております。
127.0.0.1 crl.microsoft.com
2. Microsoft Search Indexer サービスを停止します。
3. Microsoft Search (Exchange) サービスを停止します。
4. 対象のデータベースの CatalogData フォルダを削除 (またはリネーム/移動します)
5. Microsoft Search (Exchange) サービスを開始します。
6. Microsoft Search Indexer サービスを開始します。
注意:
対象のマシンにて、HTTP のプロキシ設定が winhttp またはインターネットのプロパティ (自動構成または手動構成問わず) にて行われている場合には、HOSTS ファイルによる名前解決が行われず、上記手順にて HOSTS ファイルにより意図した無効化ができません。
プロキシが構成されている場合には、例外リストに crl.microsoft.com を追加することで HOSTS ファイルによる名前解決が行われるようになります。
・winhttp の設定を確認するには、コマンドプロンプトから以下のように実行します。
netsh winhttp show proxy
設定を変更する場合には以下のように実行します。
netsh winhttp set proxy proxy-server="http=<プロキシ サーバー>" bypass-list="プロキシからの除外リスト"
winhttp のプロキシ設定の詳細については、以下の資料などをご参照ください。
- 参考資料
Title: Configure Proxy Settings for WinHTTP
URL: https://technet.microsoft.com/en-us/library/bb430772.aspx
Title: Netsh Commands for Windows Hypertext Transfer Protocol (WINHTTP)
URL: https://technet.microsoft.com/en-us/library/cc731131(WS.10).aspx#BKMK_5
・インターネット プロパティについては、コマンド プロンプトから control inetcpl.cpl と実行して、[接続] タブの [LAN の設定] を確認します。
[設定を自動的に検出する] が有効になっている場合には、当該環境にて wpad による自動構成がされているかご確認いただき、その場合にはプロキシ構成ファイルの設定についてご確認ください。
[自動構成スクリプトを使用する] が有効になっている場合には、参照しているプロキシ構成ファイルの設定についてご確認ください。手動での構成が行われている場合には、その設定についてご確認ください。