Asynchronous callout message flow

An asynchronous callout message is placed in the hold queue and awaits to be pulled by an external application or service. If response data is expected, the external application issues a normal IMS™ transaction to the appropriate IMS application with the output data.

The following figure shows the typical asynchronous callout message flow:
Figure 1. Asynchronous callout message flow
This diagram shows the message flow for the asynchronous callout function.
  1. A Java™ application in WebSphere® Application Server starts and obtains a sharable persistent connection to IMS Connect through the IMS TM resource adapter. The application issues a SYNC_RECEIVE_CALLOUT interaction, specifies the tpipe name as the value for the alternate client ID, and sets a timeout value. The IMS TM resource adapter, in turn, issues a RESUME TPIPE request to the tpipe and waits for the callout request from IMS Connect.
  2. An initiating client, such as a terminal or an IMS Connect or OTMA client, starts an IMS application.
  3. The IMS application issues an ISRT ALTPCB call to an OTMA destination descriptor, which contains the destination tpipe name. The callout request message is queued in this tpipe.
  4. If a callout request is not available at the time of the SYNC_RECEIVE_CALLOUT request, the IMS TM resource adapter is blocked, and the bean waits for the next available callout message or until timeout occurs. When the callout request is available in the tpipe, IMS Connect delivers the callout message to the IMS TM resource adapter.
  5. The IMS TM resource adapter receives the callout request message and returns the callout request to the bean. The bean processes the callout request.
  6. If the bean receives response data to be returned to IMS, the bean issues a normal IMS transaction request to the appropriate IMS application with the output data.