17.6.2 ConnectionPoolDataSourceインタフェース
ConnectionPoolDataSourceインタフェースで提供される各メソッドの詳細,使用方法については,JDBCの関連ドキュメントを参照してください。ここでは,JDBCドライバがサポートするConnectionPoolDataSourceインタフェースのメソッドを示します。
- 〈この項の構成〉
(1) メソッド
ConnectionPoolDataSourceインタフェースのメソッド一覧を次の表に示します。
メソッド |
提供ドライバ |
機能 |
|
---|---|---|---|
JDBC2.0 |
JDBC4.0 |
||
○ |
○ |
setLoginTimeoutメソッドで指定された値を返します。 |
|
○ |
○ |
ConnectionPoolDataSourceオブジェクトのログライターを取得します。 |
|
○ |
○ |
データソースに設定した接続情報によって,プールされた接続として使用できるPooledConnectionオブジェクトを取得します。 |
|
○ |
○ |
データソースに設定した接続情報によって,プールされた接続として使用できるPooledConnectionオブジェクトを取得します。 |
|
○ |
○ |
データベースへの接続試行中に待機する最長時間(秒)を指定します。 |
|
○ |
○ |
ConnectionPoolDataSourceオブジェクトのログライターを設定します。 |
(a) getLoginTimeout()
- 【機能】
-
setLoginTimeoutメソッドで指定された値を返します。
- 【形式】
public synchronized int getLoginTimeout() throws SQLException
- 【引数】
-
なし。
- 【戻り値】
-
- int型:
-
setLoginTimeoutメソッドで指定された値を返します。setLoginTimeoutメソッドで指定されていない場合は,0を返します。
- 【発生する例外】
-
なし。
(b) getLogWriter()
- 【機能】
-
ConnectionPoolDataSourceオブジェクトのログライターを取得します。
- 【形式】
public synchronized PrintWriter getLogWriter() throws SQLException
- 【引数】
-
なし。
- 【戻り値】
-
PrdbConnectionPoolDataSourceオブジェクトのログライターを返します。ログライターが設定されていない場合は,NULL値を返します。
- 【発生する例外】
-
なし。
(c) getPooledConnection()
- 【機能】
-
データソースに設定した接続情報によって,プールされた接続として使用できるPooledConnectionオブジェクトを取得します。
- 【形式】
public synchronized PooledConnection getPooledConnection() throws SQLException
- 【引数】
-
なし。
- 【戻り値】
-
PooledConnectionオブジェクト
- 【機能詳細】
-
DataSourceオブジェクトに事前に設定された接続情報を基に,プールされた接続として使用できるPooledConnectionオブジェクトを返します。ユーザ名称,パスワードの各設定方法での優先順位は,「接続情報の優先順位」を参照してください。
- 【発生する例外】
-
データベースアクセスエラーが発生した場合,SQLExceptionを投入します。
(d) getPooledConnection(String user, String password)
- 【機能】
-
データソースに設定した接続情報によって,プールされた接続として使用できるPooledConnectionオブジェクトを取得します。
- 【形式】
public synchronized PooledConnection getPooledConnection(String user, String password) throws SQLException
- 【引数】
-
String user:接続時のユーザ名
String password:接続時のパスワード
- 【戻り値】
-
PooledConnectionオブジェクト
- 【機能詳細】
-
引数で指定された情報,及びDataSourceオブジェクトに事前に設定された接続情報を基に,プールされた接続として使用できるPooledConnectionオブジェクトを返します。
引数user又は引数passwordがnullの場合,ユーザ名称又はパスワードを,この引数で指定しなかったことを示します。また,引数passwordが長さ0の文字列の場合,パスワードを指定しなかったことを示します。引数userとConnectionProperty中にユーザIDを設定した場合,引数userの指定値を優先します。同様に,パスワードも引数passwordの指定値を優先します。引数user及びpasswordを指定しない場合については,「接続情報の優先順位」を参照してください。
- 【発生する例外】
-
次の場合,SQLExceptionを投入します。
-
データベースアクセスエラーが発生した場合
-
引数に指定したユーザ名が長さ0の文字列の場合
-
(e) setLoginTimeout(int seconds)
- 【機能】
-
データベースへの接続試行中に待機する最長時間(秒)を指定します。
- 【形式】
public synchronized void setLoginTimeout(int seconds) throws SQLException
- 【引数】
-
int seconds:接続待ち時間(秒)
- 【戻り値】
-
なし。
- 【機能詳細】
-
PooledConnectionインタフェースのgetConnectionメソッドでConnectionオブジェクトを取得する際に行う,HiRDBサーバとの物理接続時に使用します。0を指定した場合,又はsetLoginTimeoutを実行していない場合は,PDCONNECTWAITTIMEで指定した時間が,HiRDBサーバとの物理接続時の,HiRDBサーバに対する最大待ち時間になります。
getConnectionメソッドでの接続処理は,大きく分けて次の二つから成ります。
-
TCP/IPのコネクション確立処理
-
HiRDBサーバとのユーザ認証などのネゴシエーション
このメソッド及びクライアント環境定義PDCONNECTWAITTIMEの指定値は,2.だけを監視対象としており,1.は監視対象に含みません。1.を監視する場合,クライアント環境定義PDNBLOCKWAITTIMEを指定する必要があります。
監視範囲の詳細については「クライアント環境定義の設定内容」のクライアント環境定義PDCONNECTWAITTIMEを参照してください。
-
- 【発生する例外】
-
引数secondsが0未満,又は301以上の場合,SQLExceptionを投入します。
(2) パッケージ名称及びクラス名称
このインタフェースを直接使用する場合に必要なパッケージ名称とクラス名称を次に示します。
パッケージ名称:JP.co.Hitachi.soft.HiRDB.JDBC
クラス名称:PrdbConnectionPoolDataSource