Cosminexus V9 アプリケーションサーバ 機能解説 互換編

[目次][用語][索引][前へ][次へ]

4.7.3 JDBC2.0拡張機能の概要

ここでは,DABroker Libraryで提供するJDBC2.0拡張機能の概要を説明します。各メソッドでの制限事項については,「4.10 DABroker Libraryで使用するAPIの一覧」を参照してください。

<この項の構成>
(1) JNDI連携
(2) 接続プール
(3) 分散トランザクション機能

(1) JNDI連携

JNDI連携とは,DBMSとの接続情報をJNDIに登録し,登録した接続情報を使用してDBMSと接続する機能です。一度接続情報を登録すれば,DBMSとの接続時に接続情報を設定する必要がなくなります。JNDI連携の操作については,「4.7.5 JDBC2.0拡張機能を使用したデータベース接続の設定」を参照してください。

(2) 接続プール

接続プール機能は,DataSourceオブジェクトとJNDIを使用してデータベースと接続した場合だけ使用できます。

データベースとの接続をためる(プール)機能の概要について説明します。

(a) 概要

DBMSとの接続をプールします。この機能は,DBMSとの接続および解放によるオーバーヘッドを縮小し,サーバアプリケーションの性能向上に役立ちます。

(b) 関連するクラス

接続プール機能に関連するクラスを次の表に示します。

表4-48  接続プールに関連するクラス

クラス 概要
javax.sql.
ConnectionEventListener

  • 接続プール機能が提供
  • 接続プール機能で,接続の切断,SQLエラーなどをこのクラスのオブジェクトから検知※1
javax.sql.DataSource
  • 接続プール機能が提供
  • データベース接続時のアプリケーションとのインタフェース
  • 接続プールを制御
  • JNDIに登録して使用
javax.sql.
ConnectionPoolDataSource

  • JDBC2.0拡張機能が提供※2
  • データベース接続に必要な接続情報の設定および取得用のメソッドを提供
  • 接続プール機能が使用
  • JNDIに登録して使用
  • このクラスのオブジェクトからPooledConnectionオブジェクトを取得
javax.sql.PooledConnection
  • JDBC2.0拡張機能が提供※2
  • 接続プール機能が使用
  • このクラスのオブジェクトがプール対象
  • このクラスのオブジェクトからConnectionオブジェクトを取得

注※1
connectionErrorOccurredが返されるのは次のエラーコードの場合です。
接続データベースがHiRDB:-720,-722,-723,-728,-732,-932,-1700
接続データベースがOracle:28,1012,3113,3114,12571

注※2
JDBC2.0拡張機能が提供するパッケージ名称とクラス名称を次に示します。

種類 名称
パッケージ JP.co.Hitachi.soft.DBPSV_Driver
ConnectionPoolDataSourceクラス JdbcDbpsvConnectionPoolDataSource
PooledConnectionクラス JdbcDbpsvPooledConnection

 


(3) 分散トランザクション機能

分散トランザクション機能とは,Sun Microsystemsの提唱するJava Transaction API(JTA)規格を基に,トランザクションマネージャと連携する,接続プール機能の拡張機能です。

分散トランザクション機能は,XADataSourceクラスとJNDIを使用してデータベースと接続した場合だけ使用できます。

分散トランザクション機能の概要について説明します。

(a) 概要

JTSおよびJTAとの連携によって,Sun Microsystemsの提唱するJava Transaction API(JTA)規格に沿った,分散トランザクションを構築できます。

接続プールの場合と同様に,アプリケーションが使用するConnectionオブジェクトはXAConnectionクラスが生成しますが,PooledConnectionクラスやJDBC2.0拡張機能が提供するDataSourceクラスが生成するConnectionオブジェクトと比べて,次の点が異なります。

(b) 関連するクラス

分散トランザクション機能に関連するクラスを次の表に示します。

表4-49  分散トランザクションに関連するクラス

クラス 概要
javax.sql.
ConnectionEventListener

  • トランザクション連携機能が提供
  • トランザクション連携機能で,接続の切断,SQLエラーなどをこのクラスのオブジェクトから検知※1
javax.sql.DataSource
  • トランザクション連携機能が提供
  • データベース接続時のアプリケーションとのインタフェース
  • トランザクションマネージャとの連携および接続プールを制御
  • JNDIに登録して使用
javax.sql.XADataSource
  • JDBC2.0拡張機能が提供※2
  • データベース接続に必要な接続情報の設定および取得用のメソッドを提供
  • トランザクション連携機能が使用
  • JNDIに登録して使用
  • このクラスのオブジェクトからXAConnectionオブジェクトを取得
javax.sql.XAConnection
  • JDBC2.0拡張機能が提供※2
  • PooledConnectionクラスのサブクラス
  • トランザクション連携機能が使用
  • このクラスのオブジェクトがプール対象
  • このクラスのオブジェクトからConnectionオブジェクトを取得
javax.transaction.xa.
XAResource

  • JDBC2.0拡張機能が提供※2
  • トランザクションマネージャが使用するXA関連メソッドを提供
javax.transaction.xa.Xid
  • JDBC2.0拡張機能※2およびトランザクションマネージャが提供
  • XAResourceクラスの引数および戻り値として使用

注※1
connectionErrorOccurredが返されるのは次のエラーコードの場合です。
接続データベースがHiRDB:-720,-722,-723,-728,-732,-932,-1700
接続データベースがOracle:28,1012,3113,3114,12571

注※2
JDBC2.0拡張機能が提供するパッケージ名称とクラス名称を次に示します。

種類 名称
パッケージ JP.co.Hitachi.soft.DBPSV_Driver
XADataSourceクラス JdbcDbpsvXADataSource
XAConnectionクラス JdbcDbpsvXAConnection
XAResourceクラス JdbcDbpsvXAResource
Xidクラス JdbcDbpsvXid