モジュール java.transaction.xa
パッケージ javax.transaction.xa

インタフェースXAResource


  • public interface XAResource
    XAResourceインタフェースは、X/Open CAE仕様(分散トランザクション処理: XA仕様)に基づく業界標準のXAインタフェースのJavaマッピングです。

    XAインタフェースは、分散トランザクション処理(DTP)環境でのリソース・マネージャとトランザクション・マネージャの間の規約を定義します。 JDBCドライバまたはJMSプロバイダはこのインタフェースを実装して、グローバル・トランザクションとデータベースまたはメッセージ・サービス接続の間の関連付けをサポートします。

    XAResourceインタフェースは、トランザクションが外部のトランザクション・マネージャによって制御される環境で、アプリケーション・プログラムにより使用されるすべてのトランザクション・リソースによってサポートできます。 このようなリソースの例としては、データベース管理システムがあります。 アプリケーションは複数のデータベース接続を介してデータにアクセスできます。 各データベース接続は、トランザクション・マネージャによってトランザクション・リソースとして登録されます。 トランザクション・マネージャは、グローバル・トランザクションに関連する各接続のXAResourceを取得します。 トランザクション・マネージャは、startメソッドを使用してグローバル・トランザクションをリソースに関連付け、endメソッドを使用してトランザクションとリソースの関連付けを解除します。 リソース・マネージャは、グローバル・トランザクションをstartメソッドの呼び出しとendメソッドの呼出しの間にそのデータに対して実行されるすべての処理に関連付けます。

    トランザクションのコミット時に、リソース・マネージャは、2段階のコミット・プロトコルに従って、トランザクションを準備、コミット、またはロールバックするようトランザクション・マネージャから通知されます。

    導入されたバージョン:
    1.4
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static int TMENDRSCAN
      回復走査を終了します。
      static int TMFAIL
      呼出し側の関連付けを解除し、トランザクション・ブランチにロールバックのみのマークを付けます。
      static int TMJOIN
      呼出し側が既存のトランザクション・ブランチに参加します。
      static int TMNOFLAGS
      TMNOFLAGSを使用して、フラグ値が選択されていないことを示します。
      static int TMONEPHASE
      呼出し側は1段階の最適化を使用しています。
      static int TMRESUME
      呼出し側は中断されたトランザクション・ブランチとの関連付けを再開します。
      static int TMSTARTRSCAN
      回復走査を開始します。
      static int TMSUCCESS
      呼出し側とトランザクション・ブランチとの関連付けを解除します。
      static int TMSUSPEND
      呼出し側はトランザクション・ブランチとの関連付けを中断します(終了ではない)。
      static int XA_OK
      トランザクション処理が正常に準備されました。
      static int XA_RDONLY
      トランザクション・ブランチでは読み取りしか行われておらず、コミットされました。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 
      修飾子と型 メソッド 説明
      void commit​(Xid xid, boolean onePhase)
      xidで指定されたグローバル・トランザクションをコミットします。
      void end​(Xid xid, int flags)
      トランザクション・ブランチのために実行された処理を終了します。
      void forget​(Xid xid)
      ヒューリスティックに決着されたトランザクション・ブランチを無視するようにリソース・マネージャに通知します。
      int getTransactionTimeout()
      このXAResourceインスタンスに対して設定された現在のトランザクション・タイムアウト値を取得します。
      boolean isSameRM​(XAResource xares)
      このメソッドを呼び出して、ターゲット・オブジェクトで表されるリソース・マネージャ・インスタンスがパラメータxaresで表されるリソース・マネージャ・インスタンスと同じかどうかを判定できます。
      int prepare​(Xid xid)
      xidで指定されたトランザクションのトランザクション・コミットの準備をするようリソース・マネージャに要求します。
      Xid[] recover​(int flag)
      リソース・マネージャから準備されたトランザクション・ブランチのリストを取得します。
      void rollback​(Xid xid)
      トランザクション・ブランチのために実行された処理をロールバックするようリソース・マネージャに通知します。
      boolean setTransactionTimeout​(int seconds)
      このXAResourceインスタンスの現在のトランザクション・タイムアウト値を設定します。
      void start​(Xid xid, int flags)
      xidで指定されたトランザクション・ブランチのための処理を開始します。
    • フィールドの詳細

      • TMFAIL

        static final int TMFAIL
        呼出し側の関連付けを解除し、トランザクション・ブランチにロールバックのみのマークを付けます。
        関連項目:
        定数フィールド値
      • TMJOIN

        static final int TMJOIN
        呼出し側が既存のトランザクション・ブランチに参加します。
        関連項目:
        定数フィールド値
      • TMNOFLAGS

        static final int TMNOFLAGS
        TMNOFLAGSを使用して、フラグ値が選択されていないことを示します。
        関連項目:
        定数フィールド値
      • TMONEPHASE

        static final int TMONEPHASE
        呼出し側は1段階の最適化を使用しています。
        関連項目:
        定数フィールド値
      • TMRESUME

        static final int TMRESUME
        呼出し側は中断されたトランザクション・ブランチとの関連付けを再開します。
        関連項目:
        定数フィールド値
      • TMSUCCESS

        static final int TMSUCCESS
        呼出し側とトランザクション・ブランチとの関連付けを解除します。
        関連項目:
        定数フィールド値
      • TMSUSPEND

        static final int TMSUSPEND
        呼出し側はトランザクション・ブランチとの関連付けを中断します(終了ではない)。
        関連項目:
        定数フィールド値
      • XA_RDONLY

        static final int XA_RDONLY
        トランザクション・ブランチでは読み取りしか行われておらず、コミットされました。
        関連項目:
        定数フィールド値
      • XA_OK

        static final int XA_OK
        トランザクション処理が正常に準備されました。
        関連項目:
        定数フィールド値
    • メソッドの詳細

      • commit

        void commit​(Xid xid,
                    boolean onePhase)
             throws XAException
        xidで指定されたグローバル・トランザクションをコミットします。
        パラメータ:
        xid - グローバル・トランザクション識別子
        onePhase - trueの場合、リソース・マネージャは1段階のコミット・プロトコルを使用して、xidのために行われた処理をコミットする必要がある。
        例外:
        XAException - エラーが発生したことを示す。 取りうるXAExceptions値は、XA_HEURHAZ、XA_HEURCOM、XA_HEURRB、XA_HEURMIX、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、またはXAER_PROTO。

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

      • end

        void end​(Xid xid,
                 int flags)
          throws XAException
        トランザクション・ブランチのために実行された処理を終了します。 リソース・マネージャは、指定されたトランザクション・ブランチとXAリソースの関連付けを解除して、トランザクションを完了させます。

        TMSUSPENDがフラグに指定されると、トランザクション・ブランチは不完全な状態で一時的に中断されます。 トランザクション・コンテキストは中断状態であり、TMRESUMEを指定したstartメソッドを介して再開する必要があります。

        TMFAILが指定されている場合、処理部分は失敗しました。 リソース・マネージャは、トランザクションにロールバック専用のマークを付けることがあります。

        TMSUCCESSが指定されている場合、処理部分は正常に完了しました。

        パラメータ:
        xid - 以前にstartメソッドで使用された識別子と同じグローバル・トランザクション識別子。
        flags - TMSUCCESS、TMFAIL、またはTMSUSPENDのいずれか。
        例外:
        XAException - エラーが発生したことを示す。 取りうるXAException値は、XAER_RMERR、XAER_RMFAILED、XAER_NOTA、XAER_INVAL、XAER_PROTO、またはXA_RB*。
      • forget

        void forget​(Xid xid)
             throws XAException
        ヒューリスティックに決着されたトランザクション・ブランチを無視するようにリソース・マネージャに通知します。
        パラメータ:
        xid - グローバル・トランザクション識別子。
        例外:
        XAException - エラーが発生したことを示す。 取りうる例外値は、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、またはXAER_PROTO。
      • getTransactionTimeout

        int getTransactionTimeout()
                           throws XAException
        このXAResourceインスタンスに対して設定された現在のトランザクション・タイムアウト値を取得します。 このメソッドを呼び出す前にXAResource.setTransactionTimeoutが使用されていなかった場合、戻り値はリソース・マネージャに設定されたデフォルトのタイムアウトです。そうでない場合は、以前のsetTransactionTimeout呼出しで使用された値が返されます。
        戻り値:
        トランザクション・タイムアウト値(秒単位)。
        例外:
        XAException - エラーが発生したことを示す。 取りうる例外値は、XAER_RMERRまたはXAER_RMFAIL。
      • isSameRM

        boolean isSameRM​(XAResource xares)
                  throws XAException
        このメソッドを呼び出して、ターゲット・オブジェクトで表されるリソース・マネージャ・インスタンスがパラメータxaresで表されるリソース・マネージャ・インスタンスと同じかどうかを判定できます。
        パラメータ:
        xares - ターゲット・オブジェクトのリソース・マネージャ・インスタンスと比較されるリソース・マネージャ・インスタンスを持つXAResourceオブジェクト。
        戻り値:
        同じRMインスタンスである場合はtrue、そうでない場合はfalse
        例外:
        XAException - エラーが発生したことを示す。 取りうる例外値は、XAER_RMERRまたはXAER_RMFAIL。
      • prepare

        int prepare​(Xid xid)
             throws XAException
        xidで指定されたトランザクションのトランザクション・コミットの準備をするようリソース・マネージャに要求します。
        パラメータ:
        xid - グローバル・トランザクション識別子。
        戻り値:
        トランザクションの結果に関するリソース・マネージャの判定を示す値。 返される値: XA_RDONLYまたはXA_OK。 リソース・マネージャがトランザクションをロールバックさせたい場合は、準備のためのメソッドで該当するXAExceptionを発生させる。
        例外:
        XAException - エラーが発生したことを示す。 取りうる例外値は、XA_RB*、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、またはXAER_PROTO。
      • recover

        Xid[] recover​(int flag)
               throws XAException
        リソース・マネージャから準備されたトランザクション・ブランチのリストを取得します。 トランザクション・マネージャは回復時にこのメソッドを呼び出して、現在準備状態またはヒューリスティックに決着された状態にあるトランザクション・ブランチのリストを取得します。
        パラメータ:
        flag - TMSTARTRSCAN、TMENDRSCAN、TMNOFLAGSのいずれか。 TMNOFLAGSは、パラメータにほかのフラグが設定されていない場合に使用する必要がある。
        戻り値:
        リソース・マネージャは、現在準備状態またはヒューリスティックに決着された状態にあるトランザクション・ブランチのゼロ以上のXIDを返す。 操作中にエラーが発生すると、リソース・マネージャは該当するXAExceptionをスローする。
        例外:
        XAException - エラーが発生したことを示す。 取りうる値は、XAER_RMERR、XAER_RMFAIL、XAER_INVAL、またはXAER_PROTO。
      • rollback

        void rollback​(Xid xid)
               throws XAException
        トランザクション・ブランチのために実行された処理をロールバックするようリソース・マネージャに通知します。
        パラメータ:
        xid - グローバル・トランザクション識別子。
        例外:
        XAException - エラーが発生したことを示す。
      • setTransactionTimeout

        boolean setTransactionTimeout​(int seconds)
                               throws XAException
        このXAResourceインスタンスの現在のトランザクション・タイムアウト値を設定します。 このタイム・アウト値は、一度設定されると、別の値を使用してsetTransactionTimeoutが再度呼び出されるまで有効です。 タイム・アウト値をリソース・マネージャで使用されるデフォルト値にリセットするには、値をゼロに設定します。 タイム・アウト操作が正常に実行されると、このメソッドはtrueを返し、そうでない場合はfalseを返します。 リソース・マネージャがトランザクション・タイムアウト値の明示的な設定をサポートしていない場合、このメソッドはfalseを返します。
        パラメータ:
        seconds - 秒単位のトランザクション・タイムアウト値。
        戻り値:
        トランザクション・タイムアウト値が正常に設定された場合はtrue、そうでない場合はfalse
        例外:
        XAException - エラーが発生したことを示す。 取りうる例外値は、XAER_RMERR、XAER_RMFAIL、またはXAER_INVAL。
      • start

        void start​(Xid xid,
                   int flags)
            throws XAException
        xidで指定されたトランザクション・ブランチのための処理を開始します。 TMJOINが指定される場合は、リソース・マネージャで以前に使用されたトランザクションの参加を開始します。 TMRESUMEが指定される場合は、パラメータxidで指定された中断トランザクションを再開します。 TMJOINもTMRESUMEも指定されず、xidで指定されたトランザクションが以前にリソース・マネージャで使用されたことがある場合、リソース・マネージャはエラー・コードXAER_DUPIDでXAException例外をスローします。
        パラメータ:
        xid - リソースに関連付けられるグローバル・トランザクション識別子。
        flags - TMNOFLAGS、TMJOIN、またはTMRESUMEのいずれか。
        例外:
        XAException - エラーが発生したことを示す。 取りうる例外値は、XA_RB*、XAER_RMERR、XAER_RMFAIL、XAER_DUPID、XAER_OUTSIDE、XAER_NOTA、XAER_INVAL、またはXAER_PROTO。