JavaTM Platform
Standard Ed. 6

javax.sql
インタフェース PooledConnection

既知のサブインタフェースの一覧:
XAConnection

public interface PooledConnection

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

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

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

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

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

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

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

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

メソッドの概要
 void addConnectionEventListener(ConnectionEventListener listener)
          指定したイベントリスナーを登録して、この PooledConnection オブジェクトでイベントが発生したときに通知されるようにします。
 void addStatementEventListener(StatementEventListener listener)
          この PooledConnection オブジェクトに StatementEventListener を登録します。
 void close()
          この PooledConnection オブジェクトが表す物理接続を閉じます。
 Connection getConnection()
          Connection オブジェクト (この PooledConnection オブジェクトが表す物理接続のハンドル) を作成し、返します。
 void removeConnectionEventListener(ConnectionEventListener listener)
          指定したイベントリスナーを、この PooledConnection オブジェクトでイベントが発生したときに通知されるコンポーネントのリストから削除します。
 void removeStatementEventListener(StatementEventListener listener)
          PreparedStatement が閉じられたか無効であることをドライバが検出したときに通知を受けるコンポーネントのリストから、指定された StatementEventListener を削除します。
 

メソッドの詳細

getConnection

Connection getConnection()
                         throws SQLException
Connection オブジェクト (この PooledConnection オブジェクトが表す物理接続のハンドル) を作成し、返します。接続プール管理プログラムは、アプリケーションによって DataSource.getConnection メソッドが呼び出されたが、利用可能な PooledConnection オブジェクトが存在しない場合に、このメソッドを呼び出します。詳細については、インタフェースの説明を参照してください。

戻り値:
この PooledConnection オブジェクトのハンドルである Connection オブジェクト
例外:
SQLException - データベースアクセスエラーが発生した場合
SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合
導入されたバージョン:
1.4

close

void close()
           throws SQLException
この PooledConnection オブジェクトが表す物理接続を閉じます。アプリケーションがこのメソッドを直接呼び出すことはありません。 このメソッドは、接続プールモジュール、または接続プール管理プログラムによって呼び出されます。

詳細については、インタフェースの説明を参照してください。

例外:
SQLException - データベースアクセスエラーが発生した場合
SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合
導入されたバージョン:
1.4

addConnectionEventListener

void addConnectionEventListener(ConnectionEventListener listener)
指定したイベントリスナーを登録して、この PooledConnection オブジェクトでイベントが発生したときに通知されるようにします。

パラメータ:
listener - ConnectionEventListener インタフェースを実装し、接続の終了時またはエラーの発生時に通知を受けるコンポーネント。通常は接続プール管理プログラム
関連項目:
removeConnectionEventListener(javax.sql.ConnectionEventListener)

removeConnectionEventListener

void removeConnectionEventListener(ConnectionEventListener listener)
指定したイベントリスナーを、この PooledConnection オブジェクトでイベントが発生したときに通知されるコンポーネントのリストから削除します。

パラメータ:
listener - ConnectionEventListener インタフェースを実装し、この PooledConnection オブジェクトにリスナーとして登録されたコンポーネント。通常は接続プール管理プログラム
関連項目:
addConnectionEventListener(javax.sql.ConnectionEventListener)

addStatementEventListener

void addStatementEventListener(StatementEventListener listener)
この PooledConnection オブジェクトに StatementEventListener を登録します。接続によって作成された PreparedStatement が閉じられたとき、または無効であると判断された場合に通知を受けるコンポーネントは、このメソッドを使って、この PooledConnection オブジェクトに StatementEventListener を登録できます。

パラメータ:
listener - この PooledConnection オブジェクトに登録する StatementEventListener インタフェースを実装するコンポーネント

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

removeStatementEventListener

void removeStatementEventListener(StatementEventListener listener)
PreparedStatement が閉じられたか無効であることをドライバが検出したときに通知を受けるコンポーネントのリストから、指定された StatementEventListener を削除します。  

パラメータ:
listener - この PooledConnection オブジェクトに以前に登録された StatementEventListener インタフェースを実装するコンポーネント

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

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。