I have a problem with an app that uses msmq: on a specific machine this app can send msmq messages but does not seem to receive any messages.
This is happening only on a specific machine (using XP).
How can I debug the problem? Where can I find clues as to where the problem is occuring and why?
On the remote machine the messages are stuck in the outgoing queue.
This machine used to be able to receive messages and one day it stopped working. It was not obvious what happened on the machine that could be correlated to the loss of the ability to receive messages.
I have checked that port 1801 is open.
(I didn’t find anything in the event viewer)
When you say “receive” messages, do you mean you are unable to remove messages from a queue, or that no messages can be delivered to the machine?
Most common cause is permissions – easiest test for that is to set Full Control for Everyone and Anonymous Logon.
=== 4th Feb ====
If the messages are stuck in the outgoing queue then the state of the queue is important.
If it is “connected” then the problem is with getting the messages to be accepted by the destination queue manager.
If it is instead “waiting to connect” or similar then there is a problem instead at the network connection level.
As the messages are waiting to be delivered, there is no error state so no logging will help here. MSMQ expects messages to be delayed so nothing is going wrong here as it is assumed the blockage will clear at some point in the future. Eventually the messages will time out and be discarded unless you are using Negative Source Journaling.
=== 8th Feb ====
OK, if “DIRECT=TCP:1.2.3.4\Private$\MyQueue” works but “DIRECT=OS:servername\Private$\MyQueue” doesn’t then it looks like a name resolution issue.
Check the sending machine for the IP address of the DNS server it is using for name resolution; check this server for entries for the destination machine name. On the sending machine check the HOSTS and LMHOSTS files for any entries for the destination machine name. You could even try adding an entry to HOSTS that maps destination machine name to IP address.
Cheers
John Breakwell