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 リソース・マネージャは外部で作業を実行しています。