I'm using MSMQ version 4 and have a transactional queue. I'm using WCF to listen to the queue for incoming messages.
While processing there is a dependency on third party components that might fail or be unavailable for a longer period of time. To compensate for this I use the poison message handling functionality in MSMQ 4 (http://msdn.microsoft.com/en-us/library/aa395218.aspx) to retry messages x amount of times with y amount of wait time.
However in certain situations I know the input message is invalid/poisoned. When this occurs throwing exceptions would make the message follow the poison message handling routine as all other messages with all the retries and wait times. But when I know the message is poisoned I don't see a reason to retry and wait the configured time for it to be handled by the poison queue.
Is there any way to explicitly mark a message as poisoned so it won't follow the configured retry flow and moves to the poison queue immediately?