Доступ к кластерному MSMQ через приложение - PullRequest
0 голосов
/ 03 февраля 2012

Мы переходим от некластеризованной к кластерной среде MSMQ Windows Server 2008 R2 SP1 с 2 узлами. Ранее, когда оно было некластеризованным, мы написали приложение Windows Form для .NET 3.5 C #, чтобы помочь нам управлять нашей средой (поэтому она выполняет такие задачи, как создание очередей с правильными разрешениями, чтение сообщений, пересылка сообщений и т. Д.). Я хотел бы, чтобы это приложение работало с нашим новым кластером.

Согласно этим статьям,

http://blog.terranspot.com/2011/07/accessing-microsoft-message-queuing.html
http://blogs.msdn.com/b/johnbreakwell/archive/2008/02/18/clustering-msmq-applications-rule-1.aspx

Я понимаю, что мне нужно добавить приложение в качестве ресурса в кластере, так как когда я этого не делаю, я получаю доступ к экземпляру MSMQ узла. Чтобы помочь с отладкой, я отключил локальные службы MSMQ. Однако независимо от того, что я делаю, программа продолжает пытаться получить доступ к экземпляру узла. Я добавил его как ресурс приложения (с командной строкой «Q: \ QueueManagerConsole.exe». Q: \ - это диск, который совместно используется двумя узлами, входящими в отказоустойчивый кластер), но при запуске через проводник Windows он не видит экземпляр кластера, только локальный. Я не видел способа выполнить программу из Failover Cluster Manager, поэтому я не понимаю, что я делаю неправильно. Я переключил код для доступа ко всему через "." (так MessageQueue.GetPrivateQueuesByMachine (".")), который, по моему скудному пониманию, заключается в том, как вы получаете доступ к локальной очереди. Может ли кто-то объяснить, предпочтительно, действуя так, как будто я понятия не имею, что я делаю, на a. если это возможно и б. КАК сделать это правильно?

Ответы [ 3 ]

0 голосов
/ 08 февраля 2012

Наконец-то я заработал, создав ярлык приложения и поместив его на сервер, который фактически обращался к кластерным очередям.

0 голосов
/ 10 марта 2014

Попробуйте добавить в среду, используемую вашим приложением, следующие переменные среды:

_CLUSTER_NETWORK_NAME_ _CLUSTER_NETWORK_HOSTNAME_

с именем сервера кластера в качестве значения.Он работал в системе, которая разрабатывается моей командой - он содержит несколько служб, которые должны были обращаться к кластерному MSMQ, и это решило проблему.

0 голосов
/ 06 февраля 2012

Привет, я сделал нечто подобное некоторое время назад. Попробуйте развернуть службу в отказоустойчивом кластере это заставило меня:

  • настроить приложение для использования кластерного msmq
  • настроить приложение как кластерный ресурс
  • настроить приложение для подключения под именем хоста
  • установить набор разрешений, требуемый для транспорта

По крайней мере, это даст вам хорошую отправную точку.

...