My Oracle Support Banner

tpabort() Fails With tperrno=0 But xa_rollback() Returns XAER_NOTA (Doc ID 1530058.1)

Last updated on DECEMBER 11, 2019

Applies to:

Oracle Tuxedo - Version and later
Information in this document applies to any platform.


 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, 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




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

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.