Clustered MSMQ - неверный путь к очереди при отправке - PullRequest
2 голосов
/ 19 августа 2011

В Windows 2008 R2 работает кластер из двух узлов.Я установил MSMQ с опциями Сервер очереди сообщений и Параметры интеграции службы каталогов на обоих узлах.Я создал кластерный ресурс MSMQ с именем TESTV0Msmq (мы используем транзакционные очереди, поэтому ресурс DTC был создан ранее).

Виртуальный ресурс разрешается правильно, когда я проверяю его.

Я создал небольшой исполняемый файл консоли в c #, используя конструктор MessageQueue, чтобы позволить нам отправлять базовые сообщения (как в транзакционные, так и в нетранзакционные очереди).

С активного узла эти пути работают:

. \ private $ \ clustertest

{имя_машины} \ private $ \ clustertest

, но TESTV0Msmq \ private $ \ clustertest возвращает «Неверное имя пути к очереди».

Согласно этой статье: http://technet.microsoft.com/en-us/library/cc776600(WS.10).aspx

Я должен быть в состоянии сделать это?

В частности, очереди могутбыть создан на виртуальном сервере, и сообщения могут быть отправлены на них.Такие очереди адресуются с использованием синтаксиса VirtualServerName \ QueueName.

1 Ответ

1 голос
/ 19 августа 2011

Похоже на классическую проблему Clustering MSMQ:

Кластеризация приложений MSMQ - правило # 1

Если вы можете получить доступ к ". \ Private $ \ clustertest" или "{имя_машины} \ private $ \ clustertest "из активного узла, то это означает, что существует очередь с именем clustertest, размещенная менеджером очереди LOCAL MSMQ.Он не работает на пассивном узле, потому что там еще нет очереди с именем clustertest.Если вы отказываете через ресурс, он должен потерпеть неудачу.

Вместо этого вам нужно создать очередь в кластерном ресурсе.TESTV0Msmq \ private $ \ clustertest завершается ошибкой, поскольку очередь была создана на локальной машине, а не на виртуальной машине.

Cheers
John Breakwell

...