IMS MQ transactions are the running programs inside IMS Transaction Manager that turn queue bytes into database updates and reply messages. Where CICS developers speak of transactions and CKTI, IMS teams speak of MPP and BMP, PCBs, CHKP, and schedule codes. The queue manager does not understand IMS vocabulary—it delivers messages. IMS must schedule the right program, open the right database PCB, and end with a checkpoint that matches business rules. Message-driven IMS is how overnight files shrink into continuous processing: MQ buffers spikes, IMS commits what it can, and partners on other platforms see orderly events. This tutorial explains transaction types, reading and writing messages in IMS programs, checkpoint coordination with MQ, OTMA-delivered transactions, error and abend behavior, capacity planning for MPR load, and troubleshooting when depth grows on MQ but IMS seems idle.
| Type | Characteristics | MQ fit |
|---|---|---|
| MPP | Short online cycles; message-driven | MQGET one message, process, CHKP, reply |
| BMP | Longer runs; batch windows | Drain many messages per schedule |
| IFP | Fast path; limited DB | Lightweight notifications only |
| Batch DL/I | Traditional batch | Often separate from online MQ bridge |
Choose MPP when each message is one business transaction with tight latency. Choose BMP when processing thousands of messages per cycle is cheaper than per-message scheduling overhead. Mixing both on the same queues without documentation confuses operations.
IMS COBOL and PL/I programs link to MQI entry points like other languages. Connection handles may be acquired per message or pooled per region depending on performance tuning. Use syncpoint-capable options when database updates and messages must align. Log reason codes—2035 authorization and 2085 unknown object dominate bridge cutovers.
1234/* Pseudocode structure — language bindings vary MQGET input queue -> process IMS DB -> MQPUT reply queue IF business OK -> CHKP (coordinated if configured) ELSE -> rollback / negative reply / error queue PUT */
CHKP makes IMS database changes permanent for the unit of work. When MQ is enrolled, CHKP also commits MQ puts and gets in that UOW. ROLB or abend with rollback reverses coordinated messaging—peers may never see a half-published event. When MQ is not enrolled, a committed IMS record might exist without a matching notification message—architects forbid that combination for money movement flows.
OTMA delivers structured input to IMS with routing tokens. MQ carries the payload; IMS interprets headers to pick program and commit mode. Errors in logical destination or LTERM mapping send work to IMS error transactions—monitor those queues as closely as business queues. OTMA is powerful and unforgiving; change control must include partner simulators.
Each concurrent IMS transaction consumes MPR resources. MQ depth spikes can schedule more work than IMS can run, deepening queues and missing SLAs. Tune max threads, prioritize critical message types on separate queues, and use backout thresholds. Compare to CICS MXT limits—same physics, different knobs.
MQ is the line of people holding tickets. Each IMS transaction is one clerk serving one ticket completely—forms filed (database), receipt printed (reply message), desk closed for that ticket (CHKP). If the clerk tears up the forms on error, the ticket may go back to the line (rollback redelivery).
Each letter from the mailbox gets one helper. The helper does all the chores for that letter, then puts a done sticker on the board. If something breaks, the helper erases the chores and puts the letter back.
Decide MPP versus BMP for a queue averaging 10 messages per second with 200 ms IMS processing each.
Write rollback behavior for coordinated versus uncoordinated MQ on IMS abend.
List monitoring metrics for IMS and MQ jointly during a cutover weekend.
1. CHKP in IMS is primarily:
2. MPP is suited for:
3. After coordinated rollback, MQ message visibility:
4. Message-driven IMS means: