tpabort() Fails With tperrno=0 But xa_rollback() Returns XAER_NOTA
(Doc ID 1530058.1)
Last updated on OCTOBER 12, 2022
Applies to:
Oracle Tuxedo - Version 11.1.1.2.0 and laterInformation in this document applies to any platform.
Symptoms
The client linked RM library, it calls just one RM which is linked itself, and the xa library will call in the process. If the client(e.g. proc.6470 below) calls tpabort(),
xa_rollback() will be called internally and if it fails by XAER_NOTA (i.e. -4, xid not valid) tpabort() fails, with -1, but tperrno is zero.
Here is the relevant ULOG section with TMTRACE turned on:
152026.<HOSTNAME>!?proc.xxxx.1.0: 02-18-2013: Tuxedo Version 11.1.1.2.0, 32-bit
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: { tpinit({"", "<usrname>", "<passwd>", "GRP1", 0x0, 8})
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: } tpinit = 1
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: { tpopen()
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:xa: { xa_open(0x2b61c, 0, 0x0)
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:xa: } xa_open = 0
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: } tpopen = 1
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: { tpbegin(30, 0x0)
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:xa: { xa_start(0x2b61c, 0, 0x0)
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:xa: } xa_start = 0
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:at: } tpbegin = 1
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:at: { tpabort(0x0)
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid<GTRID>: TRACE:xa: { xa_end(0x2b61c, 0, 0x20000000)
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:xa: } xa_end = 100
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:xa: { xa_rollback(0x2b61c, 0, 0x0)
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:xa: } xa_rollback = -4
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: } tpabort = -1
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: { tpterm()
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: } tpterm = 1
152026.<HOSTNAME>!?proc.xxxx.1.-2: TRACE:at: { tpterm()
152026.<HOSTNAME>!?proc.xxxx.1.-2: TRACE:at: } tpterm = 1
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: { tpinit({"", "<usrname>", "<passwd>", "GRP1", 0x0, 8})
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: } tpinit = 1
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: { tpopen()
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:xa: { xa_open(0x2b61c, 0, 0x0)
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:xa: } xa_open = 0
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: } tpopen = 1
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: { tpbegin(30, 0x0)
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:xa: { xa_start(0x2b61c, 0, 0x0)
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:xa: } xa_start = 0
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:at: } tpbegin = 1
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:at: { tpabort(0x0)
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid<GTRID>: TRACE:xa: { xa_end(0x2b61c, 0, 0x20000000)
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:xa: } xa_end = 100
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:xa: { xa_rollback(0x2b61c, 0, 0x0)
152026.<HOSTNAME>!?proc.xxxx.1.0: gtrid <GTRID>: TRACE:xa: } xa_rollback = -4
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: } tpabort = -1
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: { tpterm()
152026.<HOSTNAME>!?proc.xxxx.1.0: TRACE:at: } tpterm = 1
152026.<HOSTNAME>!?proc.xxxx.1.-2: TRACE:at: { tpterm()
152026.<HOSTNAME>!?proc.xxxx.1.-2: TRACE:at: } tpterm = 1
Changes
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Changes |
Cause |
Solution |
References |