How do you ‘verify’ that a message sent using MSMQ to a private local queue was actually delivered? I’m especially thinking of a scenario where the listener (a C# service in my case) is not running and therefore delivery can’t be successful.
Share
You can only guarantee that it can get to the queue without taking extra steps. To deal with the “not running receiver” scenario, you would need to code the receiver to send a message back to the server when it processes the message. The original sender would be responsible for tracking the sent messages and verifying that the client has recieved them.
That’s one of the decisions you should be taking when deciding whether or not to use MSMQ as opposed to a remoting or a web service scenario. For example, we had a project used for notifying all of our retail locations when an emergency occurred (such as a product recall/food safety issue.) We needed to know immediately if the store’s listener was running so we chose remoting, and when the sender received an error indicating one of the listeners was not listenting, we would need to pick up the phone and call.
Just something to keep in mind.
Edit – clarification
I was really giving out two options above.