XA_COMMIT関数は、xidで指定されたグローバルトランザクションをコミットするために使用されます。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
DBMS_XA.XA_COMMIT (
xid IN DBMS_XA_XID,
onePhase IN BOOLEAN)
RETURN PLS_INTEGER;
パラメータの説明
| パラメータ | 説明 |
|---|---|
| xid | DBMS_XA_XIDオブジェクトタイプを参照してください。 |
| onePhase | 値がTRUEの場合、1フェーズコミットを適用します。 |
戻り値
DBMS_XAの可能な定数返り値を参照してください。
返される可能性のあるエラーコードは、XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL、またはXAERPROTOです。その他の可能な戻り値には、XA_OK、XA_RB *、XA_HEURHAZ、XA_HEURCOM、XA_HEURRB、およびXA_HEURMIXが含まれます。
使用方法
アプリケーションは
COMMITを呼び出すことはできず、xidで指定されたグローバルトランザクションをコミットするには、XA_COMMITを呼び出す必要があります。onePhase値がTRUEの場合、リソースマネージャーは一相コミットプロトコルを使用してxidで指定された完了した作業をコミットします。それ以外の場合、グローバルトランザクションのすべてのブランチが正常に完了し、以前のXA_PREPARE呼び出しがXA_OKを返した場合にのみ、XA_COMMITを呼び出すことができます。アプリケーションは、
XA_PREPAREがXA_OKを返したグローバルトランザクションの各トランザクションブランチについて、個別のXA_COMMIT呼び出しを実行する必要があります。リソースマネージャーがトランザクションをコミットせず、パラメータ
onePhaseがTRUEに設定されている場合、リソースマネージャーはXA_RB *コードのいずれかを返すことができます。返却後、リソースマネージャーはブランチの作業をロールバックし、予約されたすべてのリソースを解放します。