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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。