Timing out OTMA C/I sessions after otma_send_receive API calls for CM1 transactions

The OTMA C/I does not include a timeout function for the otma_send_receive API call and does not support the OTMA message-level transaction expiration function; however you can still implement a timeout function.

To implement a time out function for OTMA C/I client sessions use one of the following methods:
Recommendation: Use the EXPRTIME parameter to implement a timeout function for transactions submitted through OTMA C/I instead of including a time out function with your OTMA C/I client. If the OTMA C/I client implements the time out function, although it is unlikely, a z/OS® X'0C4' abend can occur if the OTMA C/I client releases the session storage after OTMA has received a response from IMS, but before OTMA posts the wait ECB.

If your OTMA C/I client includes a time out function, you can reduce the possibility of a z/OS X'0C4 abend by:

  • When coding the OTMA C/I client time out function, include a delay in processing after the OTMA C/I client issues the otma_free call and before it frees the session storage.
  • Specify a shorter time out value on the EXPRTIME parameter of the TRANSACT system definition macro for IMS transactions invoked by the OTMA C/I client.