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 オブジェクトを返します。返されたオブジェクトは再利用可能です。このように、アプリケーションが接続を閉じるとき、背後の物理接続は閉じられず、リサイクルされます。
物理接続は、接続プール管理プログラムが PooledConnection メソッド close を呼び出すまで閉じられません。一般に、このメソッドは、通常どおりの手順でサーバーを終了する場合、または致命的なエラーによって接続が使用できない状態になった場合に呼び出されます。
接続プール管理プログラムは、通常、PreparedStatement オブジェクトのプールを管理することにより、文のプールの管理プログラムとしても機能します。用意された文を閉じるとき、アプリケーションは PreparedStatement メソッドの close を呼び出します。プール管理プログラムは ConnectionPool メソッドの addStatementEventListener を使って自身を StatementEventListener オブジェクトとして登録しているため、Statement のプールの実行中に通知を受け取ります。このように、アプリケーションが PreparedStatement を閉じるとき、配下の用意された文は閉じられず、リサイクルされます。
| 修飾子と型 | メソッドと説明 |
|---|---|
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 を削除します。 |
Connection getConnection() throws SQLException
Connection オブジェクト (この PooledConnection オブジェクトが表す物理接続のハンドル) を作成し、返します。接続プール管理プログラムは、アプリケーションによって DataSource.getConnection メソッドが呼び出されたが、利用可能な PooledConnection オブジェクトが存在しない場合に、このメソッドを呼び出します。詳細は、interface description を参照してください。PooledConnection オブジェクトのハンドルである Connection オブジェクトSQLException - データベースアクセスエラーが発生した場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合void close()
throws SQLException
PooledConnection オブジェクトが表す物理接続を閉じます。アプリケーションがこのメソッドを直接呼び出すことはありません。このメソッドは、接続プールモジュール、または接続プール管理プログラムによって呼び出されます。
詳細は、interface description を参照してください。
SQLException - データベースアクセスエラーが発生した場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合void addConnectionEventListener(ConnectionEventListener listener)
PooledConnection オブジェクトでイベントが発生したときに通知されるようにします。listener - ConnectionEventListener インタフェースを実装し、接続の終了時またはエラーの発生時に通知を受けるコンポーネント。通常は接続プール管理プログラムremoveConnectionEventListener(javax.sql.ConnectionEventListener)void removeConnectionEventListener(ConnectionEventListener listener)
PooledConnection オブジェクトでイベントが発生したときに通知されるコンポーネントのリストから削除します。listener - ConnectionEventListener インタフェースを実装し、この PooledConnection オブジェクトにリスナーとして登録されたコンポーネント。通常は接続プール管理プログラムaddConnectionEventListener(javax.sql.ConnectionEventListener)void addStatementEventListener(StatementEventListener listener)
PooledConnection オブジェクトに StatementEventListener を登録します。接続によって作成された PreparedStatement が閉じられたとき、または無効であると判断された場合に通知を受けるコンポーネントは、このメソッドを使って、この PooledConnection オブジェクトに StatementEventListener を登録できます。
listener - この PooledConnection オブジェクトに登録する StatementEventListener インタフェースを実装するコンポーネント
void removeStatementEventListener(StatementEventListener listener)
PreparedStatement が閉じられたか無効であることをドライバが検出したときに通知を受けるコンポーネントのリストから、指定された StatementEventListener を削除します。
listener - この PooledConnection オブジェクトに以前に登録された StatementEventListener インタフェースを実装するコンポーネント
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.