Cosminexus アプリケーション開発ガイド

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

22.3.3 分散トランザクション機能

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

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

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

<この項の構成>
(1) 概要
(2) 関連するクラス
(3) 注意事項

(1) 概要

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

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

(2) 関連するクラス

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

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

クラス 概要
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

(3) 注意事項

トランザクション連携機能に関連するクラスのインタフェース定義は,JDKでは標準で提供していません。トランザクション連携機能を使用するときは,JavaSoftのホームページから入手しておいてください。