BEA Logo BEA Tuxedo Release 7.1

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy

 

   Tuxedo Doc Home   |   Programming   |   Topic List   |   Previous   |   Next   |   Contents

   Programming a BEA Tuxedo Application Using C

Time-out Errors

The BEA Tuxedo system supports time-out errors to establish a limit on the amount of time that the application waits for a service request or transaction. The BEA Tuxedo system supports two types of configurable time-out mechanisms: blocking and transaction.

A blocking time-out specifies the maximum amount of time that an application waits for a reply to a service request. The application administrator defines the blocking time-out for the system in the configuration file.

A transaction time-out defines the duration of a transaction, which may involve several service requests. To define the transaction time-out for an application, pass the timeout argument to tpbegin().

The system may return time-out errors on communication calls for either blocking or transaction time-outs, and on tpcommit() for transaction time-outs only. In each case, if a process is in transaction mode and the system returns TPETIME on a failed call, a transaction time-out has occurred.

By default, if a process is not in transaction mode, the system performs blocking time-outs. When you set the flags parameter of a communication call to TPNOTIME, the flag setting applies to blocking time-outs only. If a process is in transaction mode, blocking time-outs are not performed and the TPNOTIME flag setting is not relevant.

If a process is not in transaction mode and a blocking time-out occurs on an asynchronous call, the communication call that blocked fails, but the call descriptor is still valid and may be used on a re-issued call. Other communication is not affected.

When a transaction time-out 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 time-out 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 the TPNOBLOCK flag, a blocking time-out cannot occur because the call returns immediately if a blocking condition exists.

For additional information on handling time-out errors, refer to Transaction Considerations.