Clustered MSMQ - Invalid queue path name when sending

邮差的信 提交于 2019-12-11 01:13:34

问题


We have a two node cluster running on Windows 2008 R2. I've installed MSMQ with the Message Queue Server and Directory Service Integration options on both nodes. I've created a clustered MSMQ resource named TESTV0Msmq (we use transactional queues so a DTC resource had been created previously).

The virtual resource resolves correctly when I ping it.

I created a small console executable in c# using the MessageQueue contructor to allow us to send basic messages (to both transactional and non transactional queues).

From the active node these paths work:

.\private$\clustertest

{machinename}\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

I should 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.


回答1:


Sounds like classic Clustering MSMQ problem:

Clustering MSMQ applications - rule #1

If you can access ".\private$\clustertest" or "{machinename}\private$\clustertest" from the active node then that means there is a queue called clustertest hosted by the LOCAL MSMQ queue manager. It doesn't work on the passive node because there is no queue called clustertest there yet. If you fail over the resource, it should fail.

You need to create a queue in the clustered resource instead. TESTV0Msmq\private$\clustertest fails because the queue was created on the local machine and not the virtual machine.

Cheers
John Breakwell



来源:https://stackoverflow.com/questions/7115232/clustered-msmq-invalid-queue-path-name-when-sending

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!