Как настроить универсальную службу в отказоустойчивом кластере Windows для использования кластеризованного вместо локального MSMQ

Под управлением Windows 2008 R2 Datacenter. У нас есть службы Windows, которые получают сообщения через MSMQ. Мы добавляем кластер из двух узлов и пытаемся запустить там сервисы. Мы добавили очередь сообщений через диспетчер отказоустойчивости кластеров и создали на нем несколько тестовых очередей. Мы можем отправлять в кластерные очереди с других машин.

Затем мы добавили наши службы в кластерную службу MSMQ в качестве ресурсов общих служб. Но мы не можем заставить службы использовать кластерный MSMQ вместо локального MSMQ их узла.

В каждой статье, которую я нашел по этой теме, говорится, что вам просто нужно добавить ту же зависимость сетевого имени в общую службу, которая используется службой очередей, и установить флажок "Использовать сетевое имя для имени компьютера" на вкладке "Общие" в свойства сервиса. Мы сделали это, но они все еще используют свои локальные службы очередей.

Если я перевожу ресурс службы в автономный режим, останавливаю локальную службу очереди сообщений, затем возвращаю ресурс службы в оперативный режим, вместе с ним запускается локальная служба очереди сообщений, так что он определенно каким-то образом связан, но я не вижу, где.

1 ответ

Решение

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

https://serverfault.com/questions/24821/how-to-add-dependency-on-a-windows-service-after-the-service-is-installed

В нашем случае команда была:

sc config OurService зависимость = MSMQ$MSMQ-OurClustMsmq (обратите внимание на пробел после знака =)

Я полагаю, что это дублирует вопрос о сбое сервера...

Обновление: на самом деле, зависимости, добавленные в диспетчер отказоустойчивости кластеров, работали бы просто отлично, но служба сопровождалась собственной (локальной) зависимостью MSMQ. В конце концов, это было решено не путем добавления явной зависимости к кластерному MSMQ, а путем удаления зависимости от локального MSMQ:

sc config OurService зависимость = /

Другие вопросы по тегам