Certification labs are where IBM MQ knowledge becomes muscle memory: you type runmqsc until DEFINE QLOCAL is automatic, you break TLS once and fix SSLCIPH with a partner checklist, you watch XMITQ depth fall only after START CHANNEL succeeds. Reading sample exam questions without labs produces false confidence; labs without objectives produces random tinkering. This page lists eight structured lab modules aligned to typical administrator and developer certification domains—each with goal, prerequisites, steps, verification, and cleanup. Use a disposable queue manager named QM_LAB on IBM MQ 9.4 or 9.3. Document results in a study journal examiners never see but you will trust on test day.
12345crtmqm QM_LAB strmqm QM_LAB runmqsc QM_LAB DISPLAY QMSTATUS ALL * End lab session: endmqm -c QM_LAB when snapshotting
Goal: Prove you can create and display core objects. Define QLOCAL(LAB.IN) REPLACE MAXDEPTH(1000) DEFPSIST(YES). Define QLOCAL(LAB.OUT) REPLACE. DISPLAY QLOCAL(LAB.*). Use amqsput and amqsget or sample programs to move one message. Verification: DISPLAY QLOCAL CURDEPTH 0 after get. Cleanup: DELETE QLOCAL(LAB.IN) PURGE; same for LAB.OUT.
Goal: Connect remote-style to local listener. DEFINE LISTENER(LAB.LSR) TRPTYPE(TCP) PORT(1414) CONTROL(QMGR). DEFINE CHANNEL(LAB.SVRCONN) CHLTYPE(SVRCONN). START LISTENER(LAB.LSR). Connect with runmqsc -c or client sample using CONNAME localhost(1414) and channel LAB.SVRCONN. Verification: DISPLAY CHSTATUS shows SVRCONN activity. Cleanup: STOP LISTENER; DELETE objects.
Goal: Fix 2035 deliberately then correctly. SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(nobody) ACTION(ADD). Attempt connection asserting nobody—fail. Add OAM grant: setmqaut -m QM_LAB -n LAB.IN -t q -p appuser +put +get. Add CHLAUTH ALLOW for appuser on SVRCONN. Verification: successful put/get as appuser. Cleanup: REMOVE BLOCKUSER entry; document commands used.
Goal: Move message between two queue managers. On QM_LAB define QREMOTE(TARGET) RNAME(TARGET) RQMNAME(QM_LAB2) XMITQ(SYSTEM.TRANSMIT.QM_LAB2). On QM_LAB2 define QLOCAL(TARGET). Pair SDR on QM_LAB with RCVR on QM_LAB2, CONNAME, START CHANNEL. Put to QREMOTE; verify on QM_LAB2 TARGET depth. Verification: MSGS increment on CHSTATUS. This lab often takes 90 minutes first time—schedule accordingly.
Goal: Configure one-way TLS on SVRCONN. Create keystore, configure CERTLABL on channel, set SSLCIPH to modern suite, connect with client trusting CA. Verification: channel shows SSL in status; connection without cert fails if required. Reference ssl-tls and tls-configuration tutorials if stuck.
Goal: Commit versus backout. Use Java or C sample with syncpoint. Put two messages, commit—both on queue. Put two messages, backout—neither on queue. Verification: CURDEPTH counts. Links to transactions and rollback tutorials.
Instructor or self-inflict: wrong CONNAME, blocked CHLAUTH, full queue (MAXDEPTH 1). Fix using DISPLAY CHSTATUS, AMQERR, and AUTHREC without DISABLE CHLAUTH globally. Time yourself—certification scenarios reward systematic checks.
Goal: Understand clean shutdown and restart. dmpmqcfg -a before change. endmqm -c QM_LAB. strmqm. Confirm definitions persist. Optional advanced: kill -9 simulation in lab only, observe longer restart—read recovery-processing tutorial.
| Lab | Skill | Done? |
|---|---|---|
| 1 | MQSC objects | |
| 2 | Listener/SVRCONN | |
| 3 | CHLAUTH/OAM | |
| 4 | SDR/RCVR | |
| 5 | TLS | |
| 6 | Syncpoint | |
| 7 | Troubleshooting | |
| 8 | Backup/restart |
Certification labs are practice courses where you really ride the bike, not just read about pedals—so the test feels familiar.
Complete Labs 1–4 in one weekend; photograph DISPLAY output for study notes.
Redo Lab 7 under 30-minute time limit.
Pair each lab with five sample exam questions from the prior page.
1. Cert labs require:
2. Two queue managers help learn:
3. After failed lab exercise:
4. Docker MQ labs should: