Windows Server(R) 2003でWebアプリケーションを運用している場合、リクエスト処理に伴い、IJServerクラスタのプロセスでnonpaged pool領域のリークが発生することがあります。
現象
nonpaged pool領域のリークサイズが増大することで、以下の現象となる場合があります。
サーバーログに次の例外が出力され、リクエストが処理できない/操作できないなど、IJServerクラスタやInterstage管理コンソールなどの動作が不安定となります。
java.net.SocketException: No buffer space available (maximum connections reached?): connect |
イベントログに以下のメッセージが出力され、ネットワークを使用する処理やファイル操作が不可能となるなど、OSおよびOS上で動作するアプリケーションの動作が不安定となります。
イベントID:2019
The server was unable to allocate from the system nonpaged pool because the pool was empty. |
原因
OSまたはNIC(Network Interface Card)のドライバの問題と考えられます。
復旧方法
マシンを再起動してください。
対処/予防方法
OSの修正や最新のドライバが提供されている場合、最新の修正の適用やドライバの更新により問題が解決する可能性があります。
問題が解決しない場合は、以下の設定により運用での回避を行ってください。
「ブロック化」を有効にします
上記とあわせて、次のどちらかの設定とします。
以下の大小関係を満たすようにします。
WebサーバコネクタのWebコンテナへの最大接続数(注) < Webコンテナの同時処理数
注) IJServerクラスタが複数のWebサーバと連携している場合、各WebサーバのWebサーバコネクタの、Webコンテナへの最大接続数の設定値の合計と比較します。
Webサーバコネクタ-Webコンテナ間のKeepAliveを行わない設定とします。
設定については以下を参照してください。
また、「7.6 Webコンテナのチューニング」も参考にしてください。
Interstage Java EE管理コンソールヘルプ
「Java EE運用コマンド」の「11.1 asadmin」および下記
「11.1.4.1 getサブコマンド/11.1.4.2 setサブコマンド/11.1.4.3 listサブコマンド」、「11.18.3.2 configs.config.http-serviceの定義項目」