Examples flows for the RESUME TPIPE protocol
The following figures show examples of the RESUME TPIPE protocol to receive asynchronous commit-then-send (CM0) output.
In the following figure, the CM0 flow enqueues IMS output before sending it to the client with the client application sending a positive acknowledgment (ACK) for both outputs. The ACK removes the output from the IMS queue.
The sample flow in the previous figure assumes the following:
- The client sends the OTMA call RESUME TPIPE to ask IMS OTMA to post the named Tpipe (the client name).
- The client issues a RECEIVE request to receive the output from IMS.
- The client sends ACK to IMS (required for commit-then-send).
- The client receives the next output from IMS.
- The client sends ACK to IMS.
- The client waits for the next output from IMS, or for Time out notification.
In the following figure, the commit-then-send flow enqueues IMS output before sending it to the client and the client application sends a positive acknowledgment (ACK) for the first output (removing the output from the IMS queue) and a NAK to the second output (which results in the output remaining in the queue).
Requirement: Use this protocol with the timeout
function. Otherwise, the client hangs if there are no more messages
to send.
The sample flow in the previous figure assumes the following:
- The client sends the OTMA call
RESUME TPIPE
to ask IMS OTMA to post the named Tpipe (the client name). - The client receives the output from IMS.
- The client sends ACK to IMS (required for commit-then-send).
- The client receives the next output from IMS.
- The client sends NAK to IMS.
- The message stays in the queue.