Кто-нибудь устанавливал NServiceBus на кластерный сервер Microsoft? - PullRequest
1 голос
/ 18 марта 2010

Обновление: Хорошо, после того, как я исключил, что MSDTC не настроен в качестве ресурса кластера (doh!), Я смог запустить свою программу, и все выглядело хорошо, но я не смог успешно отправлять на нее сообщения. После копания я обнаружил, что хотя частные очереди были созданы на одном узле кластера, их не было на другом узле (я запускал NServiceBus.Host.exe из командной строки) и, следовательно, не были видны приложениям, использующим кластер название. Я попытался создать универсальное приложение из NServiceBus.Host.exe и добавить его в группу кластеров, но это просто привело к отказу группы кластеров. Мой вопрос до сих пор: кто-нибудь успешно запускал NServiceBus в кластерной среде?


Я пытаюсь установить NServiceBus на кластерный хост win2k3. Предоставленная утилита конфигурации (runner.exe) выдает некоторые ошибки, которые я не уловил, и теперь она работает правильно. При запуске NServiceBus.Host.exe я получаю эту ошибку несколько раз:

System.Transactions.TransactionAbortedException: транзакция прервана. ---> System.Transactions.TransactionManagerCommunicationException: сбой связи с базовым менеджером транзакций. ---> System.Runtime.InteropServices.COMException (0x8004D01B): диспетчер транзакций недоступен. (Исключение из HRESULT: 0x8004D01B) на System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy (String NodeName, Guid resourceManagerIdentifier, IntPtr managedIdentifier, Boolean & nodeNameMatches, UInt32 & whereaboutsSize, CoTaskMemHandle & whereaboutsBuffer, IResourceManagerShim & resourceManagerShim) в System.Transactions.Oletx.DtcTransactionManager.Initialize () --- Конец внутренней трассировки стека исключений --- в System.Transactions.Oletx.OletxTransactionManager.ProxyException (COMException comException) в System.Transactions.Oletx.DtcTransactionManager.Initialize () в System.Transactions.Oletx.DtcTransactionManager.get_ProxyShimFactory () в System.Transactions.Oletx.OletxTransactionManager.CreateTransaction (свойства TransactionOptions) в System.Transactions.TransactionStatePromoted.EnterState (InternalTransaction tx) --- Конец внутренней трассировки стека исключений --- в System.Transactions.TransactionStateAborted.CheckForFinishedTransaction (InternalTransaction tx) в System.Transactions.EnlistableStates.Promote (InternalTransaction tx) в System.Transactions.Transaction.Promote () в System.Transactions.TransactionInterop.ConvertToOletxTransaction (транзакция транзакции) в System.Transactions.TransactionInterop.GetDtcTransaction (транзакция транзакции) в System.Messaging.MessageQueue.StaleSafeReceiveMessage (таймаут UInt32, действие Int32, свойства MQPROPS, перекрытие NativeOverlapped *, ReceiveCallback receiveCallback, CursorHandle cursorHandle, транзакция IntPtr) в System.Messaging.MessageQueue.ReceiveCurrent (тайм-аут TimeSpan, действие Int32, курсор CursorHandle, фильтр MessagePropertyFilter, внутренняя транзакция MessageQueueTransaction, MessageQueueTransactionType TransactionsType) в System.Messaging.MessageQueue.Receive (Тайм-аут TimeSpan, MessageQueueTransactionType TransactionsType) в NServiceBus.Unicast.Transport.Msmq.MsmqTransport.ReceiveMessageFromQueueAfterPeekWasSuccessful () в d: \ BuildAgent-02 \ work \ 672d81652eaca4e1 \ src \ impl \ unicast \ unicast * 55 *.

Кто-нибудь успешно разместил NServiceBus на кластерном сервере, если да, то как у вас это получилось?

Ответы [ 3 ]

3 голосов
/ 24 марта 2010

Хорошо, так что я наконец-то получил его и стал работать как универсальное приложение. Я нашел следующие ошибки:

  1. Вам необходимо добавить .net Framework функция или роль сервера приложений на рядовые серверы
  2. Вам необходимо добавить и MSDTC, и ресурс MSMQ. в кластер (MSMQ потребует что у вас MSDTC)
  3. После добавления общего приложения для NServiceBus.Host.exe, вам понадобится войти и изменить свойства универсального приложения для проверки «Использовать сетевое имя для компьютера» имя "коробка так, чтобы очки NServiceBus на имя кластера для использования MSMQ не на рядовой сервер, который в настоящее время работает.
3 голосов
/ 22 октября 2010

Для тех, кто ищет руководство, я написал пост в блоге, в котором подробно описывается этот процесс.

Извлечение Развертывание NServiceBus в отказоустойчивом кластере Windows .

Я использую Windows Server 2008, но считаю, что должно применяться большинство тех же правил.

1 голос
/ 18 марта 2010

Хорошо, это помогает на самом деле настроить ресурс MSDTC в кластере, если у вас есть и тот, и ресурс MSMQ, то все работает, почти, см. Обновление на вопрос.

...