CKTI is the name operators and developers remember when messages pile up on a queue because nothing in CICS started to process them. IBM MQ wrote trigger messages to the initiation queue expecting the CICS trigger monitor to read them and launch the right application transaction; CKTI is that monitor on z/OS CICS. Without CKTI running, trigger-enabled queues become silent backlog. With CKTI misconfigured, the wrong program starts or starts with wrong context and abends immediately. This tutorial explains CKTI role in the trigger chain, initiation and application queues, PROCESS and TRIGGER attributes, trigger message contents at a conceptual level, CICS definitions CKTI needs, first and not triggered depth behavior, error symptoms and displays, and coordination with the broader CICS-MQ bridge and triggering tutorials.
| Object | Role | CKTI touchpoint |
|---|---|---|
| Application QLOCAL | Holds business messages | Indirect—trigger fires |
| INITQ | Holds trigger messages | MQGET trigger msgs |
| PROCESS | Names CICS trans/program | Uses PROCESS name from trigger |
| TRIGGER | Optional trigger control | Per site config |
| CKTI trans | Monitor | Executes monitor logic |
1234567891011DEFINE QLOCAL('PAY.WORK') REPLACE + TRIGGER + TRIGTYPE(FIRST) TRIGDPTH(1) + INITQ('SYSTEM.DEFAULT.INITIATION.QUEUE') + PROCESS('PAYPROC') DEFINE PROCESS('PAYPROC') REPLACE + APPLICID('PAY1') + USERDATA('Payment trigger app') /* CICS: CKTI transaction defined and active CICS: PAY1 transaction runs payment program */
TRIGTYPE(FIRST) fires when the queue goes from empty to having messages—common for waking processing. TRIGDPTH(1) means one message can satisfy depth-based rules depending on type. INITQ must exist and CKTI must read it. PROCESS APPLICID must match a CICS transaction that starts the correct program. USERDATA passes opaque context some programs read.
Wrong TRIGTYPE for your traffic pattern causes either no CKTI invocations or CKTI storms that exhaust CICS tasks. Load test before production.
CKTI must be defined as a transaction, often started automatically when CICS connects to MQ or via PLTPI. Operators verify CKTI is active with CICS inquiry commands before blaming MQ. Stopping CICS or MQ without draining initiation queue leaves trigger messages to process on restart—plan order of shutdown. Multiple CICS regions may each run CKTI against the same initiation queue only if architecture permits—usually one monitor pattern per queue manager connection design.
Distributed MQ uses a trigger monitor process (amqzmur0 family) to start batch commands or programs. CKTI is the CICS equivalent binding trigger messages to CICS transaction IDs. Concepts—initiation queue, PROCESS, TRIGGER—transfer across platforms; implementation names differ.
CKTI is the receptionist who hears the doorbell (trigger message) and calls the correct office extension (CICS transaction) to handle packages waiting in the mailroom (application queue).
CKTI is the helper who notices the mailbox flag went up and tells the right worker to come get the letters.
Write TRIGGER attributes for a queue that should wake processing when the first message arrives after idle.
Given depth on application queue but zero on initiation queue, list three hypotheses.
Map PROCESS fields to CICS resource definitions in a diagram.
1. CKTI is a:
2. Trigger messages arrive on:
3. PROCESS object defines:
4. TRIGGR on application queue: