JDBC および SQLJ 接続プールのサポート

コネクションプーリングはサポートされています。 IBM® Data Server Driver for JDBC and SQLJ

接続プールは、個々の物理接続を手動で管理するのに比べて次のような利点があります。

  • 新規接続オブジェクトが作成される回数を減らせる
  • 接続オブジェクトの再利用が促進される
  • アプリケーションが接続を取得するスピードがアップする
  • 接続オブジェクトを管理するタスクが簡素化される

接続プールの仕組み

接続プールとは、データ・サーバー・スレッドに相当する物理データ・ソース接続をキャッシュするためのフレームワークです。 JDBC により物理データ・ソース接続が再利用されると、java.sql.Connection オブジェクトの作成とそれに続く終了に必要な負荷のかかる操作が最小化されます。

接続プールがない場合、各 java.sql.Connection オブジェクトがデータ・ソースへの物理接続を表します。 アプリケーションによりデータ・サーバーへの接続が確立されると、データ・サーバーによりデータ・ソースへの新規の物理接続が作成されます。 アプリケーションにより java.sql.Connection.close メソッドが呼び出されると、データ・サーバーにより、このデータ・ソースへの物理接続が終了されます。

これとは対照的に、接続プールでは、java.sql.Connection オブジェクトが物理データ・ソース接続を一時的および論理的に表すものです。 物理データ・ソース接続は、論理 java.sql.Connection インスタンスによって連続的に再利用されます。 アプリケーションでは、接続プール・サポートがない場合に java.sql.Connection オブジェクトを使用するときと全く同様に、論理 java.sql.Connection オブジェクトを使用できます。

接続プールでは、JDBC アプリケーションにより DataSource.getConnection メソッドが呼び出されると、データ・ソースで適切な物理接続が存在するかどうかが判定されます。 適切な物理接続が既存する場合、データ・ソースにより java.sql.Connection インスタンスがアプリケーションに返されます。 JDBC アプリケーションにより java.sql.Connection.close メソッドが呼び出されても、JDBC では物理データ・ソース接続はクローズされません。 その代わりに、JDBC では Statement オブジェクトや ResultSet オブジェクトなどの JDBC リソースのみがクローズされます。 データ・ソースにより、物理接続が再利用のために接続プールに返されます。

接続プールに対する JDBC および SQLJ サポートの種類

接続プールに対して 2 種類のサポートが使用可能です。
  • アプリケーションサーバーによるコネクションプーリング、例えば、 WebSphere® Application Server
  • による接続プーリング IBM Data Server Driver for JDBC and SQLJ

アプリケーション・サーバーによる接続プール

これは、 IBM Data Server Driver for JDBC and SQLJWebSphere Application Server やその他のアプリケーションサーバーで使用されるプール接続のファクトリを提供します。 このプールは、実際にはアプリケーション・サーバーにより実行されます。 接続プールは、JDBC または SQLJ アプリケーションには全く認識されません。

による接続プーリング IBM Data Server Driver for JDBC and SQLJ

4.29 バージョンから、 IBM Data Server Driver for JDBC and SQLJ、アプリケーションは接続のプールを要求できるようになりました。 プールされた接続を管理するためのメソッドとプロパティーが DB2ConnectionPool クラスにあります。 詳細は DB2ConnectionPool クラスをご覧ください。

同種接続プールまたは異種接続プール

接続プールは、同種 または異種 にすることができます。

同種プールの場合、1 つの接続プールからのすべての Connection オブジェクトに同じプロパティーがあります。 DataSource で作成された最初の論理 Connection には、DataSource に定義されたプロパティーがあります。 ただし、アプリケーションでそれらのプロパティーを変更できます。 Connection が接続プールに返されると、アプリケーション・サーバーまたはプール・モジュールにより、これらのプロパティーは元の値にリセットされます。 ただし、アプリケーション・サーバーまたはプール・モジュールにより、変更されたプロパティーがリセットされない場合があります。 JDBC ドライバーでは、これらのプロパティーは変更されません。 したがって、アプリケーション・サーバーまたはプール・モジュールの設計に応じて、再利用される論理 Connection が、DataSource に定義されたものと同じプロパティーを持つこともあれば、異なるプロパティーを持つこともあります。

異種プールでは、異なるプロパティーの Connection オブジェクトが、同じ接続プールを共有することができます。