5.3. トランザクションオブジェクトの使用
トランザクションを一時停止または再開する必要がある場合、またはリソースを明示的に登録する必要がある場合、javax.transaction.Transaction オブジェクトを直接使用する必要がある場合があります。で説明したように「XA 登録の問題解決」、フレームワークまたはコンテナーは通常、リソースの登録を自動的に処理します。
5.3.1. トランザクションインターフェイスの定義 リンクのコピーリンクがクリップボードにコピーされました!
JTA Transaction インターフェイスの定義は以下のとおりです。
5.3.2. トランザクションメソッドの説明 リンクのコピーリンクがクリップボードにコピーされました!
commit()、rollback()、setRollbackOnly()、および getStatus() メソッドは、UserTransaction インターフェイスからの該当のメソッドと同じ動作をします。実際、UserTransaction オブジェクトは現在のトランザクションを取得し、Transaction オブジェクトで対応するメソッドを呼び出す便利なラッパーです。
また、Transaction インターフェイスは、UserTransaction インターフェイスにカウンターがない以下のメソッドを定義します。
- enlistResource()
XA リソースを現在のトランザクションに関連付けます。
注記この方法は、XA トランザクションのコンテキストで非常に重要です。XA トランザクションを特徴とする現在のトランザクションを使用して複数の XA リソースを登録する機能です。一方、リソースを明示的に登録するのは面倒であり、通常、フレームワークまたはコンテナーがこれを行うことを想定します。たとえば、「XA 登録の問題解決」 を参照してください。
- delistResource()
トランザクションから、指定されたリソースの関連付けを解除します。flag 引数は、
javax.transaction.Transactionインターフェイスで定義される以下の整数値のいずれかを取ることができます。-
TMSUCCESS -
TMFAIL -
TMSUSPEND
-
- registerSynchronization()
-
javax.transaction.Synchronizationオブジェクトを現在のトランザクションに登録します。Synchronizationオブジェクトは、コミットの準備フェーズの直前にコールバックを受信し、トランザクションの完了直後にコールバックを受け取ります。