XA_COMMIT 函数用于提交 xid 指定的全局事务。

语法

  1. DBMS_XA.XA_COMMIT (
  2. xid IN DBMS_XA_XID,
  3. onePhase IN BOOLEAN)
  4. RETURN PLS_INTEGER;

参数解释

参数

解释

xid

请参见 DBMS_XA_XID 对象类型

onePhase

如果值为 TRUE,则应用一阶段提交。

返回值

请参见 DBMS_XA 可能的常量返回值

可能返回的错误码是:XAER_RMERR、XAER_RMFAIL、XAER_NOTA、XAER_INVAL 或 XAER_PROTO。 其他可能的返回值包括:XA_OK、XA_RB *、XA_HEURHAZ、XA_HEURCOM、XA_HEURRB 和 XA_HEURMIX。

使用说明

  • 应用程序不得调用 COMMIT,而必须调用 XA_COMMIT 来提交 xid 指定的全局事务。 如果用户需要提交由其他用户创建的事务分支,则必须将 FORCE ANY TRANSACTION 授予该用户。

  • 如果 onePhase 值为 TRUE,则资源管理器应使用一阶段提交协议来代表 xid 提交完成的工作。 否则,只有在成功完成全局事务的所有分支且先前的 XA_PREPARE 调用返回了 XA_OK 的情况下,才能调用 XA_COMMIT。

  • 应用程序必须为 XA_PREPARE 返回了 XA_OK 的全局事务的每个事务分支进行单独的 XA_COMMIT 调用。

  • 如果资源管理器未提交事务,并且参数 onePhase 设置为 TRUE,则资源管理器可以返回 XA_RB * 代码之一。 返回后,资源管理器回滚了分支的工作,并释放了所有预留的资源。