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}.

Schedule

How often to perform a check.

Configuring task schedule

On failure

Specify list of alert actions which will be performed when check fails. By default, global default actions will be executed.

Alert actions

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.

Alert actions