11.17 Timeout Errors
The Oracle Tuxedo system supports timeout errors to establish a limit on the amount of time that the application waits for a service request or transaction. The Oracle Tuxedo system supports two types of configurable timeout mechanisms: blocking and transaction.
A blocking timeout specifies the maximum amount of time that an application waits for a reply to a service request. The application administrator defines the blocking timeout for the system in the configuration file.
A transaction timeout defines the duration of a transaction, which may involve several service requests. To define the transaction timeout for an application, pass the timeout
argument to tpbegin()
.
The system may return timeout errors on communication calls for either blocking or transaction timeouts, and on tpcommit()
for transaction timeouts only. In each case, if a process is in transaction mode and the system returns TPETIME
on a failed call, a transaction timeout has occurred.
By default, if a process is not in transaction mode, the system
performs blocking timeouts. When you set the
flags
parameter of a communication call to
TPNOTIME
, the flag setting applies to blocking
timeouts only. If a process is in transaction mode, blocking
timeouts are not performed and the TPNOTIME
flag
setting is not relevant.
If a process is not in transaction mode and a blocking timeout occurs on an asynchronous call, the communication call that blocked fails, but the call descriptor is still valid and may be used on a reissued call. Other communication is not affected.
When a transaction timeout occurs, the call descriptor to an
asynchronous transaction reply (specified without the
TPNOTRAN
flag) becomes stale and may no longer be
referenced.
TPETIME
indicates a blocking timeout on a
communication call if the call was not made in transaction mode or
if the
flags
parameter was not set to
TPNOBLOCK
.
Note:
If you set theTPNOBLOCK
flag, a blocking timeout cannot occur because the call returns immediately if a blocking condition exists.
For additional information on handling timeout errors, refer to Transaction Considerations .
Parent topic: Managing Errors