Synchronous callout requests

Synchronous callout requests are processed in real time and travel from the IMS application program running in an IMS dependent region, out to the external data or service provider, and back to the IMS application program while the IMS application program remains scheduled in the IMS dependent region.

Configuring your environment for synchronous callout can be simpler than configuring your environment for asynchronous callout, because IMS manages the correlation of the callout response to the IMS application that made the request.

Restrictions:
  • OTMA does not support synchronous callout requests in shared-queues environments that are configured with front- and back-end IMS systems.
  • The OTMA Input/Output Edit user exit (OTMAIOED) is not supported for either synchronous callout request messages received by OTMA from IMS application programs that issue the DL/I ICAL call or synchronous callout response messages.

OTMA processes synchronous callout request messages as nonrecoverable commit-then-send (CM0) output messages. However, IMS processes synchronous program switch requests in send-then-commit mode (CM1). Synchronous program switch requests are not routed to external clients such as IMS Connect, and you do not have to enable OTMA to use them.

Start of changeTo increase the throughput of outgoing callout messages, consider enabling OTMA support for multiple active RESUME TPIPE requests, which enables a single OTMA tpipe to send output to multiple clients in parallel. Support for multiple active RESUME TPIPE requests can be enabled by either an OTMA client descriptor or in the IMS Connect system or data store definition.End of change

The following high-level steps provide an overview of configuring a synchronous callout environment when IMS Connect is used as the OTMA hold-queue capable client:

  1. Code an OTMA destination descriptor to route the callout request to the tpipe of the IMS Connect client that is configured to retrieve the callout requests.
  2. Restart IMS.
  3. If you need to modify an IMS Connect user message exit routine, reassemble and bind the IMS Connect user message exit routine.
  4. If you modified an IMS Connect user message exit routine, restart IMS Connect.
  5. Configure an IMS Connect TCP/IP client to retrieve the callout request, pass the request to the data or service provider, and return the response to IMS Connect. For information about how to configure your IMS Connect TCP/IP client see the appropriate documentation listed below:
  6. Code an IMS application program to initiate callout requests by issuing the DL/I ICAL call and to process the response.

When callout service providers connect to IMS through an OTMA client such as IMS Connect, the synchronous callout responses are sent back to OTMA and IMS using the send-only protocol.

Optionally, a callout service provider can use the send-only with ACK protocol, which requires OTMA to issue an ACK or NAK reply to each response from the callout service provider. The send-only with ACK protocol also requires the callout service provider to issue an additional receive to retrieve the ACK or NAK message.

By default, OTMA includes the data from the response message in each ACK message when the send-only with ACK protocol is used. You can omit the response data from each ACK by specifying X'10' in the Synchronization or Callout Flags field at byte 3 of the state data section of the OTMA message prefix.

IMS provides various sample application programs to test callout support. For more information, see Samples for the callout function.

After you complete the initial setup of the configuration for callout requests, you can use the DL/I test program (DFSDDLT0) to verify and debug ICAL DL/I call independently of your IMS application programs.