DBMS_XA 系统包定义了可用于指定参数值的常量。
XA_START 函数和 XA_END 函数的 flag 字段中使用的常量
下表列出了 XA_START 函数和 XA_END 函数的 flag 字段中使用的常量。
名称 | 类型 | 取值 | 描述 |
---|---|---|---|
TMNOFLAGS | PLS_INTEGER | 00000000 | 表示未选择标志值。 |
TMSUCCESS | PLS_INTEGER | UTL_RAW.CAST_TO_BINARY_INTEGER (‘04000000’) | 分离调用者与事务分支。 |
TMJOIN | PLS_INTEGER | UTL_RAW.CAST_TO_BINARY_INTEGER (‘00200000’) | 调用者正加入当前的事务分支。 |
TMSUSPEND | PLS_INTEGER | UTL_RAW.CAST_TO_BINARY_INTEGER (‘02000000’) | 调用者挂起,并没有结束关联。 |
TMRESUME | PLS_INTEGER | UTL_RAW.CAST_TO_BINARY_INTEGER (‘08000000’) | 调用者正在与暂停的事务分支恢复关联。 |
DBMS_XA 可能的常量返回值
下表列出了 DBMS_XA 可能的常量返回值。
名称 | 类型 | 取值 | 描述 |
---|---|---|---|
XA_RBBASE | PLS_INTEGER | 100 | 回滚代码的下限范围 |
XA_RBROLLBACK | PLS_INTEGER | XA_RBBASE | 由未知原因引起的回滚 |
XA_RBCOMMFAIL | PLS_INTEGER | XA_RBBASE+1 | 由通信故障引起的回滚 |
XA_RBDEADLOCK | PLS_INTEGER | XA_RBBASE+2 | 检测到死锁 |
XA_RBINTEGRITY | PLS_INTEGER | XA_RBBASE+3 | 检测到违反资源完整性的状况 |
XA_RBOTHER | PLS_INTEGER | XA_RBBASE+4 | 资源管理器 RM 回滚事务的原因未列出 |
XA_RBPROTO | PLS_INTEGER | XA_RBBASE+5 | 资源管理器 RM 出现协议错误 |
XA_RBTIMEOUT | PLS_INTEGER | XA_RBBASE+6 | 事务分支花费时间很长 |
XA_RBTRANSIENT | PLS_INTEGER | XA_RBBASE+7 | 可以重试事务分支 |
XA_RBEND | PLS_INTEGER | XA_RBTRANSIENT | 回滚代码的上限(包括上限) |
XA_NOMIGRATE | PLS_INTEGER | 9 | 事务分支可能已经完成 |
XA_HEURHAZ | PLS_INTEGER | 8 | 事务分支可能已经完成 |
XA_HEURCOM | PLS_INTEGER | 7 | 事务分支可能已经提交 |
XA_HEURRB | PLS_INTEGER | 6 | 事务分支可能已经回滚 |
XA_HEURMIX | PLS_INTEGER | 5 | 一些事务分支可能已经提交,另一些可能已经回滚 |
XA_RETRY | PLS_INTEGER | 4 | 例行返回无效,可能会补发 |
XA_RDONLY | PLS_INTEGER | 3 | 事务是只读的并且已经提交 |
XA_OK | PLS_INTEGER | 0 | 正常执行 |
XAER_ASYNC | PLS_INTEGER | -2 | 异步操作未解决 |
XAER_RMERR | PLS_INTEGER | -3 | 事务分支中资源管理器报错 |
XAER_NOTA | PLS_INTEGER | -4 | XID 无效 |
XAER_INVAL | PLS_INTEGER | -5 | 给出的参数无效 |
XAER_PROTO | PLS_INTEGER | -6 | 常规调用前后关系不当 |
XAER_RMFAIL | PLS_INTEGER | -7 | 资源管理器不可用 |
XAER_DUPID | PLS_INTEGER | -8 | XID 已存在 |
XAER_OUTSIDE | PLS_INTEGER | -9 | 资源管理器执行全局事务以外的工作 |