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