パッケージ jakarta.resource.spi

インターフェース XATerminator


  • public interface XATerminator

    XATerminator インターフェースは、トランザクションの補完とクラッシュの回復フローに使用されます。

    バージョン:
    1.0
    作成者:
    Ram Jeyaraman
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   抽象メソッド  
      修飾子と型 メソッド 説明
      voidcommit​(XidSE xid, boolean onePhase)
      xid で指定されたグローバルトランザクションをコミットします。
      voidforget​(XidSE xid)
      ヒューリスティックに完了したトランザクションブランチを忘れるようにリソースマネージャーに指示します。
      intprepare​(XidSE xid)
      xid で指定されたトランザクションのトランザクションコミットの準備をするようにリソースマネージャーに依頼します。
      XidSE[]recover​(int flag)
      準備されたトランザクションブランチのリストをリソースマネージャーから取得します。
      voidrollback​(XidSE xid)
      トランザクションブランチに代わって実行された作業をロールバックするようにリソースマネージャーに通知します。
    • メソッドの詳細

      • commit

        void commit​(XidSE xid,
                    boolean onePhase)
             throws XAExceptionSE
        xid で指定されたグローバルトランザクションをコミットします。
        パラメーター:
        xid - グローバルトランザクション識別子
        onePhase - true の場合、リソースマネージャーは、1 フェーズコミットプロトコルを使用して、xid に代わって実行された作業をコミットする必要があります。
        例外:
        XAExceptionSE - エラーが発生しました。考えられる XAException は、XA_HEURHAZ、XA_HEURCOM、XA_HEURRB、XA_HEURMIX、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、XAER_PROTO です。

        リソースマネージャーがトランザクションをコミットしておらず、パラメーター onePhase が true に設定されている場合、リソースマネージャーは XA_RB* 例外の 1 つをスローする可能性があります。戻ると、リソースマネージャーは ブランチの作業をロールバックし、保持されているすべてのリソースを解放します。

      • forget

        void forget​(XidSE xid)
             throws XAExceptionSE
        ヒューリスティックに完了したトランザクションブランチを忘れるようにリソースマネージャーに指示します。
        パラメーター:
        xid - グローバルトランザクション識別子。
        例外:
        XAExceptionSE - エラーが発生しました。可能な例外値は、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、XAER_PROTO です。
      • prepare

        int prepare​(XidSE xid)
             throws XAExceptionSE
        xid で指定されたトランザクションのトランザクションコミットの準備をするようにリソースマネージャーに依頼します。
        パラメーター:
        xid - グローバルトランザクション識別子。
        戻り値:
        トランザクションの結果に対するリソースマネージャーの投票を示す値。可能な値は、XA_RDONLY または XA_OK です。これらの定数は、 javax.transaction.xa.XAResource インターフェースで定義されています。リソースマネージャーがトランザクションをロールバックする場合は、prepare メソッドで適切な XAException を発生させる必要があります。
        例外:
        XAExceptionSE - エラーが発生しました。考えられる例外値は、XA_RB *、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、XAER_PROTO です。
      • recover

        XidSE[] recover​(int flag)
               throws XAExceptionSE
        準備されたトランザクションブランチのリストをリソースマネージャーから取得します。トランザクションマネージャーは、リカバリ中にこのメソッドを呼び出して、現在準備済みまたはヒューリスティックに完了した状態にあるトランザクションブランチのリストを取得します。
        パラメーター:
        flag - TMSTARTRSCAN、TMENDRSCAN、TMNOFLAGS のいずれか。パラメーターに他のフラグが設定されていない場合は、TMNOFLAGS を使用する必要があります。これらの定数は、javax.transaction.xa.XAResource インターフェースで定義されています。
        戻り値:
        リソースマネージャーは、現在準備済みまたはヒューリスティックに完了した状態にあるトランザクションブランチの 0 個以上の XID を返します。操作中にエラーが発生した場合、リソースマネージャーは適切な XAException をスローする必要があります。
        例外:
        XAExceptionSE - エラーが発生しました。可能な値は、XAER_RMERR、XAER_RMFAIL、XAER_INVAL、XAER_PROTO です。
      • rollback

        void rollback​(XidSE xid)
               throws XAExceptionSE
        トランザクションブランチに代わって実行された作業をロールバックするようにリソースマネージャーに通知します。
        パラメーター:
        xid - グローバルトランザクション識別子。
        例外:
        XAExceptionSE - エラーが発生しました。考えられる XAException は、XA_HEURHAZ、XA_HEURCOM、XA_HEURRB、XA_HEURMIX、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、XAER_PROTO です。

        トランザクションブランチがすでにロールバックとしてマークされている場合、リソースマネージャーのみが XA_RB * 例外の 1 つをスローできます。戻ったとき、リソースマネージャーはブランチの作業をロールバックし、保持されているすべてのリソースを解放しました。