In MQ for z/OS 9.3.3 we have further expanded upon the SMF queue statistics to introduce 57 new data points which provide you with information of what happens with your queue during the SMF interval.
In MQ for z/OS 9.3.0 we first introduced the SMF 115 queue statistics which provided you with basic information about your queue, which you can learn about in the blog “SMF 115 v188.8.131.52 Blog Post”. In MQ for z/OS 9.3.1 we expanded this data to include a snapshot of the values commonly found in a ‘DISPLAY QSTATUS’ when the interval expires; this can be read about in the blog “What’s new in MQ for z/OS 9.3.1 – SMF queue statistics enhancements”. While this provided useful information and was a lot easier to access than constantly having to issue ‘DISPLAY QSTATUS’ it was limited to snapshot data and did not show what happened during the SMF interval.
With the release of MQ for z/OS 9.3.3 comes 57 new data points that track what is happening on your queue throughout the SMF interval. These data points can be broken down into three categories, which are ‘Put statistics’, ‘Get statistics’ and ‘General queue statistics’. Below I will give a breakdown of what you can expect from each of the three categories and a full list of all the new fields and their descriptions can be found in the MQ Documentation at https://www.ibm.com/docs/en/ibm-mq/9.3?topic=statistics-queue-data-records-version-933-release.
This category contains information about any activity on your queue related to MQPUTs and MQPUT1s. For example, you can find information such as:
- MQPUT count.
- MQPUT1 count.
- Breakdown of MQPUT and MQPUT1 counts based on persistence.
- Failed MQPUT count.
- Failed MQPUT1 count.
- MQPUT byte count.
- MQPUT1 byte count.
- Breakdown of MQPUT and MQPUT1 bytes based on persistence.
- Minimum, maximum, and average message size.
- Fast put to waiting getter count.
- Fast put to waiting getter byte count.
- Number of messages streamed to a streaming queue.
- Number of messages rolled back off the queue.
This category contains information about any activity on your queue related to MQGETs, including non-destructive MQGETs (browses). For example, you can find information such as:
- Destructive MQGET count.
- Non-destructive MQGET count.
- Breakdown of destructive and non-destructive MQGETs based on persistence.
- Destructive MQGET bytes count.
- Non-destructive MQGET bytes count.
- Breakdown of destructive and non-destructive MQGETs byte counts based on persistence.
- Failed destructive MQGET count.
- Failed non-destructive MQGET count.
- MQRC_NO_MSG_AVAILABLE counts for both destructive and non-destructive MQGETs.
- MQRC_TRUNCATED_MSG_FAILED counts for both destructive and non-destructive MQGETs.
- Number of times there was no message available for both destructive and non-destructive MQGETs with a wait.
- Number of times a waiting MQGET was re-driven to check for a message meeting its criteria for both destructive and non-destructive MQGETs with a wait.
- MQRC_SIGNAL_REQUEST_ACCEPTED counts for both destructive and non-destructive MQGETs.
- Number of messages rolled back onto the queue.
General queue statistics
This category contains useful general information about the queue. For example, you can find information such as:
- Highest depth.
- Lowest depth.
- High watermark for IPPROC and OPPROC.
- Low watermark for IPPROC and OPPROC.
- MQOPEN count.
- MQCLOSE count.
- MQINQ count.
- MQSET count.
- Number of expired messages cleared from the queue.
Shared queue considerations
All the data listed above is available on shared queues, however there are some considerations that you should be aware of. The datapoints provided for the shared queue will only be from the perspective of the queue manager that captured the data. For example, the number of MQPUTs and MQGETs will count those which were performed through the collecting queue manager and not a different queue manager in the group. The high and low depth counts are also based on partial information and details of how each statistic is calculated can be found within the descriptions, in the documentation linked earlier in this blog.
Formatting the data with MP1B
MP1B version 5.7 has the capability to format the new SMF queue statistics data into both a human readable and CSV format. Due to the amount of data available in a queue statistics record, the data is split into three different CSV files called ‘QPUTSCSV’, ‘QGETSCSV’, and ‘QSTATCSV’. A full breakdown of which statistics are found in each of the CSV files is provided within the MP1B documentation. The latest version of MP1B can be obtained from the IBM support webpage https://www.ibm.com/support/pages/mp1b-ibm-mq-interpreting-accounting-and-statistics-data-and-other-utilities.