QueueMonitor keeps a constant watch on your MSMQ and its queues, and send you alerts or performs automatic fixes whenever something is wrong.
By monitoring size of queues you can quickly react if messages start to pile up somewhere.
Queue journals are useful for keeping history of processed messages. However, if journal fills up its quota messages received after that won't be recorded. QueueMonitor can watch for this and automatically move historic messages to backup files, freeing up journal.
QueueMonitor can use heartbeat messages to check full send/receive roundtrip. This tests MSMQ more thoroughly than simple service check.
This includes your application into heartbeat checking, since it should be set up to return received heartbeat messages back to QueueMonitor.
Poison messages are one of biggest issues with queuing. Single bad message can sit on top of the queue and prevent all other healthy messages to be processed. QueueMonitor can detect poison messages, move them to a subqueue or a file, and send email to admin. That way following messages will be processed immediately, and broken messages could be handled manually later.
QueueMonitor constantly monitors MSMQ service. If it doesn't start because of AD issues or stops working for any other reason QueueMonitor will raise an alert and pause all other monitoring tasks until Message Queuing works again.
MSMQ puts undelivered messages to system dead letter queues. It's vital to know as soon as possible that messages ended up there.
When sending messages to remote machine, MSMQ temporary puts messages in outgoing queues. If messages are stuck there for too long it's a sign that there are connectivity issues. QueueMonitor can raise alert in such cases, allowing you to fix it as soon as possible.
QueueMonitor from version 1.5+ can monitor multiple agents from single Admin Console. Shared tasks allow you to configure single task and apply it to all servers at once.
You can specify queues using * and ? wildcards, making it easy to use single task to monitor all queues of same type - error and deadletter queues, etc.