Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


17.6.3 PooledConnectionインタフェース

PooledConnectionインタフェースで提供される各メソッドの詳細,使用方法については,JDBCの関連ドキュメントを参照してください。ここでは,JDBCドライバがサポートするPooledConnectionインタフェースのメソッドを示します。

〈この項の構成〉

(1) メソッド

PooledConnectionインタフェースのメソッド一覧を次の表に示します。

表17‒77 PooledConnectionインタフェースのメソッド一覧

メソッド

提供ドライバ

機能

JDBC2.0

JDBC4.0

getConnection()

Connectionオブジェクトは,HiRDBサーバとの物理接続と1対1の関係となり,必要に応じて物理接続が行われ,Connectionオブジェクトが返されます。

addConnectionEventListener(ConnectionEventListener listener)

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

close()

物理接続の切断をします。

removeConnectionEventListener(ConnectionEventListener listener)

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

addStatementEventListener(StatementEventListener listener)

×

引数で指定したStatementEventListenerをPooledConnectionに登録します。

removeStatementEventListener(StatementEventListener listener)

×

引数で指定したStatementEventListenerをPooledConnectionから削除します。

(凡例)

○:提供されます。

×:提供されません。

(a) getConnection()

【機能】

Connectionオブジェクトは,HiRDBサーバとの物理接続と1対1の関係となり,必要に応じて物理接続が行われ,Connectionオブジェクトが返されます。

【形式】
public synchronized Connection getConnection() throws SQLException
【引数】

なし。

【戻り値】

Connectionオブジェクト

【機能詳細】

Connectionオブジェクトは,HiRDBサーバとの物理接続と1対1の関係となり,必要に応じて物理接続が行われ,Connectionオブジェクトが返されます。一度接続した物理接続は,このクラスオブジェクトがクローズされるまで切断されません。Connectionオブジェクトに対してcloseメソッドを実行しても,物理接続の切断はしないで,このクラスオブジェクトが物理接続を保持します。保持した物理接続は,次のこのメソッド呼び出しによる接続要求で再利用します(setLoginTimeoutやクライアント環境定義PDCONNECTWAITTIMEで指定した待ち時間は発生しません)。

【発生する例外】

次の場合はSQLExceptionを投入します。

  • データベースアクセスエラーが発生した場合

  • 指定した接続情報が不正の場合

(b) addConnectionEventListener(ConnectionEventListener listener)

【機能】

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

【形式】
public synchronized void addConnectionEventListener(ConnectionEventListener listener)
【引数】
ConnectionEventListener listener:

ConnectionEventListenerインタフェースを実装し,接続が閉じたかエラーが発生したときに通知されるようにするコンポーネント。通常は接続プール管理プログラムです。

【戻り値】

なし。

【機能詳細】

指定したイベントリスナを登録して,このPooledConnectionオブジェクトでイベントが発生したときに通知されるようにします。追加するリスナがnullであれば登録しません。

addConnectionEventListenerメソッドで登録したイベントリスナから,このドライバのメソッドを呼び出すことはできません。呼び出した場合,(デッドロックによって)このドライバからの応答がなくなることがあります。

【発生する例外】

なし。

(c) close()

【機能】

物理接続の切断をします。

【形式】
public synchronized void close()
【引数】

なし。

【戻り値】

なし。

【機能詳細】

プールされたすべての接続に対し,物理接続の切断をします。Connectionオブジェクトを取得してデータベースアクセスを行っている最中でも,PooledConnection.close()の実行で物理切断を試みます。

【発生する例外】

なし。

(d) removeConnectionEventListener(ConnectionEventListener listener)

【機能】

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

【形式】
public synchronized void removeConnectionEventListener(ConnectionEventListener listener)
【引数】
ConnectionEventListener listener:

ConnectionEventListenerインタフェースを実装し,リスナとして登録されたコンポーネント。通常は接続プール管理プログラムです。

【戻り値】

なし。

【発生する例外】

なし。

(e) addStatementEventListener(StatementEventListener listener)

【機能】

引数で指定したStatementEventListenerをPooledConnectionに登録します。

【形式】
public synchronized void addStatementEventListener(StatementEventListener listener)
【引数】
StatementEventListener listener:

StatementEventListener インタフェースを実装し,前処理結果が無効となるエラーが発生したときに通知を受けるためのオブジェクトです。

【戻り値】

なし。

【機能詳細】

引数で指定したStatementEventListenerをPooledConnectionに登録して,PreparedStatement(又はCallableStatement)オブジェクトが無効となるSQLExceptionが発生したときに通知を受けられるようにします。引数listenerがnullの場合,何も行いません。

【発生する例外】

なし。

【注意事項】

このメソッドの最初の呼び出し前に生成したPreparedStatement(又はCallableStatement)オブジェクトは通知の対象になりません。イベント通知対象となるPreparedStatementの例を次に示します。

PooledConnection pcon = ConnectionPoolDataSource.getPooledConnection();
Connection con = pcon.getConnection();
PreparedStatement pstmt1 = con.prepareStatement(<SQL文A>);   ←イベント通知対象外
pcon.addStatementEventListener(listener);
PreparedStatement pstmt2 = con.prepareStatement(<SQL文B>);   ←イベント通知対象

(f) removeStatementEventListener(StatementEventListener listener)

【機能】

引数で指定したStatementEventListenerをPooledConnectionから削除します。

【形式】
public synchronized void removeStatementEventListener(StatementEventListener listener)
【引数】
StatementEventListener listener:

addStatementEventListenerメソッドでPooledConnectionに登録済みのオブジェクトです。

【戻り値】

なし。

【機能詳細】

addStatementEventListenerメソッドで登録済みのStatementEventListenerを,PooledConnectionが持つリストから削除します。引数listenerがnullの場合,及び対応するStatementEventListenerが存在しない場合は,何も行いません。

【発生する例外】

なし。

(2) パッケージ名称及びクラス名称

このインタフェースを直接使用する場合に必要なパッケージ名称とクラス名称を次に示します。

パッケージ名称:JP.co.Hitachi.soft.HiRDB.JDBC

クラス名称:PrdbPooledConnection