What Relation Is There, In Tuxedo, Between A Global Transaction Timeout And A Service Timeout ?
(Doc ID 1401604.1)
Last updated on SEPTEMBER 15, 2023
Applies to:
Oracle Tuxedo - Version 10.3.0 and laterInformation in this document applies to any platform.
Goal
Can a relationship between a global transaction timeout and a service timeout be established ?
(1) About global transaction timeout
The transaction timeout specifies the amount of time, in seconds, that is allowed for processing of the ongoing transaction. A global transaction usually spreads out over several service calls, services handled by different servers. Its timeout is the first argument passed to tpbegin()
From the documentation :
"tpbegin()'s first argument, timeout, specifies that the transaction should be allowed at least timeout seconds before timing out. Once a transaction times out it must be marked abort-only. If timeout is 0, then the transaction is given the maximum number of seconds allowed by the system before timing out (that is, the timeout value equals the maximum value for an unsigned long as defined by the system)."
http://docs.oracle.com/cd/E26665_01/tuxedo/docs11gr1/rf3c/rf3c.html#wp2305391
http://docs.oracle.com/cd/E26665_01/tuxedo/docs11gr1/rf3c/rf3c.html#wp2305391
There are special cases where tpbegin() is not explicitly coded by a developer but would be directly issued by Tuxedo :
- TRANTIME settled in *SERVICES section of the Tuxedo configuration file defines a global transaction if AUTOTRAN=Y and no transaction is already started when calling the service.
- "-t trantime" option within TMQFORWARD's CLOPT string inside the *SERVERS section specifies global transaction timeout for transactions that dequeue messages and forward them to application servers
(2) About service timeout
From the documentation :
"SVCTIMEOUT = number
Specifies the amount of time, in seconds, that is allowed for processing of the indicated service. The value must be greater than or equal to 0. A value of 0 indicates that the service will not be timed out. A timed-out service will cause the server processing the service request to be terminated with a SIGKILL signal. Note that this signal affects all threads in the server. The default for this parameter is 0. "
http://docs.oracle.com/cd/E26665_01/tuxedo/docs11gr1/rf5/rf5.html#wp1897733
Specifies the amount of time, in seconds, that is allowed for processing of the indicated service. The value must be greater than or equal to 0. A value of 0 indicates that the service will not be timed out. A timed-out service will cause the server processing the service request to be terminated with a SIGKILL signal. Note that this signal affects all threads in the server. The default for this parameter is 0. "
http://docs.oracle.com/cd/E26665_01/tuxedo/docs11gr1/rf5/rf5.html#wp1897733
The service timeout must be explicitly defined in *SERVICES section of Tuxedo configuration file to be taken into consideration. Otherwise it's default value is 0 and that is an infinite time-out.
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 |