JavaTM 2 Platform
Standard Ed. 5.0

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 段階のコミットプロトコルに従って、トランザクションを準備、コミット、またはロールバックするようトランザクションマネージャから通知されます。


フィールドの概要
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 - エラーが発生したことを示す。取りうる XAException 値は 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

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。