public interface XAResource
XAResourceインタフェースは、X/Open CAE仕様(分散トランザクション処理: XA仕様)に基づく業界標準のXAインタフェースのJavaマッピングです。
XAインタフェースは、分散トランザクション処理(DTP)環境でのリソース・マネージャとトランザクション・マネージャの間の規約を定義します。JDBCドライバまたはJMSプロバイダはこのインタフェースを実装して、グローバル・トランザクションとデータベースまたはメッセージ・サービス接続の間の関連付けをサポートします。
XAResourceインタフェースは、トランザクションが外部のトランザクション・マネージャによって制御される環境で、アプリケーション・プログラムにより使用されるすべてのトランザクション・リソースによってサポートできます。このようなリソースの例としては、データベース管理システムがあります。アプリケーションは複数のデータベース接続を介してデータにアクセスできます。各データベース接続は、トランザクション・マネージャによってトランザクション・リソースとして登録されます。トランザクション・マネージャは、グローバル・トランザクションに関連する各接続のXAResourceを取得します。トランザクション・マネージャは、start
メソッドを使用してグローバル・トランザクションをリソースに関連付け、end
メソッドを使用してトランザクションとリソースの関連付けを解除します。リソース・マネージャは、グローバル・トランザクションをstartメソッドの呼び出しとendメソッドの呼出しの間にそのデータに対して実行されるすべての処理に関連付けます。
トランザクションのコミット時に、リソース・マネージャは、2段階のコミット・プロトコルに従って、トランザクションを準備、コミット、またはロールバックするようトランザクション・マネージャから通知されます。
修飾子と型 | フィールドと説明 |
---|---|
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 で指定されたトランザクション・ブランチのための処理を開始します。 |
static final int TMENDRSCAN
static final int TMFAIL
static final int TMJOIN
static final int TMNOFLAGS
static final int TMONEPHASE
static final int TMRESUME
static final int TMSTARTRSCAN
static final int TMSUCCESS
static final int TMSUSPEND
static final int XA_RDONLY
static final int XA_OK
void commit(Xid xid, boolean onePhase) throws XAException
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つをスローすることがある。この場合、戻る際に、リソース・マネージャはトランザクション・ブランチの処理をロールバックし、保持していたすべてのリソースを解放している。
void end(Xid xid, int flags) throws XAException
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*。void forget(Xid xid) throws XAException
xid
- グローバル・トランザクション識別子。XAException
- エラーが発生したことを示す。取りうる例外値は、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、またはXAER_PROTO。int getTransactionTimeout() throws XAException
XAResource.setTransactionTimeout
が使用されていなかった場合、戻り値はリソース・マネージャに設定されたデフォルトのタイムアウトです。そうでない場合は、以前のsetTransactionTimeout
呼出しで使用された値が返されます。XAException
- エラーが発生したことを示す。取りうる例外値は、XAER_RMERRまたはXAER_RMFAIL。boolean isSameRM(XAResource xares) throws XAException
xares
- ターゲット・オブジェクトのリソース・マネージャ・インスタンスと比較されるリソース・マネージャ・インスタンスを持つXAResourceオブジェクト。XAException
- エラーが発生したことを示す。取りうる例外値は、XAER_RMERRまたはXAER_RMFAIL。int prepare(Xid xid) throws XAException
xid
- グローバル・トランザクション識別子。XAException
- エラーが発生したことを示す。取りうる例外値は、XA_RB*、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、またはXAER_PROTO。Xid[] recover(int flag) throws XAException
flag
- TMSTARTRSCAN、TMENDRSCAN、TMNOFLAGSのいずれか。TMNOFLAGSは、パラメータにほかのフラグが設定されていない場合に使用する必要がある。XAException
- エラーが発生したことを示す。取りうる値は、XAER_RMERR、XAER_RMFAIL、XAER_INVAL、またはXAER_PROTO。void rollback(Xid xid) throws XAException
xid
- グローバル・トランザクション識別子。XAException
- エラーが発生したことを示す。boolean setTransactionTimeout(int seconds) throws XAException
このXAResource
インスタンスの現在のトランザクション・タイムアウト値を設定します。このタイム・アウト値は、一度設定されると、別の値を使用してsetTransactionTimeout
が再度呼び出されるまで有効です。タイム・アウト値をリソース・マネージャで使用されるデフォルト値にリセットするには、値をゼロに設定します。タイム・アウト操作が正常に実行されると、このメソッドはtrueを返し、そうでない場合はfalseを返します。リソース・マネージャがトランザクション・タイムアウト値の明示的な設定をサポートしていない場合、このメソッドはfalseを返します。
seconds
- 秒単位のトランザクション・タイムアウト値。XAException
- エラーが発生したことを示す。取りうる例外値は、XAER_RMERR、XAER_RMFAIL、またはXAER_INVAL。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。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.