wcfmsmqmsmq-wcf

WCF + MSMQ 4 : Who moves a message from retry queue back to the application queue?


This is a simple question, but I was not able to find an answer.

Suppose my message is placed to the retry queue (who creates the retry queue? Is it a WCF or a MSMQ service?)

After 5 minutes (that's my retry delay) that message gets back to the application queue.

Question: who moves a message from retry queue to the application queue after the timeout?

Bonus question: how the delay is being tracked? Does a message get a "moved" timestamp and "retry" timestamp?


Solution

  • According to this article Handling Poison Messages MSMQ 4 provides few new features that allow an application to handle poison messages using subqueues. These features are:

    So it seems like actual move is handled by WCF, not MSMQ; and MSMQ simply now has facilities to support poison messages and retries handling.