Channel statistics measure how much traffic flows through IBM MQ message channels—messages and bytes moved between queue managers or into the enterprise from partners. While queue statistics explain application queue hot spots, channel statistics explain whether PARIS.TO.LONDON actually carries the load or sits RUNNING with idle counters because XMITQ depth grows on the sender side. Enable STATCHL on tier-1 SDR and RCVR pairs, read MSGS and BYTES from DISPLAY CHSTATUS, and export counters to Prometheus for trend lines. This tutorial covers enabling channel statistics, interpreting counters by channel type, RESET CHSTATS, batching efficiency signals, correlating with transmission queue depth and network metrics, monitoring in Grafana, and capacity reviews before bandwidth upgrades or channel limit changes.
12345678ALTER CHANNEL('PARIS.TO.LONDON') CHLTYPE(SDR) STATCHL(ENABLED) DISPLAY CHANNEL('PARIS.TO.LONDON') STATCHL DISPLAY CHSTATUS('PARIS.TO.LONDON') ALL * MSGS, BYTES, LASTMSGDT, STATUS — fields per version RESET CHSTATS('PARIS.TO.LONDON') * Use per IBM syntax for instance vs definition
STATCHL applies to the channel definition; active instances inherit behavior when started. Cluster channels and sender-receiver pairs both benefit. SVRCONN client channels may have separate statistics attributes on some releases—verify documentation before alerting.
| Field | Meaning | If abnormal |
|---|---|---|
| MSGS | Messages moved on this instance | Flat while XMITQ grows — investigate flow |
| BYTES | Payload volume moved | High bytes low msgs — large messages |
| LASTMSGDT | Time last message transferred | Stale while RUNNING — zombie session |
| STATUS | RUNNING, RETRY, etc. | Not RUNNING — channel runbook |
| BATCHSZ / batch indicators | Batching config (definition) | Tune with channel batching guide |
On a sender channel, MSGS often reflects messages sent toward the partner; on a receiver, messages received. During incidents compare both sides of a pair at the same timestamp—large mismatch suggests partial transfer, in-doubt batches, or monitoring reading different instances. Network teams want BYTES rate; middleware teams want MSGS rate and STATUS together.
Low MSGS with high BYTES implies few large messages—consider message splitting or compression if policy allows. High MSGS with low BYTES implies small chatter—batching may reduce overhead if latency SLAs permit. Channel batching tutorial covers MAXMSGL and batch attributes; statistics prove whether tuning helped after change.
XMITQ depth rising while channel MSGS flat and STATUS RUNNING is a classic zombie pattern—session up, transfer stalled. TCP retransmits and firewall drops appear in network monitoring; channel statistics confirm middleware perspective before blaming applications. TLS renegotiation may pause byte growth briefly—annotate change windows.
Channel statistics are the toll booth counter—how many vehicles and total weight passed this highway segment, regardless of how many cars wait in the parking lot (XMITQ depth).
The tunnel between two rooms has a counter that clicks for each toy car sent through and how big the load was. The counter does not tell you how many cars wait to enter the tunnel—that is the transmission queue.
Given BYTES 9 GB in one hour on one channel, estimate average megabits per second.
Write alert logic: RUNNING and byte rate zero ten minutes while XMITQ depth increases.
List channels to enable STATCHL first on a hub queue manager with twenty partners.
1. STATCHL(ENABLED) enables:
2. MSGS on CHSTATUS typically indicates:
3. Channel RUNNING with flat MSGS may mean:
4. RESET CHSTATS is for: