[MQ 9.4.0 Jul 2024][z/OS]

Queue data records

Use this topic as a reference for queue (SMF type 115, subtype 216) data records. The statistics are designed to make it easier for you to monitor usage and performance of your queue over time, and give an insight into what happened with your queue during the last SMF interval. This includes all the DISPLAY QSTATUS information and information on message flow, expiry, high and low watermarks and more.

The format of the queue statistics data record is described in assembler macro thlqual.SCSQMACS(CSQDQQST).

The queue statistics record contains information on the performance of selected queues and includes the following fields:

QQSTID – Control block identifier
The identifier for the queue statistics control block; is always x'D80F'.
QQSTLL – Length of control block
The length of a queue statistics record.
QQSTEYEC – Control block eyecatcher
The eyecatcher used to make identification of the control block easier; is always 'QQST'
QQSTQNAM – Queue name
The name of the queue.
QQSTFLAG
An array of bits containing the following information about the queue:
QQSTDISP – Queue disposition
This bit identifies whether the queue is of private or shared disposition. If the bit is on, then it is a shared queue.
QQSTPART – Partial record identifier
This bit identifies whether the record is a full or partial record. If the bit is on, then it is a partial record. When this flag is set there was an issue accessing the information on the queue, for example if there is a CF structure failure.
In a shared queue partial record, the accuracy of qqstdpth, qqstmage, and qqstuncm cannot be guaranteed. Therefore, the fields qqstdpth and qqstmage are populated with x'00' and the qqstuncm flag is not set.
In a private queue partial record, the accuracy of qqstmage cannot be guaranteed, therefore the field is populated with x'00'.
QQSTUNCM – Uncommitted changes pending
This bit indicates whether there are any uncommitted changes (puts and gets) pending for the queue. If the bit is on, there are uncommitted changes.
This is checked and set at the time of the SMF data collection and provides the same result as a DISPLAY QSTATUS command would if run at the time the SMF record was generated.
If the queue is a shared queue and QQSTPART is set, this bit is always off as there might have been an issue obtaining the correct value.
QQSTPSID – Page set ID
The page set ID where the queue is located, if allocated and a private queue. If the queue is a shared queue, or a private queue that does not have a page set assigned to it, this field is set to -1 (x'FFFF').
This value is correct at the time the SMF record was generated. It is possible that the page set changed during the SMF interval, in which case, the value reflected in the next SMF record will be the new page set.
QQSTBPID – Buffer pool ID
The buffer pool ID used by the queue, if allocated and a private queue. If the queue is a shared queue, or a private queue that does not have a buffer pool assigned to it, this field is set to -1 (x'FFFF').
This value is correct at the time the SMF record was generated. It is possible that the buffer pool changed during the SMF interval. In this case, the value reflected in the SMF record is the new buffer pool.
QQSTQSGN – QSG name
The Queue Sharing Group name that the queue manager is a member of, if it is a shared queue. If the queue is a private queue this field is blank.
QQSTCFST – CF Structure name
The coupling facility (CF) structure name the queue uses if it is a shared queue. If the queue is a private queue this field is blank.
QQSTDPTH – Current depth
The depth of the queue at the time the SMF data was captured.
If the queue is a shared queue and QQSTPART is set, this value is always zero as there might have been an issue obtaining the correct value.
QQSTOPCT – Current open for output count
The number of handles that are currently open for output for the queue at the time when the SMF data was captured. For shared queues, the number returned applies only to the queue manager generating the record. The number is not the total for all the queue managers in the queue sharing group.
This is the same as OPPROCS from a DISPLAY QSTATUS command.
This is checked and set at the time of the SMF data collection and provides the same result as a DISPLAY QSTATUS command would, if run at the time the SMF record was generated.
QQSTIPCT – Current open for input count
The number of handles that are currently open for input for the queue at the time when the SMF data was captured. For shared queues, the number returned applies only to the queue manager generating the record. The number is not the total for all the queue managers in the queue sharing group.
This is the same as IPPROCS from a DISPLAY QSTATUS command.
This is checked and set at the time of the SMF data collection and provides the same result as a DISPLAY QSTATUS command would, if run at the time the SMF record was generated.
QQSTMAGE – Oldest message age
The age, in seconds, of the oldest message on the queue.
This is checked and set at the time of the SMF data collection and provides the same result as a DISPLAY QSTATUS command would, if run at the time the SMF record was generated.
If QQSTPART is set, this value is always zero as there might have been an issue obtaining the correct value.
QQSTQTST – Short term QTIME
The interval, in microseconds, between messages being put on the queue and then being destructively read. Value based on the last few messages processed. For shared queues, the values shown are for measurements collected on this queue manager only.
This is the same as the first value in QTIME from a DISPLAY QSTATUS command.
This is checked and set at the time of the SMF data collection and provides the same result as a DISPLAY QSTATUS command would, if run at the time the SMF record was generated.
QQSTQTLT – Long term QTIME
The interval, in microseconds, between messages being put on the queue and then being destructively read. The value is based on a larger sample of the recently processed messages. For shared queues, the values shown are for measurements collected on this queue manager only.
This is the same as the second value in QTIME from a DISPLAY QSTATUS command.
This is checked and set at the time of the SMF data collection and provides the same result as a DISPLAY QSTATUS command would, if run at the time the SMF record was generated.
QQSTLPUT – Last put date/time
The time, in store clock format, at which the last message was put to the queue since the queue manager started. For shared queues, the value shown is for messages put by this queue manager only.
This is the same as LPUTDATE and LPUTTIME from a DISPLAY QSTATUS command.
This is checked and set at the time of the SMF data collection and provides the same result as a DISPLAY QSTATUS command would, if run at the time the SMF record was generated.
QQSTLGET – Last get date/time
The time, in store clock format, at which the last message was retrieved from the queue since the queue manager started. For shared queues, the value shown is for messages put by this queue manager only.
A message being browsed does not count as a message being retrieved.
This is the same as LGETDATE and LGETTIME from a DISPLAY QSTATUS command.
This is checked and set at the time of the SMF data collection and provides the same result as a DISPLAY QSTATUS command would, if run at the time the SMF record was generated.
QQSTDPHI – Highest depth
The highest depth reached by the queue during the SMF interval.
For shared queues, queue managers only have partial information about the change in depth of the queue over time. The QQSTDPHI value is based off this partial information as follows:
  • At the start of the interval the value of QQSTDPHI is set to zero.
  • When an application puts a message to the queue in the interval the queue manager checks the depth of the queue, including the message just being put. If this value is higher than the current value of QQSTDPHI, then it is used as the new value of QQSTDPHI.
  • When SMF data for the queue is collected, the queue manager will check if the current queue depth is higher than QQSTDPHI, if so the current queue depth is used as the new value of QQSTDPHI.
