Specifying acknowledgment timeout intervals for OTMA messages

You can specify an ACK timeout interval that determines how long OTMA waits for an ACK or NAK acknowledgment for OTMA output messages.

ACK timeout intervals can be specified for the following types of OTMA output messages:
  • Transaction messages that are sent to a remote IMS system for processing
  • Some send-then-commit (CM1) response messages
  • Commit-then-send (CM0) response messages

For transaction messages that are sent to a remote IMS system, if the ACK timeout interval expires, OTMA reroutes the transaction message to the timeout queue. If OTMA receives an ACK response from the local IMS Connect after a transaction message has timed out, OTMA issues a NAK with X'2B' sense code to the local IMS Connect. IMS connect discards the NAK message.

For a send-then-commit transaction that uses either synclevel=confirm or synclevel=syncpt, if OTMA does not receive the expected ACK or NAK response from the OTMA client before the timeout interval expires, OTMA aborts the transaction and IMS backs out the transaction, issues an OTMA CM1 deallocation message to the OTMA client, and issues message DFS0809E to the z/OS® system console.

For a commit-then-send transaction, the action OTMA takes if an expected ACK or NAK response is not received before the timeout interval expires depends on whether the client is a hold-queue capable client, such as IMS Connect, or a non-hold-queue capable client, such as IBM® MQ. For hold-queue capable clients, the action OTMA takes also depends on whether the output is the I/O PCB queue or the hold queue of a tpipe.

For a hold-queue capable client, if the output for a commit-then-send transaction is on the I/O PCB queue and the timeout interval expires, OTMA takes the following action:

  1. OTMA attempts to deliver the CM0 output to a reroute tpipe.
  2. If no reroute tpipe has been specified, OTMA attempts to deliver the output to a timeout queue.
  3. If no timeout queue has been specified, OTMA delivers the CM0 output to the default timeout queue DFS$$TOQ.
  4. Issues DFS3494E to the z/OS system console.

For a hold-queue capable client, if the output for a commit-then-send transaction is on the tpipe hold queue and the timeout interval expires, OTMA takes the following action:

  1. OTMA attempts to deliver the output to a timeout queue.
  2. If no timeout queue has been specified, OTMA delivers the CM0 output to the default timeout queue DFS$$TOQ.
  3. Issues DFS3494E to the z/OS system console.

For non-hold-queue capable clients, OTMA takes the same action as for hold-queue capable clients when the CM0 output is on the I/O PCB queue.

For a synchronous callout requests from IMS application programs that issue the DL/I ICAL call, OTMA processes the request as a CM0 output message. OTMA sets the CM0 flag in the state data prefix and waits for an acknowledgment of receipt of the synchronous callout message. If an acknowledgment is not returned within the ACK timeout interval, OTMA takes the following action:
  1. Issues return code X'100' and reason code of X'104' to the IMS application program.
  2. Discards the synchronous callout request message. The message is not rerouted.
  3. Issues DFS3494E to the z/OS system console.

You can specify a timeout interval for an OTMA client in the OTMA client descriptor. You can override the timeout interval in an OTMA client descriptor by specifying a different interval in the TIMEOUT parameter of the /START TMEMBER command. You can also override the timeout interval in the OTMA client descriptor by specifying a smaller timeout interval in the OTMA client's client bid request.

For individual transactions, you can only specify a timeout interval that is shorter than the timeout interval specified for the OTMA client.

If you do not specify a send-then-commit timeout value, OTMA uses a default value of 120 seconds.

To view the current timeout interval set for an OTMA client, issue the /DISPLAY TMEMBER command.