-
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
で指定されたトランザクション・ブランチのための処理を開始します。
-
-
-
フィールドの詳細
-
TMENDRSCAN
static final int TMENDRSCAN
回復走査を終了します。- 関連項目:
- 定数フィールド値
-
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
呼出し側は中断されたトランザクション・ブランチとの関連付けを再開します。- 関連項目:
- 定数フィールド値
-
TMSTARTRSCAN
static final int TMSTARTRSCAN
回復走査を開始します。- 関連項目:
- 定数フィールド値
-
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。
-
-