XA の戻りコード

フラグ定義と同様に、すべてのトランザクション マネージャーおよびリソース マネージャーは、これらの戻りコード (xa.h ヘッダーで定義される) を使用して互換性を保証する必要があります。

ax_() 戻りコード (トランザクション マネージャーがリソース マネージャーにレポートする)

#define コード 説明
TM_JOIN 2 呼び出し元は既存のトランザクション ブランチを結合しています。
TM_RESUME 1 呼び出し元は中断したトランザクション ブランチとの関連付けを再開しています。
TM_OK 0 正常実行。
TMER_TMERR -1 トランザクション マネージャーでエラーが発生しました。
TMER_INVAL -2 無効な引数が指定されました。
TMER_PROTO -3 不適切なコンテキストでルーチンが呼び出されました。

xa_() 戻りコード (リソース マネージャーがトランザクション マネージャーにレポートする)

#define コード 説明
XA_RBBASE 100 ロールバック コードの下限 (下限値を含む)。
XA_RBROLLBACK XA_RBBASE 詳細不明の理由によってロールバックが行われました。
XA_RBCOMMFAIL XA_RBBASE+1 通信障害によってロールバックが行われました。
XA_RBDEADLOCK XA_RBBASE+2 デッドロックが検出されました。
XA_RBINTEGRITY XA_RBBASE+3 リソースの整合性に違反する状態が検出されました。
XA_RBOTHER XA_RBBASE+4 リストにない理由によって、リソース マネージャーがトランザクション ブランチをロールバックしました。
XA_RBPROTO XA_RBBASE+5 リソース マネージャーでプロトコル エラーが発生しました。
XA_RBTIMEOUT XA_RBBASE+6 トランザクション ブランチに時間がかかりすぎました。
XA_RBTRANSIENT XA_RBBASE+7 トランザクション ブランチを再試行する場合があります。
XA_RBEND XA_RBTRANSIENT ロールバック コードの上限 (上限値を含む)。
XA_NOMIGRATE 9 一時停止が発生した場合は、再開が行われる必要があります。
XA_HEURHAZ 8 トランザクション ブランチがヒューリスティックに完了した可能性があります。
XA_HEURCOM 7 トランザクション ブランチがヒューリスティックにコミットされました。
XA_HEURRB 6 トランザクション ブランチがヒューリスティックにロールバックされました。
XA_HEURMIX 5 トランザクション ブランチがヒューリスティックにコミットされ、ロールバックされました。
XA_RETRY 4 ルーチンが効果なしに復帰したため、再発行される可能性があります。
XA_RDONLY 3 トランザクション ブランチは読み取り専用であり、コミットされています。
XA_OK 0 正常実行。
XAER_ASYNC -2 すでに未処理となった非同期操作です。
XAER_RMERR -3 トランザクション ブランチでリソース マネージャー エラーが発生しました。
XAER_NOTA -4 XID が無効です。
XAER_INVAL -5 無効な引数が指定されました。
XAER_PROTO -6 不適切なコンテキストでルーチンが呼び出されました。
XAER_RMFAIL -7 リソース マネージャーは使用不可です。
XAER_DUPID -8 XID はすでに存在します。
XAER_OUTSIDE -9 リソース マネージャーは外部で作業を実行しています。