This approach means that the value of QQSTDPHI does not take into account messages put by other queue managers in the queue sharing group, unless those messages contributed to the queue depth at the point where SMF data is collected.
QQSTDPLO – Lowest depth
The lowest depth reached by the queue during the SMF interval.
For shared queues, queue managers only have partial information about the change in depth of the queue over time. The QQSTDPLO value is based off this partial information as follows:
  • At the start of the interval the value of QQSTDPLO is set to a special value.
  • The first time during the interval the queue manager obtains the depth of the queue, QQSTDPLO to that value.
  • When an application puts a message to the queue in the interval the queue manager checks the depth of the queue, including the message just being put. If this value is lower than the current value of QQSTDPLO, then it is used as the new value of QQSTDPLO.
  • When SMF data for the queue is collected, the queue manager will check if the current queue depth is lower than QQSTDPLO, if so the current queue depth is used as the new value of QQSTDPLO.
This approach means that the value of QQSTDPLO does not take into account messages got by other queue managers in the queue sharing group, unless those messages contributed to the queue depth at the point where SMF data is collected.
QQSTPUTS – MQPUT count
The number of messages put to the queue using MQPUT during the SMF interval.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTPUT1 – MQPUT1 count
The number of messages put to the queue using MQPUT1 during the SMF interval.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTNPPT – Non-persistent MQPUT count
The number of non-persistent messages put to the queue using MQPUT during the SMF interval.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTPPT – Persistent MQPUT count
The number of persistent messages put to the queue using MQPUT during the SMF interval.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTNPP1 – Non-persistent MQPUT1 count
The number of non-persistent messages put to the queue using MQPUT1 during the SMF interval.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTPP1 – Persistent MQPUT1 count
The number of persistent messages put to the queue using MQPUT1 during the SMF interval.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTPUTB – MQPUT bytes
The number of bytes of message data, including any message properties, put to the queue using MQPUT during the SMF interval. This does not include message headers in the calculation of the size.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTPT1B – MQPUT1 bytes
The number of bytes of message data, including any message properties, put to the queue using MQPUT1 during the SMF interval. This does not include message headers in the calculation of the size.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTNPPB – Non-persistent MQPUT bytes
The number of bytes of non-persistent message data, including any message properties, put to the queue using MQPUT during the SMF interval. This does not include message headers in the calculation of the size.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTPPB – Persistent MQPUT bytes
The number of bytes of persistent message data, including any message properties, put to the queue using MQPUT during the SMF interval. This does not include message headers in the calculation of the size.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTNP1B – Non-persistent MQPUT1 bytes
The number of bytes of non-persistent message data, including any message properties, put to the queue using MQPUT1 during the SMF interval. This does not include message headers in the calculation of the size.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTP1B – Persistent MQPUT1 bytes
The number of bytes of persistent message data, including any message properties, put to the queue using MQPUT1 during the SMF interval. This does not include message headers in the calculation of the size.
For shared queues, the count only includes messages put through the queue manager that generated the SMF record.
QQSTFLPT – Failed MQPUT count
The number of MQPUT calls targeting the queue, which failed with a completion code of MQCC_FAILED, during the SMF interval.
For shared queues, the count only includes failed puts attempted through the queue manager that generated the SMF record.
QQSTFLP1 – Failed MQPUT1 count
The number of MQPUT1 calls targeting the queue, which failed with a completion code of MQCC_FAILED, during the SMF interval.
For shared queues, the count only includes failed puts attempted through the queue manager that generated the SMF record.
QQSTFPTC – Fast puts to a waiting getter count
The number of MQPUT and MQPUT1 calls targeting the queue, that were fast put to a waiting getter during the SMF interval.
Note: Put to a waiting getter is a technique whereby a message might not actually be put onto a queue if there is an application already waiting to get the message. Certain conditions must be satisfied for this to occur, in particular the message must be non-persistent and the putting and getting application must be processing the message outside syncpoint control.

