The IBM MQ transport

CICS® can receive and send SOAP messages to IBM® MQ using the IBM MQ transport, both in the role of service provider and service requester.

As a service provider, CICS uses IBM MQ triggering to process SOAP messages from an application queue. Triggering works by using an initiation queue and local queues. A local (application) queue definition includes the following information:
  • The criteria for when a trigger message is generated. For example, when the first message arrives on the local queue, or for every message that arrives on the local queue. For CICS SOAP processing, specify that triggering occurs when the first message arrives on the local queue.

    The local queue definition can also specify that trigger data is passed to the target application, and in the case of CICS SOAP processing (transaction CPIL), this specifies the default target URL to be used if this is not passed with the inbound message.

  • The process name that identifies the process definition. The process definition describes how the message is processed. In the case of CICS SOAP processing, specify the CPIL transaction.
  • The name of the initiation queue that the trigger message should be sent to.
When a message arrives on the local queue, the Queue Manager generates and sends a trigger message to the specified initiation queue. The trigger message includes the information from the process definition. The trigger monitor retrieves the trigger message from the initiation queue and schedules the CPIL transaction to start processing the messages on the local queue. For more information about triggering, see Task initiator or trigger monitor (CKTI).

You can configure CICS, so that when a message arrives on a local queue, the trigger monitor (provided by IBM MQ) schedules the CPIL transaction to process the messages on the local queue and drive the CICS SOAP pipeline to process the SOAP messages on the queue.

When CICS constructs a response to a SOAP message that is received from IBM MQ, the correlation ID field is populated with the message ID of the input message, unless the report option MQRO_PASS_CORREL_ID has been set. If this report option has been set, the correlation ID is propagated from the input message to the response.

As a service requester, on outbound requests you can specify that the responses for the target web service is returned on a particular reply queue.

In both cases, CICS and IBM MQ require configuration to define the required resources and queues.