当控制线程完成或需要暂停事务分支上的事务时,事务管理器将调用 XA_END,当应用程序部分或全部完成其工作时(例如,在阻止某个事件以使其他控制线程在分支上工作的操作之前),将调用 。XA_END 成功返回值后,控制调用线程不再与分支有效关联,但分支仍然存在。

请参见

可能返回的错误码是:XAER_RMERR, XAER_RMFAILED, XAER_NOTA, XAER_INVAL, XAER_PROTO 或 XA_RB*。

  • 如果 XA_END 执行成功,则返回 XA_OK。应用程序必须检查返回值并处理错误情况。仅当返回 XA_OK时,应用程序才应继续进行其他正常操作。

  • 在调用 XA_END 前执行 COMMIT 语句将报错 ORA-02089:从属会话中不允许 COMMIT

  • 在 XA_END 之后执行 COMMITROLLBACK 语句对 xid 标识的事务没有影响,因为该事务不再与当前会话相关联。提交事务 ID 或 XA_ROLLBACK 函数来提交/回退 指定的事务。