If these conditions are met, then the message is transferred from the putting application's buffer into the getting application's buffer without actually touching the IBM® MQ queue. This removes a lot of processing involved in putting the message on the queue and therefore leads to increased throughput and lower CPU costs.

QQSTFPTB – Fast puts to a waiting getter bytes
The number of message and properties bytes from MQPUT and MQPUT1 calls targeting the queue, that were fast put to a waiting getter during the SMF interval. This does not include message headers in the calculation of the size.
QQSTSTRM – Streamed message count
The number of messages that were successfully streamed from the queue during the interval. This is always zero if STREAMQ is not set for the queue.
QQSTMSMI – Minimum message size put
The minimum message size, in bytes, put to the queue during the SMF interval.
This includes message and properties bytes, and does not include message headers such as the MQMD.
QQSTMSMA – Maximum message size put
The maximum message size, in bytes, put to the queue during the SMF interval.
This includes message and properties bytes, and does not include message headers such as the MQMD.
QQSTMSAV – Average message size put
The average message size, in bytes, put to the queue during the SMF interval.
This includes message and properties bytes, and does not include message headers such as the MQMD.
QQSTGETS – Destructive MQGET count
The number of messages got from the queue using destructive MQGET during the SMF interval.
For shared queues, the count only includes messages got through the queue manager that generated the SMF record.
QQSTNPDG – Non-persistent destructive MQGET count
The number of non-persistent messages got from the queue using destructive MQGET during the SMF interval.
For shared queues, the count only includes messages got through the queue manager that generated the SMF record.
QQSTPDG – Persistent destructive MQGET count
The number of persistent messages got from the queue using destructive MQGET during the SMF interval.
For shared queues, the count only includes messages got through the queue manager that generated the SMF record.
QQSTGETB – Destructive MQGET byte count
The number of message and properties bytes got from the queue using destructive MQGET during the SMF interval.
For shared queues, the count only includes messages got through the queue manager that generated the SMF record.
QQSTNPDB – Non-persistent destructive MQGET bytes
The number of non-persistent message and properties bytes got from the queue using destructive MQGET during the SMF interval.
For shared queues, the count only includes messages got through the queue manager that generated the SMF record.
QQSTPDB – Persistent destructive MQGET bytes
The number of persistent message and properties bytes got from the queue using destructive MQGET during the SMF interval.
For shared queues, the count only includes messages got through the queue manager that generated the SMF record.
QQSTBRWS – Non-destructive MQGET count
The number of messages browsed from the queue during the SMF interval.
For shared queues, the count only includes messages browsed through the queue manager that generated the SMF record.
QQSTNPBR – Non-persistent non-destructive MQGET count
The number of non-persistent messages browsed from the queue during the SMF interval.
For shared queues, the count only includes messages browsed through the queue manager that generated the SMF record.
QQSTPBR – Persistent non-destructive MQGET count
The number of persistent messages browsed from the queue during the SMF interval.
For shared queues, the count only includes messages browsed through the queue manager that generated the SMF record.
QQSTBRWB – Non-destructive MQGET bytes
The number of message and properties bytes browsed from the queue during the SMF interval.
For shared queues, the count only includes messages browsed through the queue manager that generated the SMF record.
QQSTNPBB – Non-persistent non-destructive MQGET bytes
The number of non-persistent message and properties bytes browsed from the queue during the SMF interval.
For shared queues, the count only includes messages browsed through the queue manager that generated the SMF record.
QQSTPBB – Persistent non-destructive MQGET bytes
The number of persistent message and properties bytes browsed from the queue during the SMF interval.
For shared queues, the count only includes messages browsed through the queue manager that generated the SMF record.
QQSTFLGT – Failed destructive MQGET count
The number of destructive MQGET calls targeting the queue, that failed with a completion code of MQCC_FAILED, during the SMF interval.
Also included in the count is MQCC_WARNING when accompanied by a return code of MQRC_TRUNCATED_MSG_FAILED. However, not included in this count is any MQGET with a wait that receives MQRC_NO_MSG_AVAILABLE.
For shared queues, the count only includes failed MQGET attempts through the queue manager that generated the SMF record.
QQSTNMAG – Failed destructive MQGET with MQRC_NO_MSG_AVAILABLE count
The number of destructive MQGET calls, without wait, targeting the queue, that failed with both a completion code of MQCC_FAILED and a return code of MQRC_NO_MSG_AVAILABLE, during the SMF interval.
This value is a subset of QQSTFLGT.
For shared queues, the count only includes failed MQGET, without wait, attempts through the queue manager that generated the SMF record.
QQSTTMFB – Failed destructive MQGET with MQRC_TRUNCATED_MSG_FAILED count
The number of destructive MQGET calls targeting the queue, that failed with both a completion code of MQCC_WARNING and a return code of MQRC_TRUNCATED_MSG_FAILED, during the SMF interval.
This value is a subset of QQSTFLGT.
For shared queues, the count only includes failed MQGET attempts through the queue manager that generated the SMF record.
QQSTFLGW – No message available for destructive MQGET with a wait count
The number of times that there is no message available for destructive MQGET calls with a wait, targeting the queue, causing the MQGET to continue waiting, during the SMF interval.
QQSTRDGW – Re-driven destructive MQGET with a wait count
The number of times that destructive MQGET calls with a wait are re-driven to check if there is a message on the queue that matches their criteria, during the SMF interval.
When a new message arrives on the queue, all eligible waiting MQGET calls are woken up to attempt to get the message. Each MQGET with a wait that is woken up to check for a valid message increments this count by one. If any of these MQGET with wait fails to get the message, QQSTFLGW is incremented by one and the MQGET goes back into a waiting state.
QQSTFLBW – No message available for non-destructive MQGET with a wait count
The number of times that there is no message available for non-destructive MQGET calls with a wait, targeting the queue, causing the MQGET to continue waiting, during the SMF interval.
QQSTRDBW – Re-driven non-destructive MQGET with a wait count
The number of times that non-destructive MQGET calls with a wait are re-driven to check if there is a message on the queue that matches their criteria, during the SMF interval.
When a new message arrives on the queue, all eligible waiting MQGET calls are woken up to attempt to browse the message. Each MQGET with a wait that is woken up to check for a valid message increments this count by one. If any of these MQGET with wait fails to browse the message, QQSTFLBW is incremented by one and the MQGET goes back into a waiting state.
QQSTSAGT – Destructive MQGET with MQRC_SIGNAL_REQUEST_ACCEPTED count
The number of destructive MQGET calls targeting the queue, that complete with both a completion code of MQCC_WARNING and a return code of MQRC_SIGNAL_REQUEST_ACCEPTED, during the SMF interval.
QQSTSABR – Non-destructive MQGET with MQRC_SIGNAL_REQUEST_ACCEPTED count
The number of non-destructive MQGET calls targeting the queue, that complete with both a completion code of MQCC_WARNING and a return code of MQRC_SIGNAL_REQUEST_ACCEPTED, during the SMF interval.
QQSTIPHI – High watermark for IPPROC
The highest number of concurrent input handles open on the queue during the SMF interval.
For shared queues, the watermark only includes handles owned through the queue manager that generated the SMF record.
QQSTIPLO – Low watermark for IPPROC
The lowest number of concurrent input handles open on the queue during the SMF interval.
For shared queues, the watermark only includes handles owned through the queue manager that generated the SMF record.
QQSTOPHI – High watermark for OPPROC
The highest number of concurrent output handles open on the queue during the SMF interval.
For shared queues, the watermark only includes handles owned through the queue manager that generated the SMF record.
QQSTOPLO – Low watermark for OPPROC
The lowest number of concurrent output handles open on the queue during the SMF interval.
For shared queues, the watermark only includes handles owned through the queue manager that generated the SMF record.
QQSTOPEN – Successful MQOPEN count
The number of times the queue was successfully opened during the SMF interval. This does not include opens performed as part of an MQPUT1 call.
For shared queues, the count only includes when the queue is opened through the queue manager that generated the SMF record.
QQSTCLOS – MQCLOSE count
The number of times the queue was successfully closed using MQCLOSE, during the SMF interval.
For shared queues, the count only includes when the queue is closed through the queue manager that generated the SMF record.
QQSTINQR – MQINQ count
The number of MQINQ calls that completed with a completion code of MQCC_OK or MQCC_WARNING, during the SMF interval.
QQSTSET – MQSET count
The number of MQSET calls that completed with a completion code of MQCC_OK during the SMF interval.
QQSTEXPR – Expired messages count
The number of expired messages cleared from the queue during the SMF interval.
This includes messages expired by an application issuing an MQGET, by the expired message scanning task or by a REFRESH QMGR TYPE(EXPIRY) command.
QQSTRBPT – Rolled back MQPUT counts
The number of messages that were put to the queue, that have been rolled back off the queue, during the SMF interval.
QQSTRBGT – Rolled back MQGET counts
The number of messages destructively read from the queue, that have been rolled back onto the queue, during the SMF interval.
[MQ 9.4.3 Jun 2025]QQSTOCPA – Context propagated from environment on MQPUT
The number of times, in the interval, that trace context was automatically propagated from the application environment to the message on MQPUT.
[MQ 9.4.3 Jun 2025]QQSTOCGA – Context propagated to environment on MQGET

