XA Return Codes

As with flag definitions, all transaction managers and resource managers must ensure interchangeability by using these return codes, defined in the xa.h header.

ax_() return codes (transaction manager reports to resource manager)

#define Code Description
TM_JOIN 2 Caller is joining existing transaction branch
TM_RESUME 1 Caller is resuming association with suspended transaction branch
TM_OK 0 Normal execution
TMER_TMERR -1 An error occurred in the transaction manager
TMER_INVAL -2 Invalid arguments were given
TMER_PROTO -3 Routine invoked in an improper context

xa_() return codes (resource manager reports to transaction manager)

#define Code Description
XA_RBBASE 100 The inclusive lower bound of the rollback codes
XA_RBROLLBACK XA_RBBASE The rollback was caused by an unspecified reason
XA_RBCOMMFAIL XA_RBBASE+1 The rollback was caused by a communication failure
XA_RBDEADLOCK XA_RBBASE+2 A deadlock was detected
XA_RBINTEGRITY XA_RBBASE+3 A condition that violates the integrity of the resources was detected
XA_RBOTHER XA_RBBASE+4 Tthe resource manager rolled back the transaction branch for a reason not on this list
XA_RBPROTO XA_RBBASE+5 A protocol error occurred in the resource manager
XA_RBTIMEOUT XA_RBBASE+6 A transaction branch took too long
XA_RBTRANSIENT XA_RBBASE+7 May retry the transaction branch
XA_RBEND XA_RBTRANSIENT The inclusive upper bound of the rollback codes
XA_NOMIGRATE 9 Resumption must occur where suspension occurred
XA_HEURHAZ 8 The transaction branch may have been heuristically completed
XA_HEURCOM 7 The transaction branch has been heuristically committed
XA_HEURRB 6 The transaction branch has been heuristically rolled back
XA_HEURMIX 5 The transaction branch has been heuristically committed and rolled back
XA_RETRY 4 Routine returned with no effect and may be reissued
XA_RDONLY 3 The transaction branch was read-only and has been committed
XA_OK 0 Normal execution
XAER_ASYNC -2 Asynchronous operation already outstanding
XAER_RMERR -3 A resource manager error occurred in the transaction branch
XAER_NOTA -4 The XID is not valid
XAER_INVAL -5 Invalid arguments were given
XAER_PROTO -6 Routine invoked in an improper context
XAER_RMFAIL -7 Resource manager unavailable
XAER_DUPID -8 The XID already exists
XAER_OUTSIDE -9 Resource manager doing work outside