Java Transaction API と BEA WebLogic の拡張機能
この章では、Java Transaction API (JTA)と BEA Systems が提供する JTA の拡張機能について概説します。
ここでは次の内容について説明します。
JTA API の概要
WebLogic Server では、Java アプリケーションの Java Transaction API (JTA) を実装する Sun Microsystems の javax.transaction パッケージと javax.transaction.xa パッケージがサポートされています。JTA の詳細については、Sun Microsystems 発行の Java Transaction API (JTA) 仕様 (バージョン 1.0.1a) を参照してください。javax.transaction インタフェースと javax.transaction.xa インタフェースの詳細については、JTA の Javadoc を参照してください。
JTA の構成要素は以下のとおりです。
- アプリケーションからトランザクションの境界を設定したり、トランザクションを管理したりするためのインタフェースである javax.transaction.UserTransaction。このインタフェースは、Java クライアント プログラムの一部として、または EJB 内で Bean 管理のトランザクションの一部として使用します。
- トランザクション マネージャがアプリケーションのトランザクションの境界を設定したり、トランザクションを管理したりするためのインタフェースである javax.transaction.TransactionManager。このインタフェースはコンテナ管理のトランザクションの一部として EJB コンテナによって使用されます。このインタフェースでは、javax.transaction.Transaction インタフェースを使用して特定のトランザクションで処理が実行されます。
- トランザクション マネージャがアプリケーション サーバにステータスおよび同期の情報を提供するためのインタフェースである javax.transaction.Status と javax.transaction.Synchronization。これらのインタフェースは、トランザクション マネージャによってのみアクセスされ、アプリケーション プログラムの一部として使用することはできません。
- トランザクション マネージャが XA 準拠リソースのリソース マネージャと連係するためのインタフェースである javax.transaction.xa.XAResource、およびトランザクション マネージャがトランザクションの識別子を取り出すためのインタフェースである javax.transaction.xa.Xid。これらのインタフェースは、トランザクション マネージャによってのみアクセスされ、アプリケーション プログラムの一部として使用することはできません。
JTA に対する BEA WebLogic の拡張機能
Java Transactions API の拡張機能は、JTA の仕様で実装の細かな部分がカバーされていないところや補足的な機能が必要なところで提供されます。
BEA WebLogic では、JTA 仕様の解釈に基づいて以下の機能が提供されます。
- クライアントが開始するトランザクション― JTA トランザクション マネージャ インタフェース (javax.transaction.TransactionManager) が JNDI を通じてクライアントや Bean プロバイダから利用可能になります。この機能により、クライアントや、Bean 管理のトランザクションを利用する EJB でトランザクションをサスペンドしたり再開したりすることができます。
注意: サスペンドされたトランザクションは、それがサスペンドされた同じサーバ プロセスで再開する必要があります。
- トランザクションのスコープ―トランザクションはクラスタとドメインの内部、およびクラスタとドメイン間で機能します。
BEA WebLogic では、JTA の拡張機能として以下のクラスとインタフェースが提供されます。
- weblogic.transaction.RollbackException (javax.transaction.RollbackException を拡張)
このクラスでは、より包括的な例外情報で使用するためにロールバックの元々の理由が保持されます。
- weblogic.transaction.TransactionManager (javax.transaction.TransactionManager を拡張)
WebLogic JTA トランザクション マネージャ オブジェクトでは、XA リソースが起動時にトランザクション マネージャに対する登録を行ったり、登録を解除したりできるようにするこのインタフェースがサポートされています。このインタフェースを利用すると、トランザクションをサスペンド後に再開することもできます。
このインタフェースには、以下のメソッドがあります。
- registerStaticResource、registerDynamicResource、および unregisterResource
- getTransaction
- forceResume および forceSuspend
- begin
- weblogic.transaction.Transaction (javax.transaction.Transaction を拡張)
WebLogic JTA トランザクション オブジェクトでは、ユーザがトランザクション プロパティを取得および設定できるようにするこのインタフェースがサポートされています。
このインタフェースには、以下のメソッドがあります。
- setName および getName
- addProperties、setProperty、getProperty、および getProperties
- setRollbackReason および getRollbackReason
- getHeuristicErrorMessage
- getXID および getXid
- getStatusAsString
- getMillisSinceBegin
- getTimeToLiveMillis
- isTimedOut
- weblogic.transaction.TxHelper
このクラスを使用すると、現在のトランザクション マネージャおよびトランザクションを取得できます。
このインタフェースには、以下の静的メソッドがあります。
- getTransaction、getUserTransaction、getTransactionManager
- status2String
- weblogic.transaction.XAResource (javax.transaction.xa.XAResource を拡張)
このクラスを使用すると、XA リソースをリストから削除できます。
このインタフェースには、次のメソッドがあります。
javax.transaction インタフェースと javax.transaction.xa インタフェースに対する WebLogic 拡張機能の詳細については、weblogic.transaction パッケージの説明を参照してください。