RP/TUX 8.1 - tpbegin() with infinite timeout does not work when TM_DOMAIN_KEEPTRANTIME is set on remote domain which advertised service called
(Doc ID 778265.1)
Last updated on FEBRUARY 12, 2024
Applies to:
Oracle Tuxedo - Version 8.1 and laterInformation in this document applies to any platform.
Information in this document applies to any platform
Goal
DESCRIPTION: If there is tpbegin(0,0) and if TM_DOMAIN_KEEPTRANTIME is set in GWTDOMAIN environment which advertised service called, then the call gets TPETIME error (-13). Find here below client call output: //path/to/directory/dom1> simpcl TOUPPER 1 Y 0 test_y_0 Before calling TOUPPER 1 times, message size 8 transaction started, timeout 0 Can't send request to service TOUPPER - 13 Ulog extract on local domain: TRACE:at: } tpalloc = 0x41ed0 TRACE:at: { tpbegin(0, 0x0) gtrid x0 x487345dd x4: TRACE:at: } tpbegin = 1 gtrid x0 x487345dd x4: TRACE:at: { tpcall('TOUPPER', 0x3ff48, 0, 0xffbef954, 0xffbef94c, 0x0) gtrid x0 x487345dd x4: TRACE:at: } tpcall = -1 [tperrno TPETIME] gtrid x0 x487345dd x4: TRACE:at: { tpfree(0x3ff48) gtrid x0 x487345dd x4: TRACE:at: } tpfree gtrid x0 x487345dd x4: TRACE:at: { tpfree(0x41ed0) gtrid x0 x487345dd x4: TRACE:at: } tpfree On remote domain: gtrid x0 x48734630 x3: TRACE:at: { tpservice({'TOUPPER', 0x10, 0x43d80, 9, 0, -1, {0, -2, -1}}) gtrid x0 x48734630 x3: TRACE:at: { tpreturn(2, 0, 0x43d80, 0, 0x0) LIBTUX_CAT:1397: WARN: tpreturn transaction processing failure TRACE:at: } tpreturn [long jump] [tperrno TPETIME] TRACE:at: } tpservice [tperrno TPETIME] If you set non infinite timeout during call (4th parameter in the client) it works fine. Below is the output: //path/to/directoryx/dom1> simpcl TOUPPER 1 Y 60 test_y_60 Before calling TOUPPER 1 times, message size 8 transaction started, timeout 60 Returned string is: TEST_Y_60 Ulog local domain : TRACE:at: { tpbegin(60, 0x0) gtrid x0 x487345dd x5: TRACE:at: } tpbegin = 1 gtrid x0 x487345dd x5: TRACE:at: { tpcall('TOUPPER', 0x3ff48, 0, 0xffbef94c, 0xffbef944, 0x0) gtrid x0 x487345dd x5: TRACE:at: } tpcall = 0 gtrid x0 x487345dd x5: TRACE:at: { tpcommit(0x0) gtrid x0 x487345dd x5: TRACE:ia: { tpalloc('rpcrqst', '', 0) gtrid x0 x487345dd x5: TRACE:ia: } tpalloc = 0x44818 gtrid x0 x487345dd x5: TRACE:ia: { tpgetrply(0xffbef754, 0xffbef758, 0xffbef750, 0x800002) gtrid x0 x487345dd x5: TRACE:ia: } tpgetrply = 2 gtrid x0 x487345dd x5: TRACE:ia: { tpfree(0x44818) gtrid x0 x487345dd x5: TRACE:ia: } tpfree TRACE:at: } tpcommit = 1 In remote one: gtrid x0 x48734630 x4: TRACE:at: { tpservice({'TOUPPER', 0x10, 0x482e0, 10, 0, -1, {0, -2, -1}}) gtrid x0 x48734630 x4: TRACE:at: { tpreturn(2, 0, 0x482e0, 0, 0x0) TRACE:at: } tpreturn [long jump] TRACE:at: } tpservice IMPACT: Cannot use tpbegin() with infinite timeout when TM_DOMAIN_KEEPTRANTINE is set on remote domain. CONFIGURATION: Tuxedo 8.1 32-bit RP346 on Sun Solaris
Solution
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
Goal |
Solution |
References |