Performance Events

Performance events are IBM MQ way of ringing a bell when workload crosses a line you drew in advance—queue depth above ten thousand, depth back below one hundred, channel entering RETRY, or other threshold conditions defined in object attributes and queue manager policy. Metrics platforms sample every thirty seconds; a depth spike between scrapes can still trigger a performance event the moment CURDEPTH crosses QDEPTHHI. Beginners enable PERFMEV globally but never set QDEPTHHI on queues, then conclude events do not work. This tutorial explains queue manager and queue attribute knobs, channel-related performance notifications where supported, event message delivery to SYSTEM.ADMIN.PERFM.EVENT, building consumers and SIEM rules, calibrating thresholds to avoid alert fatigue, pairing events with Grafana and Prometheus, and differences from configuration and security event streams.

Queue Depth High and Low Events

ALTER QLOCAL sets QDEPTHHI to the message count that defines high water—for example 8000 when MAXDEPTH is 10000. QDPHIEV controls whether a high event generates when depth crosses upward through QDEPTHHI. QDEPTHLO and QDPLOEV define the low side—useful to detect consumer recovery when depth drains below a small number. MONQ must be ENABLED on the queue for monitoring events to apply. Each attribute has operational meaning: QDEPTHHI too low pages constantly during normal batch; too high and you learn about backlog after the application is already failing.

Queue attributes for depth performance events
AttributePurposeBeginner tip
MONQEnable monitoring events for this queueENABLED on tier-1 queues only if noise is a concern
QDEPTHHIHigh threshold message countOften seventy to eighty percent of MAXDEPTH
QDPHIEVGenerate event on high crossingENABLED when you want notifications
QDEPTHLOLow threshold message countSmall value for drained signal
QDPLOEVGenerate event on low crossingUse for recovery confirmation

Enable at Queue Manager Level

shell
1
2
3
4
5
6
7
8
ALTER QMGR PERFMEV(ENABLED) DISPLAY QMGR PERFMEV ALTER QLOCAL('ORDERS.IN') MONQ(ENABLED) QDEPTHHI(8000) QDPHIEV(ENABLED) + QDEPTHLO(100) QDPLOEV(ENABLED) DISPLAY QLOCAL('ORDERS.IN') MONQ QDEPTHHI QDPHIEV QDEPTHLO QDPLOEV DISPLAY QLOCAL('SYSTEM.ADMIN.PERFM.EVENT') CURDEPTH

Channel and Other Performance Events

Channel performance events can notify on state changes such as entering retry or stopping—exact capabilities depend on MQ version and channel MONCHL settings. Pair channel events with CHSTATUS metrics so operators receive an event message and can open Grafana to see duration in RETRYING. Pub/sub and listener objects have their own monitoring attributes on some releases—check IBM documentation rather than assuming parity with QLOCAL.

Event Queue Consumer Pattern

  1. Service reads SYSTEM.ADMIN.PERFM.EVENT with long-running GET loop.
  2. Parse event header; extract object name, event type, reason.
  3. Map to alert severity: depth high on PAY.* is critical.
  4. Deduplicate: one open incident per queue until depth low event clears.
  5. Forward raw message to audit archive for post-incident review.

Threshold Design Workshop

For each tier-1 queue document MAXDEPTH, chosen QDEPTHHI, expected peak depth during batch, and consumer recovery time. If batch normally peaks at 6000 and MAXDEPTH is 10000, QDEPTHHI 7500 gives warning before hard cap. Add Prometheus alert at eighty-five percent as backup when scrape interval is sixty seconds. Performance events win on fast spike detection; metrics win on trending and dashboards.

Event Storm Prevention

  • Do not enable MONQ on every queue in a ten-thousand-queue estate without filtering consumer.
  • Increase event queue MAXDEPTH before peak season.
  • Throttle duplicate alerts in consumer logic using incident state.
  • Disable monitoring on temporary test queues.

Explainer: Overflow Alarm on a Tank

Performance events are float switches in a tank—they click when water hits a line, not on every drop added.

Explain Like I'm Five: Performance Events

When the toy box gets fuller than the red line you drew, a bell rings. When it empties below the green line, another bell says the room is tidy again.

Practice Exercises

Exercise 1

Calculate QDEPTHHI at seventy-five percent for MAXDEPTH 50000 and write MQSC ALTER line.

Exercise 2

Compare one scenario handled better by performance events than by thirty-second Prometheus scrape.

Exercise 3

Write consumer pseudocode: on depth high open ticket; on depth low close ticket.

Frequently Asked Questions

Frequently Asked Questions

Test Your Knowledge

Test Your Knowledge

1. Performance events typically include:

  • Depth high and channel retry
  • Only TLS cert expiry
  • COBOL compile
  • JES job purge

2. MONQ(ENABLED) on a queue means:

  • Queue participates in monitoring events
  • Queue is deleted
  • TLS required
  • No gets allowed

3. QDEPTHHI defines:

  • High depth threshold
  • Listener port
  • Log file count
  • Channel batch size

4. PERFMEV on queue manager enables:

  • Performance event generation
  • Only config events
  • Pub/sub only
  • Browse all queues
Published
Read time21 min
AuthorMainframeMaster
Verified: IBM MQ 9.3 documentation