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 11.1.1.2.0 and later
Information 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

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


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