第2章 JBoss JTA 実装

Java Transaction API (JTA) には3つの要素が含まれています。
  • アプリケーショントランザクションのデマケーションインターフェース (ハイレベル)
  • アプリケーションサーバー向けのトランザクションマネージャインターフェース (ハイレベル)
  • トランザクショナルなリソースマネージャに向けたX/Open XA protocol の標準Java マッピング
JTA クラスおよびインターフェースはすべてjavax.transaction パッケージ内で宣言され、該当のJBossJTA 実装はcom.arjuna.ats.jta パッケージ内で定義されます。

重要

JBoss Transaction Serviceが作成したXid は、そのXid に埋め込まれた一意のノード識別子を必要とします。JBoss Transaction Service は、指定したノード識別子と一致するトランザクションおよびステートのみを回復します。このノード識別子は、com.arjuna.ats.arjuna.xa.nodeIdentifierプロパティを使い JBoss Transaction Service に提供する必要があります。この値は、お使いのJBoss Transaction Service インスタンス全体で固有のものであるように確認してください。値が提示されない場合、JBoss Transaction Service が値を生成し、ロギングインフラストラクチャを介してその値を報告します。このノード識別子は、英数字でなければなりません。

2.1. UserTransaction

UserTransaction インターフェースは、アプリケーションがトランザクション境界を制御できるようにします。また、このインターフェースはトップレベルのトランザクションを開始、コミット、ロールバックするためのメソッドを提供します。ネスト化されたトランザクションはサポートされておらず、呼出しているスレッドがすでにトランザクションと紐付いている場合begin メソッドはNotSupportedException をスローします。UserTransaction は自動的に新しく作成されたトランザクションと呼出しているスレッドを自動で関連付けます。

注記

JNDI からUserTransaction を取得できます。
	InitialContext ic = new InitialContext();
	UserTransaction utx = ic.lookup("java:comp/UserTransaction")
ローカルのJTA 実装を選択する方法
  1. com.arjuna.ats.jta.jtaTMImplementation プロパティをcom.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImpleに設定します。
  2. com.arjuna.ats.jta.jtaUTImplementation プロパティをcom.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImpleに設定します。