Asynchronous output programming model
Use this programming model to retrieve output that has been queued by IMS™.
Your application might need to retrieve output that was queued at some earlier time. Such output is called asynchronous output. Asynchronous output can result from several situations: undelivered output from commit mode 0 interactions, output from program-to-program switches, output from ISRT calls to an alternate PCB, and output from an IMS application that returns multiple output messages.
To retrieve asynchronous output, a Java™ application executes a SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT or SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT interaction. Your application must provide the value for the interactionVerb property and a value of 0 for the commitMode property of the IMSInteractionSpec object that is used by the execute method of the interaction.
- SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT
- SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
- For SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT interactions, if no
asynchronous output is in the IMS OTMA asynchronous hold queue
when the retrieve request is made, IMS Connect
returns an execution timeout notification as soon as the execution
timeout value that is specified by the client application has passed. Recommendation: Specify the minimum execution timeout value of 10 for SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT interactions.
- For SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT interactions, when the
execution timeout value has passed, if no asynchronous output is in
the hold queue, IMS Connect returns an execution timeout error.
Otherwise, IMS Connect returns the first output message
when it is placed in the queue.Recommendation: For SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT interactions, select an appropriate execution timeout value, rather than the minimum value.
The asynchronous output programming model requires commit mode 0 and can be used on both shareable persistent socket and dedicated persistent socket connections. In addition, the IMSInteractionSpec properties purgeAsycOutput, reRoute, and reRouteName do not apply and are ignored when the interactionVerb property is set to either of these values. The interactionVerb property is invoked differently on dedicated and shareable persistent socket connections.