Cosminexus 機能解説
ユーザプログラムがオープンしたリソースのコネクションは,ユーザプログラムでクローズする必要があります。例外発生などの理由で,ユーザプログラムがコネクションをクローズすることができない場合,WebコンテナやEJBコンテナが自動的にコネクションをクローズする機能があります。
コネクション自動クローズ機能は,機能によって有効と無効を切り替えることができます。コネクションの自動クローズの方法と切り替えについて次の表に示します。
表9-40 コネクション自動クローズの方法と機能の切り替え
自動クローズの方法 | 有効と無効の切り替え | 備考 |
---|---|---|
Webコンテナによるコネクション自動クローズ | ○※1※2 | − |
EJBコンテナによるコネクション自動クローズ | ×※1 | 常に有効になります。 |
(凡例) ○:切り替えできる ×:切り替えできない
サーブレットやJSPのサービスメソッド内で,取得・オープンされたJDBCコネクションのうち,メソッドの実行完了時にクローズが実行されていないコネクションに対して,J2EEコンテナ側で自動的にコネクションをクローズします。これによって,オープンされたまま蓄積しているコネクションを,自動でクローズできます。
なお,コネクションの自動クローズ機能は,サーブレット内部の別のメソッド,または外部のクラスでコネクションを取得・利用した場合にも有効です。
Webコンテナによるコネクション自動クローズは,サーブレットやJSPのserviceメソッドが完了したときに実行されます。
例外発生などの理由で,EJB内で取得したリソースのコネクションをユーザがクローズできない場合に,EJBコンテナが自動的にコネクションをクローズして解放する機能です。
EJBコンテナによるコネクションの自動クローズは,次のタイミングで実施されます。
コネクション自動クローズが実行されたことは,メッセージログまたはPRFトレースで確認できます。
テスト実行時や障害調査時など,性能を考慮しなくてよい場合は,メッセージログによって確認することをお勧めします。実運用時に確認したい場合は,PRFトレースによって確認することをお勧めします。
ログレベルを「Warning」に設定してください。
コネクション自動クローズが実行された場合は,J2EEサーバのメッセージログにKDJE31010-Wが出力されます。
ログレベルの設定方法については,マニュアル「Cosminexus システム構築ガイド」のJ2EEサーバのログ取得の設定の説明を参照してください。
JCAコンテナの機能レイヤのPRFトレース取得レベルを「詳細」に設定してください。
コネクション自動クローズが実行された場合は,PRFトレースファイルに次のイベントIDが出力されます。
PRFトレースの取得レベルの設定方法については,マニュアル「Cosminexus システム構築ガイド」のJ2EEサーバのログ取得の設定の説明を参照してください。また,機能レイヤごとのPRFトレース取得レベルの設定方法については,マニュアル「Cosminexus リファレンス コマンド編」のcprflevelコマンドまたはcprfstartコマンドの説明を参照してください。
Servlet/JSPでユーザが生成したスレッド(ユーザスレッド)で取得したコネクションは,自動クローズされません。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.