Poison messages task

Poison messages are message that can’t be processed, and block your application from processing other messages from a queue. When QueueMonitor detects such messages it can move them somewhere else, to be checked manually later from QueueExplorer, and raise appropriate alert. For more about poison messages, read this article:

Surviving poison messages

This task periodically monitors your queues for poison messages.

Source

Choose one or more queues for poison message checking.

Picking source queues

Detection settings

Configure how and when message is declared as poisonous.

Message is declared poisonous after (h:mm:ss) interval

Specify how long it takes QueueMonitor to declare that message is poisonous. This setting is a trade-off and depends on your usage scenario. If you put this interval too high, poison messages will stay longer in queue, blocking good messages. On positive side, it will allow more time for any temporary issue to go away - in case problem was not with message itself but elsewhere. On the other hand, if you configure this interval to be short, bad messages will be quickly put away but they will also be moved away even if processing had some temporary problem and messages could be successfully processed if they were left a bit longer in a queue.

Check interval

QueueMonitor has to check one or more top messages from a queue for this task to work. Increasing this interval reduces load on MSMQ but increases minimal delay before alert is raised.

How to check messages

QueueMonitor supports two different detection algorithms.

Check if top message stays for too long

Only top message is checked. It’s compared with top message from previous checks. If it stays on top of queue for too long, it’s declared poisonous. Each following message starts time count from zero.

Use ArrivedTime property on all messages

Message’s ArrivedTime property is used to check if message is too old. Multiple messages could be declared poisonous within single check, even if they were just waiting in a queue because first message was blocked.

Actions

Configure actions which will be performed on poison messages.

Message actions

Alerts

Configure actions which will be performed when poison message is detected.

Alert actions