Oracle® Fusion Middleware Oracle WebLogic Server JTA プログラマーズ ガイド 11g リリース 1 (10.3.1) B55540-01 |
|
戻る |
次へ |
この章では、Java Transaction API (JTA) と Oracle が提供する JTA の拡張機能について概説します。
この章では、以下のトピックについて説明します。
WebLogic Server では、Java アプリケーションの Java Transaction API (JTA) を実装する Sun Microsystems の javax.transaction
パッケージと javax.transaction.xa
パッケージがサポートされています。JTA の詳細については、Sun Microsystems 発行の Java Transaction API (JTA) 仕様 (http://java.sun.com/products/jta/index.html
) を参照してください。 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
。これらのインタフェースは、トランザクション マネージャによってのみアクセスされ、アプリケーション プログラムの一部として使用することはできません。
Java Transactions API の拡張機能は、JTA の仕様で実装の細かな部分がカバーされていないところや補足的な機能が必要なところで提供されます。
Oracle WebLogic では、JTA 仕様の解釈に基づいて以下の機能が提供されます。
クライアントが開始するトランザクション - JTA トランザクション マネージャ インタフェース (javax.transaction.TransactionManager
) が JNDI を通じてクライアントや Bean プロバイダから利用可能になります。この機能により、クライアントや、Bean 管理のトランザクションを利用する EJB でトランザクションをサスペンドしたり再開したりすることができます。
注意 : サスペンドされたトランザクションは、それがサスペンドされたのと同じサーバ プロセスで再開する必要があります。 |
トランザクションのスコープ - トランザクションはクラスタとドメインの内部、およびクラスタとドメイン間で機能します。
拡張された javax.transaction.TransactionSynchronizationRegistry
のサポート - WebLogic Server では、java:comp/TransactionSynchronizationRegistry
の標準名を使用して、JNDI 内の TransactionSynchronizationRegistry
オブジェクトをルックアップできるようになりました。Oracle では、このサポートを拡張するため、2 つのグローバル JNDI 名 (javax/transaction/TransactionSynchronizationRegistry
と weblogic/transaction/TransactionSynchronizationRegistry
) を追加しました。詳細については、http://java.sun.com/javaee/5/docs/api/index.html?javax/transaction/TransactionSynchronizationRegistry.html
の javax.transaction.TransactionSynchronizationRegistry
を参照してください。
Oracle WebLogic では、JTA の拡張機能として以下のクラスとインタフェースが提供されます。
weblogic.transaction.RollbackException
(javax.transaction.RollbackException
を拡張)
このクラスでは、より包括的な例外情報で使用するためにロールバックの元々の理由が保持されます。
weblogic.transaction.TransactionManager
(javax.transaction.TransactionManager
を拡張)
WebLogic JTA トランザクション マネージャ オブジェクトでは、XA リソースが起動時にトランザクション マネージャに対する登録を行ったり、登録を解除したりできるようにするこのインタフェースがサポートされています。このインタフェースを利用すると、トランザクションをサスペンド後に再開することもできます。
このインタフェースには、以下のメソッドがあります。
registerStaticResource
、registerDynamicResource
、および unregisterResource
registerResource
- (WebLogic Server 8.1 で新しく追加されたメソッド) このメソッドでは、トランザクション マネージャによるリソースの管理方法を指定するためのプロパティがサポートされています。
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.TransactionHelper
このクラスを使用すると、現在のトランザクション マネージャおよびトランザクションを取得できます。TxHelper
の代わりに使用されます。
このインタフェースには、以下の静的メソッドがあります。
getTransaction
getUserTransaction
getTransactionManager
weblogic.transaction.TxHelper
(非推奨。代わりに TransactionHelper
を使用してください)
このクラスを使用すると、現在のトランザクション マネージャおよびトランザクションを取得できます。
このインタフェースには、以下の静的メソッドがあります。
getTransaction
、getUserTransaction
、getTransactionManager
status2String
weblogic.transaction.XAResource
(javax.transaction.xa.XAResource
を拡張)
このクラスを使用すると、XA リソースをリストから削除できます。
このインタフェースには、次のメソッドがあります。
getDelistFlag
weblogic.transaction.nonxa.NonXAResource
このインタフェースを使用すると、javax.transaction.xa.XAResource
インタフェースをサポートしていないリソースを簡単に WebLogic Server トランザクション マネージャに統合できます。トランザクション マネージャでは、非 XA リソースが分散トランザクションに参加することを許可する、最後のエージェントによる 2 フェーズ コミットの最適化のバリエーションがサポートされています。プロトコルは、非 XA リソースに対して 1 フェーズ コミットを発行し、その処理の結果を使用してトランザクションのコミットの決定を行います。
javax.transaction
インタフェースおよび javax.transaction.xa
インタフェースに対する WebLogic の拡張機能の詳細については、『Oracle Fusion Middleware Oracle WebLogic Server API Reference』の「weblogic.transaction
package summary」を参照してください。