ページの先頭行へ戻る
Interstage Application Server V13.0.0 GlassFish 設計・構築・運用ガイド
FUJITSU Software

13.2.5 データベース連携/JDBCの違いについて

設定方法について

J2EE機能の場合、データベースに接続するためにJDBCデータソースを作成し、IJServerワークユニットの環境設定においてDBコネクション設定でJDBCデータソースに対するコネクションプーリングの設定を行います。使用するデータベース/JDBCドライバごとに環境設定項目が異なります。

Jakarta EE 8機能の場合、データベースに接続するためにJDBC接続プールを作成し(すでに存在するJDBC接続プールを使用する場合は作成不要)、JDBC接続プールに対応してJDBCリソースを作成します。JDBCリソースを作成するときに、リソースを使用するGlassFish Serverクラスターをターゲットに指定します。Jakarta EE 8機能の場合、使用するデータベース/JDBCドライバに依存せずに環境設定項目は同一です。データベース/JDBCドライバごとの固有のプロパティについては、追加プロパティで指定します。

また、使用するデータソースクラスに関わらずデフォルトではInterstageが接続をプーリングします。Interstageで接続をプーリングさせたくない場合(JDBCドライバのコネクションプーリングを使用する場合)には、接続プールの設定で"プーリング"を無効にする必要があります。

"初期および最小プールサイズ"を設定した場合、アプリケーションから最初の接続要求を受けたときに指定された数分の接続が作成されてプーリングされます。

プールで接続がアイドル状態のままアイドルタイムアウトに指定された時間が経過した場合、その接続は破棄されますが、プールされた接続が"初期および最小プールサイズ"に指定した数より少なくなった場合には、その数になるまで接続が再作成されます。

データベースの環境設定については、「4.14 データベースの環境設定」も参照してください。

データベース連携時に発生する異常については、「12.16 データベース連携の異常」を参照してください。

トランザクション完了時のクローズ漏れコネクションの扱い

J2EE機能ではアプリケーションのクローズ漏れJDBCコネクションをトランザクション完了時に自動でクローズします。Jakarta EE 8機能の場合は自動でクローズしないため、アプリケーション側でトランザクション完了前にJDBCコネクションの解放を行う必要があります。

JDBCコネクションの開放漏れがないかを確認する方法として、「リーク再要求」を有効化し、「リークタイムアウト」を設定することでJDBCコネクションの解放漏れの検知とJDBCコネクションの破棄を行えます。ただし、本機能はアプリケーション処理に対して設定時間が妥当でない場合、正常処理中にも関わらずコネクションが回収されてしまう問題が発生する可能性があります。本機能はアプリケーション開発時における暫定回避やJDBCコネクションの解放漏れ検知のために利用してください。