5.3. トランザクションオブジェクトの使用


トランザクションを一時停止または再開する必要がある場合、またはリソースを明示的に登録する必要がある場合、javax.transaction.Transaction オブジェクトを直接使用する必要がある場合があります。で説明したように「XA 登録の問題解決」、フレームワークまたはコンテナーは通常、リソースの登録を自動的に処理します。

5.3.1. トランザクションインターフェイスの定義

JTA Transaction インターフェイスの定義は以下のとおりです。

interface javax.transaction.Transaction {

    public void commit();

    public void rollback();

    public void setRollbackOnly();

    public int getStatus();

    public boolean enlistResource(XAResource xaRes);

    public boolean delistResource(XAResource xaRes, int flag);

    public void registerSynchronization(Synchronization sync);
}

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 オブジェクトは、コミットの準備フェーズの直前にコールバックを受信し、トランザクションの完了直後にコールバックを受け取ります。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.