|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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 で指定されたトランザクションの枝のための処理を開始します。
|
フィールドの詳細 |
public static final int TMENDRSCAN
public static final int TMFAIL
public static final int TMJOIN
public static final int TMNOFLAGS
public static final int TMONEPHASE
public static final int TMRESUME
public static final int TMSTARTRSCAN
public static final int TMSUCCESS
public static final int TMSUSPEND
public static final int XA_RDONLY
public static final int XA_OK
メソッドの詳細 |
public 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 つをスローすることがあります。戻る際に、リソースマネージャは枝の処理をロールバックし、保持していたすべてのリソースを解放しました。
public 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*public void forget(Xid xid) throws XAException
xid
- グローバルトランザクション識別子
XAException
- エラーが発生したことを示す。可能性のある XAException 値は、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、または XAER_PROTOpublic int getTransactionTimeout() throws XAException
XAResource.setTransactionTimeout
が使用されていなかった場合、戻り値はリソースマネージャに対して設定されたデフォルトのタイムアウトです。そうでない場合は、以前の setTransactionTimeout
呼び出しで使用された値が返されます。
XAException
- エラーが発生したことを示す。可能性のある例外値は XAER_RMERR および XAER_RMFAILpublic boolean isSameRM(XAResource xares) throws XAException
xares
- ターゲットオブジェクトのリソースマネージャインスタンスと比較されるリソースマネージャインスタンスを持つ XAResource オブジェクト
XAException
- エラーが発生したことを示す。可能性のある例外値は XAER_RMERR および XAER_RMFAILpublic int prepare(Xid xid) throws XAException
xid
- グローバルトランザクション識別子
XAException
- エラーが発生したことを示す。可能性のある XAException 値は、XA_RB*、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、または XAER_PROTOpublic Xid[] recover(int flag) throws XAException
flag
- パラメータにほかのフラグが設定されていない場合は、TMSTARTRSCAN、TMENDRSCAN、TMNOFLAGS、TMNOFLAGS のいずれかを使用する必要がある
XAException
- エラーが発生したことを示す。可能性のある値は、XAER_RMERR、XAER_RMFAIL、XAER_INVAL、および XAER_PROTOpublic void rollback(Xid xid) throws XAException
xid
- グローバルトランザクション識別子
XAException
- エラーが発生したことを示すpublic boolean setTransactionTimeout(int seconds) throws XAException
この XAResource
インスタンスの現在のトランザクションタイムアウト値を設定します。このタイムアウト値は、一度設定されると、別の値を使用して setTransactionTimeout
が再度呼び出されるまで有効です。タイムアウト値をリソースマネージャで使用されるデフォルト値にリセットするには、値をゼロに設定します。タイムアウト操作が正常に実行されると、このメソッドは true を返し、そうでない場合は false を返します。リソースマネージャがトランザクションタイムアウト値の設定を明示的にサポートしない場合、このメソッドは false を返します。
seconds
- 秒単位のトランザクションタイムアウト値
XAException
- エラーが発生したことを示す。可能性のある例外値は XAER_RMERR、XAER_RMFAIL、または XAER_INVALpublic 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
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.