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.

Figure 1. Commit-then-send, receive asynchronous output (client waits for output) flow
begin figure description. Diagram flow chart of Commit-Then-Send, Receive Asynchronous Output as described in the surrounding text. end figure description.
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.
Figure 2. Commit-then-send, receive asynchronous output (output remains in queue) flow
begin figure description. Diagram flow chart of Commit-Then-Send, Receive Asynchronous Output (output remains in queue) as described in surrounding text. end figure description.
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.