XA_COMMIT 函数用于提交 xid
指定的全局事务。
语法
DBMS_XA.XA_COMMIT (
xid IN DBMS_XA_XID,
onePhase IN BOOLEAN)
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 *
代码之一。 返回后,资源管理器回滚了分支的工作,并释放了所有预留的资源。