Data queues are designed to provide fast communications between programs. You might have a dozen programs feeding entries onto a queue and a single program receiving those entries. Problems begin to arise when that single receiver program fails and thus the data queue starts to fill up. Unfortunately the contents of data queues are almost invisible, but this is where Robot Monitor can help.
Data Queue Monitors
Robot Monitor has two monitors that specifically assist with data queue monitoring:
- Data queue entries: the number of entries on a specific data queue.
- Data queue percent: The percentage of capacity used by entries waiting on a specific data queue.
Data Queue Entries
The following window shows how Robot Monitor can monitor for the number of entries for a specific data queue:
In this example, we are monitoring queue MMTCPDTAQ in library MSM. One of the features of the product is that it can go out to the systems and locate all the objects available for monitoring. This saves you the aggravation of having to know which queues need to be monitored.
Having defined the queue, we can now look at the threshold:
In our example, we can see that we have a threshold set if the number of entries exceeds 100. Note: The threshold can also be inverted, so that we can also monitor if the number of entries falls below a certain value.
In addition to the number of entries, the monitor also checks the status of the data queue, reporting back on whether the queue is damaged, not found, etc.
Note also the “Msg” column. A value in this column indicates that we wish to send a message to an IBM i message queue when the threshold is exceeded. We can then use Robot Monitor to monitor for this message and send alerts accordingly.
Data Queue Percentage
Data queues have a maximum size and a maximum entry length. From these figures it's possible to calculate the percentage of available capacity for a data queue. Once it reaches 100% it will not accept any more entries.
The same technique can be used to monitor the percentage used for a specific data queue.