Execution timeouts

The value for the execution timeout is the maximum amount of time that is allowed for IMS™ Connect to send a message to IMS and receive a response to that message back from IMS.

The execution timeout setting is used an IMS TM resource adapter client application to instruct IMS Connect to override its current TIMEOUT value.

If an interaction does not complete before execution timeout occurs, IMS Connect returns an error message to the IMS TM resource adapter. The IMS TM resource adapter then returns an exception to the client application, indicating that the duration of time for IMS to respond to IMS Connect has exceeded the timeout value. The error message also specifies the timeout value that was used by IMS Connect.

Tip: Because connections between the IMS TM resource adapter and IMS Connect are persistent, if a connection is in a known state after an execution timeout occurs, the socket is not closed. Instead, the socket remains open and is made available for reuse.

Transaction expiration

You can take advantage of the OTMA transaction expiration enhancement to explicitly instruct IMS Connect to indicate to OTMA to discard or dequeue a transaction when the execution timeout value is reached.

By default, the transExpiration property is set to false for backward compatibility, and OTMA continues to process the transaction even after the execution times out. To take advantage of the OTMA transaction expiration function to save unnecessary processing costs and CPU cycles for transactions that are no longer needed, set the transExpiration property to true.

Conversational transactions

For conversational transactions, the execution timeout value applies to each iteration of a conversation. An iteration consists of one input message that is sent to IMS and one output message that is received from IMS. If an iteration of the conversation times out due to an execution timeout, the conversation ends and any database updates that have taken place in that conversation are backed out.

Exceptions

If you specify an invalid execution timeout value, the TIMEOUT value that is specified in the IMS Connect configuration member is used and a javax.resource.NotSupportedException is thrown.