Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
ユーザプログラムがオープンしたリソースのコネクションは,ユーザプログラムでクローズする必要があります。例外発生などの理由で,ユーザプログラムがコネクションをクローズすることができない場合,WebコンテナやEJBコンテナが自動的にコネクションをクローズする機能があります。
コネクション自動クローズ機能は,機能によって有効と無効を切り替えることができます。コネクションの自動クローズの方法と切り替えについて次の表に示します。
表3-57 コネクション自動クローズの方法と機能の切り替え
自動クローズの方法 | 有効と無効の切り替え | 備考 |
---|---|---|
Webコンテナによるコネクション自動クローズ | ○※1,※2 | − |
EJBコンテナによるコネクション自動クローズ | ×※1 | 常に有効になります。 |
(凡例)○:切り替えできる ×:切り替えできない −:該当しない
注※1 対象リソースは,リソースアダプタのコネクションとなります。
注※2 Webコンテナによるコネクションの自動クローズ機能は,デフォルトでは有効となっています。無効にする場合は,J2EEサーバのプロパティをカスタマイズして設定します。J2EEサーバの動作設定のカスタマイズについては,「3.15.13 実行環境での設定」を参照してください。
サーブレットやJSPのサービスメソッド内で,取得・オープンされたJDBCコネクションのうち,メソッドの実行完了時にクローズが実行されていないコネクションに対して,J2EEコンテナ側で自動的にコネクションをクローズします。これによって,オープンされたまま蓄積しているコネクションを自動でクローズできます。
なお,コネクションの自動クローズ機能は,サーブレット内部の別のメソッド,または外部のクラスでコネクションを取得・利用した場合にも有効です。
Webコンテナによるコネクション自動クローズは,サーブレットやJSPのserviceメソッドが完了したときに実行されます。
例外発生などの理由で,EJB内で取得したリソースのコネクションをユーザがクローズできない場合に,EJBコンテナが自動的にコネクションをクローズして解放する機能です。
EJBコンテナによるコネクションの自動クローズは,次のタイミングで実施されます。
なお,@Asynchronousアノテーションを指定したSingleton Session BeanまたはStateless Session Beanでは,次のタイミングでコネクションの自動クローズが実行されます。
コネクション自動クローズが実行されたことは,メッセージログまたはPRFトレースで確認できます。
テスト実行時や障害調査時など,性能を考慮しなくてよい場合は,メッセージログによって確認することをお勧めします。実運用時に確認したい場合は,PRFトレースによって確認することをお勧めします。
ログレベルを「Warning」に設定してください。
コネクション自動クローズが実行された場合は,J2EEサーバのメッセージログにKDJE31010-Wが出力されます。
ログレベルの設定方法については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「3.3.6 J2EEサーバのログ取得の設定」を参照してください。
JCAコンテナの機能レイヤのPRFトレース取得レベルを「詳細」に設定してください。
コネクション自動クローズが実行された場合は,PRFトレースファイルに次のイベントIDが出力されます。
PRFトレースの取得レベルの設定方法については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「3.3.6 J2EEサーバのログ取得の設定」を参照してください。また,機能レイヤごとのPRFトレース取得レベルの設定方法については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cprflevel(PRFトレース取得レベルの表示と変更)」またはマニュアル「アプリケーションサーバ リファレンス コマンド編」の「cprfstart(PRFデーモンの開始)」を参照してください。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.