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.
- Coding the EXPRTIME parameter on the TRANSACT system definition macro when you define the IMS transactions that will be invoked by the OTMA C/I client.
- Including a time out function with your OTMA C/I client.
- By both coding the EXPRTIME parameter and including a time out function in your OTMA C/I client.
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.