ソケット割り振りの問題により、操作がエラー FFQO0143E で失敗する

Windows オペレーティング・システムでは、ソケット・アドレスを割り振ることができないため、操作 (解析、索引作成、検索など) はエラー・メッセージ「FFQO0143E (ES_ERR_SOCKET_ADDRESS_IN_USE)」で失敗します。

症状

このエラーは、システムのいずれのコンポーネントまたはセッションでも発生する可能性があります。以下の例では、Watson Explorer Content Analyticsがインストールされているサーバー上で十分なクライアント・ソケットを使用できないことが原因で、索引作成中にエラーが発生します。
5/29/07 14:30:03.721 JST [Error] [ES_ERR_SOCKET_ADDRESS_IN_USE] 
[col_2000] [col_2000.indexer.delta]
EXAMPLE1:6612:580:oss:src¥trevi¥oss¥src¥Socket.cpp:oss::Socket::connect:581
FFQO0143E 指定されたアドレスおよびポート番号は既に使用中です。
サーバー名: 192.168.100.101。ポート番号: 6002。

5/29/07 14:30:03.846 JST [Error] [ES_ERR_CCLSRV_SOCKET_COMM_FAILED]
[col_2000] [col_2000.indexer.delta]
EXAMPLE1:6612:580:oss::ccl:src¥trevi¥oss¥ccl¥src¥Session.cpp:oss::ccl::
Session::openSession:102
FFQO0253E ソケット通信が失敗しました。

5/29/07 14:30:04.003 JST [Error] [ES_ERR_CTRL_ACQUIRE_SESSION_READ_LOCK]
[col_2000] [col_2000.indexer.delta]
EXAMPLE1:6612:580:control::configmanager:src¥trevi¥control¥configmanager¥src
¥CtrlConfigManager.cpp:control::configmanager::CtrlConfigManager::getSession
ReadLock:1207
FFQC0017E セッション構成読み取りロック col_2000.indexer を獲得できませんでした。

5/29/07 14:30:04.128 JST [Error] [ES_ERR_CTRL_INDEXER_BUILD_THREAD_FAILED]
[col_2000] [col_2000.indexer.delta]
EXAMPLE1:6612:580:control::indexer:src¥trevi¥control¥indexer¥src¥
BuilderThread.cpp:control::indexer::BuilderThread::run:291
FFQC1417E 索引作成スレッドでエラーが検出されました。

原因

デフォルトで、Windows では、ポートに 5000 を超えるクライアント接続を設定できません。ソケットのクローズ後、ソケット接続は約 2 分以上 TIME_WAIT 状態になります (時間はシステム構成に応じて異なります)。待機期間の終了後、ソケットが解放されて、アドレスを再利用できます。

共通通信層 (CCL) クライアントを使用する API 呼び出しは、すべてのセッションで頻繁な操作を伴うため、コンピューターで多数のランダム・ポートが開かれる場合があります。

ポートが解放される前に (TIME_WAIT 状態の終了後) 4000 を超える接続 (ポート 1024 から 5000) が作成された場合、ポートで 5000 を超えるクライアント・ソケットを開こうとして、オペレーティング・システムによってリジェクトされます。アドレスが既に使用されていることを示すメッセージが返される場合があります。

問題の解決

Windows レジストリーで TCP/IP パラメーターを変更することで、この問題を回避できます。
  1. Windows レジストリーをバックアップします。
  2. Windows レジストリ エディタを始動します (Windows の「スタート」メニューから「ファイル名を指定して実行」を選択して「regedit」と入力)。
  3. 次のキーを検索します。HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥Tcpip¥Parameters
  4. Parameters フォルダーを右クリックして、「新規」 > 「DWORD 値」を選択します。
  5. 新規キーとして MaxUserPort を指定します。
  6. MaxUserPort キーをダブルクリックして、値を 65534 に変更し、表記に「10 進」を選択します。
  7. Parameters フォルダーを右クリックして、「新規」 > 「DWORD 値」を選択します。
  8. 新規キーとして TcpTimedWaitDelay を指定します。
  9. TcpTimedWaitDelay キーをダブルクリックして、値を 30 に変更し、表記に 「10 進」を選択します。
  10. コンピューターを再始動します。
この問題の追加情報については、以下を参照してください。