A synchronous callout message is placed on the tpipe hold
queue and waits to be pulled by an external application or service,
and the tpipe remains in a wait state until the response message from
the external application returns before the next callout message can
be delivered.
A typical message flow is as follows:
Figure 1. Synchronous
callout message flow
- A Java™ EE application in WebSphere® Application
Server starts and WebSphere Application
Server connects to IMS™ Connect through the IMS TM
resource adapter. 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 IMS DL/I ICAL call and specifies the OTMA destination descriptor
that contains the destination tpipe name where the callout request
message is to be queued. When the request is placed on the tpipe hold
queue, a correlation token is attached with the request.
- If a callout request is not available at the time of the request,
the IMS TM
resource adapter is
blocked and the Java application
will wait for the next available callout message. In the case of an
EJB application where the application itself handles the polling of
IMS Connect for the callout messages, the IMS TM
resource adapter waits
until timeout occurs. As soon as 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 sends the callout request to the Java application. The application
processes the callout request.
- The Java application sends
the response, with the correlation token attached, to the IMS TM
resource adapter.
- The IMS TM
resource adapter forwards
the response to IMS Connect.
- Based on the correlation token, the response is correlated back
to the initiating request from IMS.