接続プールとは、データベースなどに接続する場合に、要求されるたびに接続を作成するのではなく、接続をプーリング(保持)して再利用するという機能です。このため、接続プールを使用することにより、同一ユーザからのアプリケーションから接続する回数が軽減し、接続を確立するアプリケーションの負荷も軽減されます。
ネーミングサービスに登録された以下のリソースに対して接続要求した場合に接続がプーリングされます。
コネクタリソース
JDBCリソース
JMS接続ファクトリ
データベースなどから実際に獲得した接続のことを物理接続と呼び、接続プールで再利用される接続のことを論理接続と呼びます。
接続プールを使用する場合、通常はInterstage側で接続がプーリングされます。接続プールは各サーバーインスタンス上に生成されます。接続プールの管理はInterstageが行うため、接続プールのチューニング機能が使用できます。また、接続の使用状況を監視できます。
アプリケーションが獲得したConnectionオブジェクトに対してcloseメソッドを実行すると、物理接続に対して削除要求(closeメソッドの実行)を行わずに接続プールに返却されて再利用されます。以下の図はJDBCリソースを使用してデータベースに接続した場合の例です。
JDB接続プールの無効化
JDBC接続プールの場合、使用するJDBCドライバ側で接続プールする機能を提供している場合があります。このため、Interstage側のJDBC接続プールを無効とすることもできます。この場合、接続プールのチューニング機能や監視機能が一部利用できません。詳細は各機能の説明を参照してください。
JDBC接続プールを無効とすると、アプリケーションが獲得したConnectionオブジェクトに対してcloseメソッドを実行すると、すぐに物理接続に対して削除要求(closeメソッドの実行)を行います。削除要求された接続をどのように扱うかについては、JDBCドライバ側の仕様に依存します。以下の図はJDBCリソースを使用してデータベースに接続した場合の例です。
接続プールは、各サーバーインスタンスにそれぞれ生成されます。以下の図はJDBCリソースを使用してデータベースに接続した場合の例です。
アプリケーションがConnectionオブジェクトを使用していない間、接続プールにプーリングされている状態になります。プーリングされているコネクションは、以下のタイミングで破棄されます。
アイドルタイムアウトが発生した時
接続検証に失敗した時
サーバーインスタンスが停止した時