Queue data records Version 9.3.1 release
IBM® MQ 9.3.1 enhances the SMF queue statistics records introduced at IBM MQ 9.3.0. The improved statistics include all the DISPLAY QSTATUS information in the record, making it easier for you to monitor usage and performance of your queue over time.
For IBM MQ 9.3.0 use the information in Queue data records.
The format of the queue statistics data record is described in assembler macro thlqual.SCSQMACS(CSQDQQST).
- Queue name (qqstqnam)
- Whether the queue is private or shared (qqstdisp bit on means queue is shared)
- Page set ID where the queue is located, if allocated and a private queue (qqstpsid)
- Bufferpool ID used by the queue, if allocated and a private queue (qqstbpid)
- Queue sharing group (QSG) name, if it is a shared queue (qqstqsgn)
- Coupling facility (CF) structure name, if it is a shared queue (qqstcfst)
- Queue depth at the time when the SMF data was captured (qqstdpth)
- 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. (qqstopct)
- 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. (qqstipct)
- 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 (qqstqtst)
- Interval, in microseconds, between messages being put on the queue and then being destructively read. Value 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 (qqstqtlt)
- 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 measurements collected on this queue manager only (qqstlput)
- Time, in store clock format, at which the last message was retrieved from the queue since the queue manager started. A message being browsed does not count as a message being retrieved. For shared queues, the value shown is for measurements collected on this queue manager only (qqstlget)
- Age, in seconds, of the oldest message on the queue (qqstmage)
- Indicates whether there are any uncommitted changes (puts and gets) pending for the queue (qqstuncm)
- When the record is for a private queue, the qqstqsgn and qqstcfst fields are blank.
- When the record is for a shared queue, or the record is for a private queue that does not have a
page set and bufferpool assigned to it, the values of qqstpsid and
qqstbpid are
-1
(x'FFFF')
.
All information provided in the queue statistics record are the correct values at the time of the SMF data collection. For example, if during the interval a queue's information is changed and it moves to a new page set, the new page set ID is provided in the record.
- qqstopct (OPPROCS)
- qqstipct (IPPROCS)
- qqstqtst (QTIME)
- qqstqtlt (QTIME)
- qqstlput (LPUTDATE, LPUTTIME)
- qqstlget (LGETDATE, LGETTIME)
- qqstmage (MSGAGE)
As well as the entries in the preceding list, there is a flag in the queue statistics record that indicates whether the record contains full or partial data (qqstpart). 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'
.
Example data
Queue Disp PSID BPID QSG CF Dpth OPPROC IPPROC QTIMES QTIMEL LPUT LGET MSGAGE UNCOM RecType
Example.Queue.Private Private 2 4 67 2 1 17567 17453 DBB3E8D820B60605 DBB3E8D820B60605 156 YES FULL
Example.Queue.Shared Shared -1 -1 QSG1 CFSTRUCTURE1 12 1 3 10569 9875 DBB3E8D820B60605 DBB3E8DCEC8C0114 14 NO FULL
The example data shows two full queue records, one for a private queue and one for a shared queue.
In the private queue record (Example.Queue.Private
) the queue can be seen using
page set 2 and bufferpool 4. You can use this information in conjunction with page set and
bufferpool statistics to give a better view of what is happening on the system. As the queue is
private, the QSG name and the CF Structure name are blank. The current depth of the queue is 67, two
handles are currently open for output and one is currently open for input. The short-term value for
QTIME is 17567 microseconds and the longer-term value is 17453 microseconds. The last put time and
last get time, in store clock format, are both DBB3E8D820B60605
. The oldest message
on the queue has currently been there for 156 seconds. There are uncommitted changes currently
pending for this queue and the record is a full record.
In the shared queue record (Example.Queue.Shared
) the queue exists in the QSG
'QSG1
' and is located in 'CFSTRUCTURE1
'. As the queue is shared
the page set ID and bufferpool ID are -1
. The queue has a current depth of 12, one
handle is currently open for output and three are currently open for input. The short-term value for
QTIME is 10569 microseconds and the longer-term value is 9875 microseconds. The last put time, in
store clock format, is DBB3E8D820B60605
and the last get time is
DBB3E8DCEC8C0114
. The oldest message on the queue has currently been there for 14
seconds. There are no uncommitted changes currently pending for this queue and the record is a full
record.
Queue Disp PSID BPID QSG CF Dpth OPPROC IPPROC QTIMES QTIMEL LPUT LGET MSGAGE UNCOM RecType
Example.Queue.Shared Shared -1 -1 QSG1 CFSTRUCTURE1 0 1 1 22569 25896 DBB3F45BDA390805 DBB3F4B9828DDC05 0 NO PARTIAL
The example data shows a partial record for a shared queue. The information contained in the
record for the disposition, QSG and CF Structure are all valid. The current depth of the queue and
the message age are displayed as '0
' and uncommitted is marked as NO, as there was
an issue obtaining the correct information from the coupling facility. Therefore, the record is
marked as PARTIAL to indicate the depth might not be correct.
Note that when formatting the data with IBM MQ SupportPac MP1B, QSTAT DD card, the potentially erroneous current depth, message age, and uncommitted information message are not formatted.