I have a transactional queue called myPrivateTransactionalQueue hosted on a Win2008R2 server called myReceivingServer which should receive messages from another server called mySendingServer. When the mySendingServer sends a message, an entry appears in the MSMQ log on mySendingServer which says:
Message with ID {f748cc48-8017-4a64-9ff6-61c68564445f}\56008 was sent to queue DIRECT=OS:<myReceivingServerName >\private$\<myPrivateTransactionalQueue>
However, myReceivingServer, in the MSMQ log there is a single entry:
Message came over network
However the message is not being delivered to myPrivateTransactionalQueue on myReceivingServer. Things I have looked at so far:
- Application event log on myReceivingServer has no errors
- On myPrivateTransactionalQueue "Everyone" and "Anonymous Logon" are granted Full Control
- Transactional dead letter queue on myReceivingServer is empty
- Temporary outgoing queue on mySendingServer is empty
I am going a bit mental here because I cannot account for the message at all. Any help would be much appreciated.
Edit: I found this link http://blogs.msdn.com/b/johnbreakwell/archive/2010/01/22/why-does-msmq-keep-losing-my-messages.aspx so I will see if this explains my problem. Will post back with any resolution.
Edit2: OK I hate this but the problem just kind of sorted itself out. I didn't change anything in the above configuration. But I now have it working.
Edit3: This is a comment from John Breakwell: To ensure you know the root cause when you see this problem again (and there's no reason to believe it has gone for good), you need to enable some options, such as negative source journaling as mentioned in my blog. Now you know your system isn't resilient, it's a good time to fix it