Troubleshooting - IBM MQ V9.1 System Administrator
Troubleshooting - what the exam tests
This domain tests diagnosis: reading AMQ error logs and FFST files, interpreting reason codes, checking channel and queue status, handling the dead-letter queue, and using trace only when logs are insufficient.
Core rules
- Logs: newest errors are in
/var/mqm/qmgrs/QM1/errors/AMQERR01.LOG;AMQERR02.LOGand03are older, not newer. Global errors and.FDCFFST files are under/var/mqm/errors. - Reason codes: 2035 NOT_AUTHORIZED, 2058 Q_MGR_NAME_ERROR, 2059 Q_MGR_NOT_AVAILABLE, 2053 Q_FULL, 2033 NO_MSG_AVAILABLE, 2085 UNKNOWN_OBJECT_NAME, 2009 CONNECTION_BROKEN, 2018 CONNECTION_HANDLE_ERROR. Match the code to the layer before changing anything.
- Channels:
DISPLAY CHSTATUS(ch) ALLshows RUNNING, RETRYING, STOPPED, substate,XQMSGSA, last message time.PING CHANNEL(ch)tests the link.RESOLVE CHANNEL(ch) ACTION(COMMIT|BACK)settles in-doubt;RESET CHANNEL(ch)resets sequence numbers and can discard messages, so use it only after comparing both ends. - DLQ: undeliverable messages land on
SYSTEM.DEAD.LETTER.QUEUEwith an MQDLH reason. Browse before destructive get;runmqdlqapplies a rules table to retry or forward. - Trace:
strmqtrc -m QM1,endmqtrc -m QM1,dspmqtrcfor formatted output; trace is for defects, not ordinary 2035s.
Worked example
A sender channel is RETRYING and XQMSGSA grows. DISPLAY CHSTATUS shows a connection error; PING CHANNEL fails. Reasoning: check the remote listener with DISPLAY LSSTATUS(TCP), confirm CONNAME host/port and firewall, and confirm the receiver channel exists with the same name. If the listener is running and the name matches, examine the remote queue manager's AMQERR01 for a 2059 or TLS error. Do not RESET CHANNEL yet: sequence numbers are not the problem while the TCP connection cannot be established.
Traps
Treating 2035 as a network fault wastes time; it is an authority failure. Looking only at the local queue manager hides receiver-side errors. RESET CHANNEL to "fix" a stopped channel can lose in-flight messages. Ignoring a growing DLQ means production messages are being discarded. Reading AMQERR03 first finds the oldest, not newest, error.