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
- 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.
- An initiating client, such as a terminal or an IMS Connect or OTMA client, starts an IMS application.
- 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.
- 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.
- The IMS TM
resource adapter receives
the callout request message and returns the callout request to the
bean. The bean processes the callout request.
- 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.