The number of times, in the interval, that trace context was automatically propagated from the message to the application environment on destructive MQGET.

[MQ 9.4.3 Jun 2025]QQSTOAHC – Context discarded on MQPUT, message already had context
The number of times, in the interval, that trace context from the environment was discarded on MQPUT because the message already had context.
[MQ 9.4.3 Jun 2025]QQSTOCPD – Incorrect traceparent on MQPUT
The number of times, in the interval, that an incorrectly formatted traceparent property was removed from the message and discarded during MQPUT. Producer spans are not generated.
[MQ 9.4.3 Jun 2025]QQSTOCMP – Context discarded on MQPUT, would exceed MAXPROPL
The number of times, in the interval, that trace context from the environment was discarded during MQPUT because adding it to the message would exceed the MAXPROPL value for the queue manager.
[MQ 9.4.3 Jun 2025]QQSTOCGD – Context discarded on MQGET
The number of times, in the interval, that invalid trace context was discarded from the message during MQGET.
[MQ 9.4.3 Jun 2025]QQSTOCPS – tracestate discarded on MQPUT
The number of times, in the interval, that tracestate was truncated or discarded during automatic propagation from the environment to the message on MQPUT. IBM MQ supports a maximum of 512 bytes of tracestate.
[MQ 9.4.3 Jun 2025]QQSTOCGS – tracestate discarded on MQGET
The number of times, in the interval, that tracestate was truncated or discarded during automatic propagation from the message to the environment on MQGET. IBM MQ supports a maximum of 512 bytes of tracestate.
[MQ 9.4.3 Jun 2025]QQSTOSCS – consumer spans scheduled for emission
The number of consumer spans scheduled for emission in the interval.
[MQ 9.4.3 Jun 2025]QQSTOSPS – producer spans scheduled for emission
The number of producer spans scheduled for emission in the interval.
[MQ 9.4.3 Jun 2025]QQSTOSNS – sampled bit off
The number of times, in the interval, that a message had trace context on MQPUT but sampled bit was off so a producer span was not generated.
[MQ 9.4.3 Jun 2025]QQSTOCDA – context discarded on MQGET, application cannot accept properties
The number of times, in the interval, that a message had context that was discarded on MQGET because of OTELPCTL(AUTO) processing or because application cannot accept properties.
[MQ 9.4.3 Jun 2025]QQSTOSPL – long running transaction limit reached on MQPUT
The number of messages, in the interval, that had trace context, but a producer span was not emitted due to the span limit for long running transactions being reached.
[MQ 9.4.3 Jun 2025] QQSTOSCL – long running transaction limit reached on MQGET
The number of messages, in the interval, that were got from the queue that had trace context, but no consumer span was emitted due to the span limit for long running transactions being reached.
[MQ 9.4.3 Jun 2025]QQSTOSFS – span storage limit reached
The number of spans, in the interval, that could not be emitted because span storage limit was reached.