JDBC2.0 Optional Packageでは,DBとの接続をプールする機能が規定されています。接続プールの概要を次に示します。
- 既存のアプリケーションに影響を与えません。つまり,アプリケーションは接続プールの有無を意識する必要がありません。ただし,DB接続がDriverManagerを使用する方法ではなく,JDBC2.0 Optional Packageで導入されたDataSourceとJNDIを使用する方法で行っていることが前提となります。
- 接続プールを行う機能自体は,JDBC規格の機能範囲外です。これは,システム構築時に,接続プール機能をユーザが任意に選択できるようにするためです(ユーザが自分で作成するか,APServerベンダ提供のものを使用するか,又はJDBCベンダが提供するものを使用します)。
- 接続プール機能では,アプリケーションとのインタフェースとしてDataSourceクラスを使用できます。このDataSourceクラスは,JDBCドライバが提供するDataSourceクラスとは別のものです。
- JDBCドライバでは,接続プール機能とのインタフェースとして,ConnectionPoolDataSourceクラスとPooledConnectionクラスを使用できます。
- JDBCドライバが提供するConnectionPoolDataSourceクラスは,JDBCドライバが提供するDataSourceクラスと同様に,接続情報の設定/取得用のメソッドを使用できます。
接続プールに関連するクラスを次の表に示します。
表17-11 接続プールに関連するクラス
クラス |
概 要 |
javax.sql.DataSource |
- 接続プール機能が提供します。
- DB接続のとき,アプリケーションとのインタフェースとして使用します。
- 通常,接続プールの制御はこのクラスで行います。
- 通常,JNDIに登録して使用します。
- JDBCドライバが提供するDataSourceクラスとは別のものです。
|
javax.sql.ConnectionPoolDataSource |
- JDBCドライバが提供します。
- DB接続に必要な,接続情報設定/取得用のメソッドを使用できます。
- 通常,アプリケーションから直接使用することはなく,接続プール機能で使用されます。
- 通常,JNDIに登録して使用します。
- 接続プール機能は,このクラスのオブジェクトから,PooledConnectionオブジェクトを取得します。
|
javax.sql.PooledConnection |
- JDBCドライバが提供します。
- 通常,アプリケーションから直接使用することはなく,接続プール機能で使用されます。
- 接続プール機能は,このクラスのオブジェクトをプールの対象とします。
- 接続プール機能は,このクラスのオブジェクトから,アプリケーションが使用するConnectionオブジェクトを取得します。
|
javax.sql.ConnectionEventListener |
- 接続プール機能が提供します。
- 接続プール機能は,接続の切断/SQLエラーなどを,このクラスのオブジェクトを通して検知することで,接続プールの契機とします。
|
表17-11のクラスのインタフェース定義は,JDKのバージョンによってはJDKに標準で含まれていないため,接続プール機能を使用する場合はJavaSoftのWebサイトで確認する必要があります。
表17-11の,JDBCドライバが提供するクラスのパッケージ名称とクラス名称を次に示します。
- パッケージ名称:JP.co.Hitachi.soft.HiRDB.JDBC
- ConnectionPoolDataSourceクラス名称:JdbhConnectionPoolDataSource
- PooledConnectionクラス名称:JdbhPooledConnection
なお,JDBCドライバが提供するConnectionPoolDataSourceクラスの接続情報の設定は,JDBCドライバが提供するDataSourceクラスの接続情報の設定と同じです。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.