Как настроить универсальную службу в отказоустойчивом кластере Windows для использования кластеризованного вместо локального MSMQ
Под управлением Windows 2008 R2 Datacenter. У нас есть службы Windows, которые получают сообщения через MSMQ. Мы добавляем кластер из двух узлов и пытаемся запустить там сервисы. Мы добавили очередь сообщений через диспетчер отказоустойчивости кластеров и создали на нем несколько тестовых очередей. Мы можем отправлять в кластерные очереди с других машин.
Затем мы добавили наши службы в кластерную службу MSMQ в качестве ресурсов общих служб. Но мы не можем заставить службы использовать кластерный MSMQ вместо локального MSMQ их узла.
В каждой статье, которую я нашел по этой теме, говорится, что вам просто нужно добавить ту же зависимость сетевого имени в общую службу, которая используется службой очередей, и установить флажок "Использовать сетевое имя для имени компьютера" на вкладке "Общие" в свойства сервиса. Мы сделали это, но они все еще используют свои локальные службы очередей.
Если я перевожу ресурс службы в автономный режим, останавливаю локальную службу очереди сообщений, затем возвращаю ресурс службы в оперативный режим, вместе с ним запускается локальная служба очереди сообщений, так что он определенно каким-то образом связан, но я не вижу, где.
1 ответ
Оказывается, вы не можете просто добавить зависимость к службе через диспетчер отказоустойчивости кластеров. Нам также необходимо настроить службу на каждом локальном узле с помощью командной строки, как описано в этом ответе:
В нашем случае команда была:
sc config OurService зависимость = MSMQ$MSMQ-OurClustMsmq (обратите внимание на пробел после знака =)
Я полагаю, что это дублирует вопрос о сбое сервера...
Обновление: на самом деле, зависимости, добавленные в диспетчер отказоустойчивости кластеров, работали бы просто отлично, но служба сопровождалась собственной (локальной) зависимостью MSMQ. В конце концов, это было решено не путем добавления явной зависимости к кластерному MSMQ, а путем удаления зависимости от локального MSMQ:
sc config OurService зависимость = /