Subscribe
THE DAILY DIGEST

The daily edition.

Essential reading from Rocket Enterprise. Straight to the source.

Archived edition
DAILY EDITION1 story· 5 min read

IBM WebSphere MQ Support, CICS-MQ Bridge (CKQC/CKTI) & MQ-IMS Bridge

In enterprise mainframe architectures, asynchronous and decoupled messaging across systems and business units is predominantly powered by IBM MQ (formerly WebSphere MQ). Core applications depend heavily on two primary patterns:

IN FOCUS

IBM WebSphere MQ Support, CICS-MQ Bridge (CKQC/CKTI) & MQ-IMS Bridge

In enterprise mainframe architectures, asynchronous and decoupled messaging across systems and business units is predominantly powered by IBM MQ (formerly WebSphere MQ). Core applications depend heavily on two primary patterns: [1]

Read the full briefing

1. Capability Overview & Problem It Solves

In enterprise mainframe architectures, asynchronous and decoupled messaging across systems and business units is predominantly powered by IBM MQ (formerly WebSphere MQ). Core applications depend heavily on two primary patterns:

  1. CICS-MQ Integration: Online CICS programs send and receive messages using standard MQOPEN, MQGET, MQPUT, and MQCLOSE calls, while background trigger monitor transactions (CKTI) automatically launch CICS transactions when messages arrive on an application queue.
  2. MQ-IMS Bridge: Distributed systems (such as Java, .NET, or cloud microservices) post messages containing an IMS header (MQIIH) to an MQ queue, and the bridge transports them directly into the IMS message queue for processing by Message Processing Programs (MPPs), routing responses back to an MQ reply queue.

When modernizing or rehosting these workloads onto distributed Linux/UNIX or Windows platforms, losing native MQ adapter and bridge semantics would require re-architecting message patterns, building custom socket bridges, or extensively modifying COBOL business logic.

Rocket Enterprise Server provides comprehensive, native IBM WebSphere MQ Support, including the CICS-MQ Adapter and Trigger Monitor (CKQC/CKTI), the MQ-IMS Bridge, and IMS Trigger Monitoring (WebSphere MQ Support - Rocket Software Documentation, CKQC - Start a CKTI monitor - Rocket Software Documentation, MQ-IMS Bridge - Rocket Software Documentation).

2. Architecture & How It Works

  • CICS-MQ Adapter & The CKTI Trigger Monitor:
    • The Adapter Layer: Intercepts standard COBOL CALL 'MQ...' invocations within CICS Service Execution Processes (SEPs) and communicates with local queue managers or remote queue managers via MQ client connections (WebSphere MQ Environment Variables).
    • Trigger Monitoring with CKTI: CKTI runs as a long-lived CICS transaction that listens to an initiation queue (e.g., SYSTEM.CICS.INITIATION.QUEUE). When an application queue depth triggers an event, CKTI retrieves the trigger message containing the target CICS transaction identifier, initiates the transaction via EXEC CICS START, and passes the message context.
    • Management via CKQC: The supplied CKQC transaction provides operational and administrative control over the adapter, enabling administrators to start, stop, monitor, or display CKTI trigger monitors interactively or programmatically (CKQC - Start a CKTI monitor - Rocket Software Documentation).
  • MQ-IMS Bridge Architecture:
    • The MQ-IMS Bridge allows external non-IMS client applications to execute IMS transactions asynchronously via standard MQ queues without establishing direct TCP/IP OTMA socket connections (MQ-IMS Bridge - Rocket Software Documentation).
    • Inbound MQ messages include an IMS Information Header (MQIIH). The bridge dequeues the message, validates the header, and places the transaction into the Enterprise Server IMS Message Queue.
    • When the IMS MPP transaction completes and issues an ISRT to the alternate I/O PCB, the bridge intercepts the response, wraps it in an updated MQIIH, and routes it directly to the designated ReplyToQ.
  • IMS Trigger Monitoring: Beyond the bridge, Enterprise Server supports IMS Trigger Monitoring (ioj1742951312125_1.html). An IMS trigger monitor transaction monitors an initiation queue and issues commands to schedule the associated IMS transaction into an active Message Processing Region (MPR).
  • XA Two-Phase Commit (2PC) Coordination: When COBOL applications update relational databases (Db2, Oracle, PostgreSQL, SQL Server) and read/write MQ messages within the same logical unit of work, IBM MQ acts as an enlisted XA Resource Manager (XAR). Enterprise Server coordinates two-phase commit syncpoints across both the relational database and the MQ queue manager, guaranteeing atomic delivery without stranded messages or orphan database rows.

3. Key Syntax, Configuration & Operational Directives

  1. Managing Trigger Monitors via CKQC: Administrators can start a CKTI instance from a 3270 terminal session, an automated script, or a program load table (PLTPI) (CKQC - Start a CKTI monitor - Rocket Software Documentation):
CKQC START MON=CKTI Q=SYSTEM.CICS.INITIATION.QUEUE
  1. Programmatic Adapter Control via dfhzckqc: CICS programs can start or stop CKTI instances dynamically by passing commands in a COMMAREA to the supplied dfhzckqc program (CKQC - Start a CKTI monitor - Rocket Software Documentation):
       WORKING-STORAGE SECTION.
       01  WS-CKQC-CMD        PIC X(60) VALUE 'START MON=CKTI Q=APP.INIT.QUEUE'.
       ...
       PROCEDURE DIVISION.
           EXEC CICS LINK PROGRAM('dfhzckqc')
                          COMMAREA(WS-CKQC-CMD)
                          LENGTH(LENGTH OF WS-CKQC-CMD)
                          RESP(WS-RESP)
           END-EXEC.
  1. Configuring MQ Client Environment Variables: In ESCWA (Enterprise Server Common Web Administration) under [Region] > General > Properties > Environment Variables, configure MQ client channel routing (WebSphere MQ Environment Variables):
# Route MQ calls to remote queue manager
MQSERVER=SYSTEM.DEF.SVRCONN/TCP/mqhost.enterprise.internal(1414)
export MQSERVER
  1. XA Resource Definition for Two-Phase Commit: In ESCWA under [Region] > General > XA Resources > New, configure IBM MQ as an XAR:
    • Module: Point to the compiled MQ switch module (e.g., libmqmxa64.so on UNIX or mqmxa.dll on Windows).
    • Open String: Provide the target queue manager name:
QM=QMGR01

4. Reference Citations (Rocket Enterprise Server 12.0 Manuals)

Enterprise Server · 12.0 · Linux/UNIX
Documentation references
That’s the briefing.You’ve reached the end of this edition.
More editions

From the archive

View all
Oct 3

EZASOKET TCP/IP API in Rocket Enterprise Server

Oct 2

CICS Temporary Storage (TSQ) & Transient Data (TDQ) Queue Management

Oct 1

Copybook Resolution (COBCPY) & Directive Files (cobol.dir)