Clustered MSMQ - Invalid path name in queue when sending

We have two node clusters running Windows 2008 R2. I installed MSMQ with integration options for the message server and directory services on both nodes. I created an MSMQ cluster resource called TESTV0Msmq (we use transactional queues, so the DTC resource was created earlier).

The virtual resource decides correctly when I ping it.

I created a small console executable in C # using the MessageQueue constructor so that we can send basic messages (to both transactional and non-transactional queues).

The following paths work from the active node :

. \ Private $ \ clustertest

{computer_name} \ private $ \ clustertest

but TESTV0Msmq \ private $ \ clustertest returns "Invalid queue path name".

According to this article: http://technet.microsoft.com/en-us/library/cc776600(WS.10).aspx

Should I be able to do this?

In particular, queues can be created on a virtual server and messages can be sent to them. Such queues are addressed using the VirtualServerName \ QueueName syntax.

+2
cluster-computing msmq
source share
1 answer

Sounds like a classic MSMQ clustering problem:

MSMQ Application Clustering - Rule # 1

If you can access ". \ Private $ \ clustertest" or "{machinename} \ private $ \ clustertest" from the active node, then this means that there is a queue called clustertest hosted by the LOCAL MSMQ queue manager. This does not work on the passive node, because there is not yet a queue named clustertest. If you fail on a resource, it must fail.

Instead, you need to create a queue in a cluster resource. TESTV0Msmq \ private $ \ clustertest does not work because the queue was created on the local computer and not on the virtual machine.

Greetings
John Broadwell

+1
source share

All Articles