Setting up the CICS-WebSphere MQ bridge

Complete these tasks to make the CICS-WebSphere MQ bridge available for a CICS® region.

Before you begin

To use the CICS-WebSphere MQ bridge, both WebSphere® MQ and CICS must be running in the same z/OS® image.

Procedure

  1. In CICS, set up the CICS-WebSphere MQ adapter, following the instructions in Setting up the CICS-WebSphere MQ adapter.
  2. In CICS, make the following modifications to the resource definitions for the CICS-WebSphere MQ bridge components:
    1. Make sure that CICS temporary storage IDs with the prefix CKB are defined as not recoverable.
      The CICS-WebSphere MQ bridge uses these temporary storage IDs.
    2. If you want to run 24-bit CICS DPL programs using the CICS-WebSphere MQ bridge, change the TASKDATALOC attribute for the definition of transaction CKBP, or CKBC, or both, to BELOW.
      CICS DPL programs run under the transaction code CKBP by default. If you run 24-bit programs without changing the TASKDATALOC attribute, a CICS abend AEZC might be issued.
    3. If you want to run your CICS DPL programs under different transaction codes, install copies of the definition of CKBP, or CKBC, or both, and change the transaction names to the ones of your choice.
      Remember to change the TASKDATALOC attribute to BELOW if you are going to run 24-bit programs. You must specify the alternative transaction code in the MQCIH header in your WebSphere MQ request messages.
      For a full list of the CICS-WebSphere MQ bridge components, which are installed in group DFHMQ, see Definitions for the CICS-WebSphere MQ bridge transactions and programs in CICS.
  3. If you want to use the ROUTEMEM bridge start parameter, which determines whether mark expired messages are routed to the DLQ, install one of two optional TSMODEL resource definitions in CICS, depending on whether you are using shared or nonshared bridge queues.
    The definitions are as follows:
    1. Nonshared bridge queues
      DEFINE TSMODEL(DFHMQMDL) GROUP(DFHMQ)
      DESCRIPTION(CICS owned MQ-CICS bridge for RouteMEM non-shared)
           PREFIX(CKBR) LOCATION(AUXILIARY) RECOVERY(NO) SECURITY(NO)
    2. Shared bridge queues
      DEFINE TSMODEL(DFHMQMDL) GROUP(DFHMQ)
      DESCRIPTION(CICS owned MQ-CICS bridge - for RouteMEM shared)
           PREFIX(CKBR) LOCATION(AUXILIARY) RECOVERY(NO)
           SECURITY(NO) POOLNAME(MQPOOL)
    For more information about the ROUTEMEM bridge start parameter, see Administering the CICS-WebSphere MQ bridge.
  4. In WebSphere MQ, define a local queue for the request messages.
    The WebSphere MQ request queue must be local to the CICS-WebSphere MQ bridge, and it must not be used by any other application.
    You can use the sample thlqual.SCSQPROC(CSQ4CKBM) to define the default queue named SYSTEM.CICS.BRIDGE.QUEUE, or you can define your own.
    If you define your own local queue, you must specify its name whenever you start the bridge monitor transaction CKBR.
    Set the following attributes if you define your own local queue:
    1. Set the SHARE attribute so that both the bridge monitor and the bridge tasks can read the queue.
    2. If recovery is required, set the attribute DEFPSIST(YES)
      DEFPSIST(YES) sets messages as persistent on the queue by default.
    3. If you want to process messages in FIFO sequence, set the MSGDLVSQ(FIFO) attribute.
      Otherwise, messages are processed in priority sequence.
    4. If the request queue is defined with QSGDISP(SHARED), also define it with INDXTYPE(CORRELID).
      This setting is also recommended for nonshared queues.
    5. If you want to start the bridge monitor by triggering, set the attributes TRIGGER TRIGTYPE(FIRST)PROCESSprocid, where procid is a process specifying APPLICID(CKBR).
    6. Consider specifying BOQNAME and BOTHRESH for the request queue, so that messages are put to the backout queue specified by the BOQNAME attribute when a message has been processed and backed out the number of times specified by the BOTHRESH attribute, rather than being placed on the dead-letter queue.
      If you specify a backout queue, put a process in place to process messages on this queue.
    7. If you are using a container, consider using the MaxMsgLen attribute of the queue to limit the size of bridge input messages. The maximum message length that a queue can accommodate is defined by its MaxMsgLen attribute.
  5. In WebSphere MQ, define one or more queues to hold the responses.
    The response queues can be local or remote.
    If a response queue is remote, you must define a transmission queue to hold the responses before they are forwarded to the response queue.
  6. In WebSphere MQ, ensure that a dead-letter queue is defined and a procedure is defined for processing messages on this queue.
  7. If the bridge is to be accessed remotely from WebSphere MQ, create channel and transmission queue definitions and a remote queue definition for the request queue.
    For more information about using remote queues, see WebSphere MQ Intercommunications.