Although there were already several posts on querying AQ, like “in the queue” and “enqueue“, the next one is great when monitoring queues. We are using this to monitor AQ, especially for Oracle ESB (hence the commented addition):
1 2 3 4 5 6 7 8 9
SELECT aq.name , aq.queue_table , aq.queue_type , v$aq.* FROM v$aq , all_queues aq WHERE aq.qid = v$aq.qid -- use if looking for ESB AQ: and aq.queue_table = 'ESB_JAVA_DEFERRED'; ;
The query will result in something like:
It contains the following metrics:
- Waiting – Number of waiting message;
- Ready – Number of messages with status ready;
- Expired – Number of expired messages;
- Total Wait – Total waiting time per queue;
- Average Wait – Average waiting time per queue.
A describtion of the AQ and Streams views can be found here.