Hello,
I am creating a FIFO Solution by using Convoy Pattern in R2. The application works ok. However an issue that I want to get over is related to Zombies Messages. See for more reference(
http://msdn.microsoft.com/en-us/library/ms942189(BTS.10).aspx )
As you know; Convoy Pattern involves a Listen Shape in the FIFO Orchestration.
In my app if 5 minutes elapses before another message is received, the singleton orchestration instance for the receive port writes a warning event to the application log and shuts down. When a new message arrives later a new singleton FIFO orchestration is activated and loops until the next delay is exceeded.
However if a message is arriving to the FIFO instance at the same time when the FIFO instance is being terminated then that message become Zombie.
I have been checking some references to know how this issue could be handled.
Microsft Recommends the following before to terminate the FIFO Instance:
1. Disable the receive location feeding new messages to the singleton FIFO orchestration
2. Use HAT or WMI to query for any remaining messages in the messagebox destined for this orchestration
3. Pass the properly constructed controlled shutdown message to the orchestration via a pre-defined port
4. Perform any clean up operations
5. Complete or terminate the orchestration
Here my questions:
1) How can I get the messages with Inprocess State from MessageBoxDB?
Abdul Rafay recommended me this sample:
http://www.ureader.com/msg/1210554.aspx That sample is pretty good. Unfortunatelly, the sample gets dehydrated instances. I was checking the Message State in Administration Console and realized the Queued Messages have the Inprocess State. In fact, I'm not sure if that is the correct state to get the messages that are waiting to be processed by FIFO instance. Do you know?
2) Is there another sequential pattern to meet the FIFO requirement? I am not sure if the convoy pattern is the only way to process the messages in sequential order!
Thank You
Pablo