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_COMMIT を呼び出すには、グローバルトランザクションのすべてのブランチが正常に完了し、かつ先行するXA_PREPARE呼び出しがXA_OKを返した場合に限ります。アプリケーションは、
XA_PREPAREがXA_OKを返したグローバルトランザクションの各トランザクションブランチごとに、個別のXA_COMMIT 呼び出しを実行する必要があります。リソースマネージャーがトランザクションをコミットせず、パラメータ
onePhaseがTRUEに設定されている場合、リソースマネージャーはXA_RB *コードのいずれかを返すことができます。返却後、リソースマネージャーはブランチの作業をロールバックし、予約されたすべてのリソースを解放します。