Java EEコンポーネントはデータベースにアクセスする場合、JDBC APIを使用します。以下にデータベース連携の機能について説明します。
JDBCリソース
アプリケーションからアクセスする各データベース用にJDBCリソース(データソースと呼ぶ場合もあります)を定義します。一意のJNDI名を指定してJDBCリソースを定義し、アプリケーションはJNDI APIを使用してJDBCリソースを取得します。JDBCリソースに対して、データベースへの処理要求を実行できます。
JDBC接続プール
JDBC接続プールは、再利用可能な接続を管理します。データベースに対して新規に接続を確立する場合、接続に時間がかかります。このため、Interstageでは接続をプールして再利用することで性能を向上します。アプリケーションから接続要求を行った場合、接続はプールから獲得します。アプリケーションから接続の解放要求を行った場合、接続はプールに返却されます。
しかし、JDBCドライバ側もプーリング機能を提供する可能性があります。JDBCドライバ側のプーリング機能を有効にすると、Interstage側のプーリング機能と冗長に動作します。JDBCドライバ側のプーリング機能を有効にする場合は、Interstage側のプーリング機能を無効にしてください。
Interstage側のプーリング機能が無効の場合、アプリケーションから接続の解放要求を行うときに、接続はInterstage側の接続プールにキャッシュされずに、直接削除されます。アプリケーションから接続要求を行うときに、必ずJDBCドライバを利用して接続を再取得します。
JDBCリソースを定義する際にJDBC接続プールを指定します。複数のJDBCリソースが1つのJDBC接続プールを共有できます。
JDBCリソースとJDBC接続プールの動作
アプリケーションはデータベースにアクセスする場合、まずはJDBCリソースから接続を取得する必要があります。以下にアプリケーションからデータベースにアクセスする方法と、JDBCリソースとJDBC接続プールの動作について説明します。
Interstage側のプーリング機能が有効・無効の場合でJDBC接続プールの動作が異なります。
JNDI APIを実行して、アクセスするデータベース用に定義されたJDBCリソース(データソース)を取得します。JDBCリソースを取得する際には、JDBCリソース定義時に指定したJNDI名を指定します。
JDBCリソースからデータベースの接続(java.sql.Connectionオブジェクト)を獲得します。
Interstage側のプーリング機能が有効の場合
Interstageは、内部的に同一のユーザ名とパスワードでキャッシュされた物理接続を接続プールから検索して返却します。プールに接続が存在しなかった場合、データベースに対して新たに物理接続を獲得します。最大プールサイズなどはチューニング可能です。チューニング方法については、「6.8 データベース連携環境のチューニング」を参照してください。
Interstage側のプーリング機能が無効の場合
データベースに対して新たに物理接続を獲得します。
アプリケーションはJDBC APIを使用して、獲得された接続に対して検索、更新、挿入処理を実行します。JDBCドライバはアプリケーションの処理要求を受け付けて、データベースに処理を要求します。
データベースに対する処理が完了したら接続を解放します。Interstageは、アプリケーションで解放された接続を接続プールに返却します。
Interstage側のプーリング機能が有効の場合
接続は接続プールにキャッシュされます。一度接続プールに返却された接続は、次のアプリケーションで利用可能となります。
Interstage側のプーリング機能が無効の場合
接続は接続プールにキャッシュされずに、直接削除されます。
データベースと連携するアプリケーションの作成方法の詳細は、「3.1.7 データベース連携アプリケーションの作成方法」を参照してください。