モジュール java.sql
パッケージ javax.sql

インタフェースPooledConnection

既知のすべてのサブインタフェース:
XAConnection

public interface PooledConnection
接続プール管理のフックを提供するオブジェクトです。 PooledConnectionオブジェクトは、データ・ソースへの物理接続を表します。 アプリケーションがある接続で終了したとき、その接続は閉じられずにリサイクルされます。そのため、生成する必要のある接続数を減らすことができます。

アプリケーション・プログラマがPooledConnectionインタフェースを直接使用することはありません。むしろ、接続のプーリングを管理する中間層インフラストラクチャが使用します。

アプリケーションは、DataSource.getConnectionメソッドを呼び出すと、Connectionオブジェクトを戻します。 接続プールの実行中、Connectionオブジェクトは、物理接続であるPooledConnectionオブジェクトのハンドルになります。

接続プール管理プログラム(通常アプリケーション・サーバー)は、PooledConnectionオブジェクトのプールを管理します。 プール内に利用可能なPooledConnectionオブジェクトが存在する場合、その物理接続のハンドルであるConnectionオブジェクトを返します。 利用可能なPooledConnectionオブジェクトが存在しない場合、接続プール管理プログラムは、ConnectionPoolDataSourceメソッドのgetPoolConnectionを呼び出して、新しい物理接続を作成します。 ConnectionPoolDataSourceを実装するJDBCドライバは、新しいPooledConnectionオブジェクトを作成し、そのハンドルを返します。

接続を閉じるとき、アプリケーションはConnectionメソッドcloseを呼び出します。 接続プールの実行中、接続プール管理プログラムに通知が送られます。これは、接続プール管理プログラムがConnectionPoolメソッドaddConnectionEventListenerを使用して、ConnectionEventListenerオブジェクトとして登録されているからです。 接続プール管理プログラムはPooledConnectionオブジェクトのハンドルを終了し、接続プールにPooledConnectionオブジェクトを返します。返されたオブジェクトは再利用可能です。 このように、アプリケーションが接続を閉じるとき、背後の物理接続は閉じられず、リサイクルされます。

接続プール・マネージャがPoolConnection.getConnectionの呼び出しから返された論理ハンドルをラップするか、またはプロキシを提供する場合、プール・マネージャは、Connection.closeを呼び出すアプリケーションにレスポンスして接続プール・マネージャがプールにPooledConnectionを閉じるか、返したときに、:

  • 論理ConnectionハンドルでendRequestを呼び出します。
  • 論理Connectionハンドルでcloseを呼び出します。

物理接続は、接続プール管理プログラムがPooledConnectionメソッドcloseを呼び出すまで閉じられません。 一般に、このメソッドは、通常どおりの手順でサーバーを終了する場合、または致命的なエラーによって接続が使用できない状態になった場合に呼び出されます。

接続プール管理プログラムは、通常、PreparedStatementオブジェクトのプールを管理することにより、文のプールの管理プログラムとしても機能します。 用意された文を閉じるとき、アプリケーションはPreparedStatementメソッドのcloseを呼び出します。 プール管理プログラムはConnectionPoolメソッドのaddStatementEventListenerを使って自身をStatementEventListenerオブジェクトとして登録しているため、Statementのプールの実行中に通知を受け取ります。 このように、アプリケーションがPreparedStatementを閉じるとき、配下の用意された文は閉じられず、リサイクルされます。

導入されたバージョン:
1.4