Heartbeat check
This task periodically sends messages and then receives them. This assures that MSMQ works completely, for both sending and receiving.
Simple mode
In simple mode QueueMonitor uses single queue for both receiving and sending. That queue should not be used for anything else!
Advanced mode
In advanced mode QueueMonitor works together with your application, thus checking that both your application and MSMQ system are alive. In this mode heartbeat messages are sent to one queue, but received on another. It’s up to your application to listen on first queue and resend all heartbeat messages to second one. Heartbeat message answers your application sends has to contain heartbeat token which came from QueueMonitor - in message’s label and/or body.
Sending queue
Queue where QueueMonitor sends heartbeat messages. In simple mode it also performs receive on that queue.
Transactional status
MSMQ requires us to know whether queue is transactional or not when we send to it. We can find that out for local queues, but if you’re sending messages to remote machine you’ll have to manually specify it.
Receiving queue
Queue where QueueMonitor expects heartbeat messages. This is only used in “Advanced” mode, when outside application has to answer to heartbeats.
Timeout
If heartbeat message is not received within this period, QueueMonitor will raise an alarm.
Heartbeat message
Heartbeat message must contain token somewhere in label or body. We use it to identify exact heartbeat. You can customize message label and body to make it easier for your application to handle it, as long as either one of them contains token. Token is represented with macro value {heartbeat_token}.
On failure
Specify list of alert actions which will be performed when check fails. By default, global default actions will be executed.
On recovery
Specify list of alert actions which will be performed when check succeeds again for the first time after failure. By default, global default actions will be executed.