|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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
- エラーが発生したことを示す。取りうる XAException 値は 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_PROTOint getTransactionTimeout() throws XAException
XAResource.setTransactionTimeout
が使用されていなかった場合、戻り値はリソースマネージャに対して設定されたデフォルトのタイムアウトです。そうでない場合は、以前の setTransactionTimeout
呼び出しで使用された値が返されます。
XAException
- エラーが発生したことを示す。可能性のある例外値は XAER_RMERR および XAER_RMFAILboolean isSameRM(XAResource xares) throws XAException
xares
- ターゲットオブジェクトのリソースマネージャインスタンスと比較されるリソースマネージャインスタンスを持つ XAResource オブジェクト
XAException
- エラーが発生したことを示す。可能性のある例外値は XAER_RMERR および XAER_RMFAILint prepare(Xid xid) throws XAException
xid
- グローバルトランザクション識別子
XAException
- エラーが発生したことを示す。取りうる例外値は、XA_RB*、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、または XAER_PROTOXid[] recover(int flag) throws XAException
flag
- パラメータにほかのフラグが設定されていない場合は、TMSTARTRSCAN、TMENDRSCAN、TMNOFLAGS、TMNOFLAGS のいずれかを使用する必要がある
XAException
- エラーが発生したことを示す。取りうる値は、XAER_RMERR、XAER_RMFAIL、XAER_INVAL、または XAER_PROTOvoid 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_INVALvoid 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
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。