以下に示すいずれかのシナリオにおいて、WebSphere® Application Server の再起動後、Linux オペレーティング・システムが TCP ポートを解放するまでに長い待ち時間が生じる可能性があります。
- Java™ プロセス停止後すぐにサーバーを起動する
- サーバーを再始動
- サーバーをデバッグ・モードで再起動する
オペレーティング・システムがポートを解放するまでに 3 分より長くかかることがあります。JVM がストップ信号を受信すると、情報が直ちにオペレーティング・システムに渡され、
すべての listen ポートが削除されます。
オペレーティング・システムが、使用中のポートのクリーンアップに対して責任を負います。
サーバー・プロセスの停止後すぐに
startServer コマンドを実行すると、
SystemOut.log ファイルに以下のメッセージが表示されることがあります。
[6/26/11 4:41:59:647 EDT] 00000018 TCPPort E TCPC0003E: TCP
チャネル TCP_2 の初期化に失敗しました。ローカル・ホストのポート 9083 でのソケットのバインドに失敗しました。ポートが使用中の場合があります。
オペレーティング・システムがポートを解放すると、WebSphere Application Server はそのポートにバインドできるようになります。数分後に、以下のメッセージが表示されることがあります。
[6/26/11 4:44:04:677 EDT] 00000018 TCPChannel A TCPC0001I: TCP チャネル TCP_2 は、ローカル・ホストのポート 9083 で listen しています。
この制限には解決方法がありません。ただし、Linux オペレーティング・システムに
root ユーザーとしてログインし、タイムアウト値の調整を試みることができます。
ログインした後、
sysctl.conf ファイル (通常
は
etc ディレクトリー内にあります) に次の項目を追加します。
net.ipv4.tcp_fin_timeout = 30
sysctl.conf ファイルにタイムアウト項目を追加しても、問題の解決にはなりません。
しかし、オペレーティング・システムは指定された期間内にポートをクリーンアップするようスケジュールされています。
このケースでは 30 秒以内にクリーンアップが行われます。