リスナー・ポートのサーバー・セッション・プールのモニター
サーバー・セッション・プールのモニターを使用可能にして、サーバー・セッションに適用されるタイムアウト値を定義することにより、サーバー・セッションが使用するリソースの数を最小化することができます。
このタスクについて
各リスナー・ポートで 1 つ以上のサーバー・セッションを使用しますが、これはサーバー・セッション・プールに保持されます。各サーバー・セッションは、JMS セッションに関連付けられます。この JMS セッションは、リスナー・ポートが使用するように構成されている JMS 接続ファクトリーに関連付けられた JMS セッション・プールから取得されます。
デフォルトで、サーバー・セッション・プールのモニターは無効です。リスナー・ポートがサーバー・セッションを使用する際、リスナー・ポートは、シャットダウンされるまで、そのサーバー・セッションをサーバー・セッション・プールから解放しません。すなわち、たとえリスナー・ポートがメッセージを 1 つも処理していない場合でもリスナー・ポートがシャットダウンされるまでは、関連付けられた JMS セッションが解放されて JMS セッション・プールに入ることはありません。その結果、JMS セッションが使用するリソース (例えば TCP/IP 接続など) が長時間保留になり、リソースに制約のあるシステムでは問題が生じる場合があります。
サーバー・セッションが使用するリソースの数を最小化するには、サーバー・セッション・プールをモニターする必要があります。サーバー・セッション・プールのモニターを使用可能に設定すると、リスナー・ポートが使用する各サーバー・セッション・プール内の各サーバー・セッションがモニターされて、 サーバー・セッションが最後に使用されてからの経過時間が測定されます。経過時間が設定したタイムアウト値より大きい場合、そのサーバー・セッションは、サーバー・セッション・プールから除去されて、関連付けられた JMS セッションが JMS セッション・プールに返されます。返された JMS セッションは、JMS セッション・プールの設定に応じて、別のアプリケーションで再使用するか、またはクローズできます。また、JMS プロバイダーによっては、追加のプール・メカニズムを構成することもできます。
z/OS システムでは、非 ASF モードを選択できません。
手順
例
例として、リスナー・ポート lp1 と lp2 を使用して構成されているアプリケーション・サーバーを考えてみます。
- プロパティーが設定されていない
- プロパティーが 1 つも設定されていない場合、サーバー・セッション・プールのモニターは使用不可に設定されて、サーバー・セッションで使用される JMS セッションは、リスナー・ポート (lp1 または lp2) あるいは、それに関連付けられているメッセージ駆動型 Bean がシャットダウンされるまで、JMS セッション・プールに返されません。
- SERVER.SESSION.POOL.REAP.TIME および SERVER.SESSION.POOL.UNUSED.TIMEOUT が設定されている
- 例として、以下の設定を考えてみます。
- SERVER.SESSION.POOL.REAP.TIME=60
- SERVER.SESSION.POOL.UNUSED.TIMEOUT=120
- SERVER.SESSION.POOL.REAP.TIME および SERVER.SESSION.POOL.UNUSED.TIMEOUT が設定されていて、 SERVER.SESSION.POOL.UNUSED.TIMEOUT.lpname の設定をオーバーライドしている
- 例として、以下の設定を考えてみます。
- SERVER.SESSION.POOL.REAP.TIME=60
- SERVER.SESSION.POOL.UNUSED.TIMEOUT=120
- SERVER.SESSION.POOL.UNUSED.TIMEOUT.lp2=-1
- SERVER.SESSION.POOL.UNUSED.TIMEOUT.lp1=60