Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья поможет вам найти способ обойти проблему, из-за которой адаптер MQSeries перестает извлекать сообщения из диспетчера очередей MQSeries после переноса активного диспетчера очередей на другой узел кластера.
Исходная версия продукта: BizTalk Server 2020, BizTalk Server 2016, BizTalk Server 2013, BizTalk Server 2010, BizTalk Server 2009
Исходный номер базы знаний: 893059
Симптомы
Вы настраиваете адаптер Сервера Microsoft BizTalk для MQSeries для получения сообщений от диспетчера кластеризованных очередей MQSeries. Если диспетчер очередей переходит на другой узел кластера, адаптер MQSeries больше не получает сообщения из кластеризованной очереди. При возникновении этого поведения в журнале приложений регистрируется следующее событие:
Тип события: предупреждение
Источник событий: BizTalk Server 20xx
Категория событий: BizTalk Server 20xx
Идентификатор события: 5740
Дата: 12.31.2006 Время: 11:12:13
Пользователь: нет данных
Компьютер:
Описание. Адаптер "MQSeries" вызвал сообщение об ошибке. Сведения "Ошибка, обнаруженная при открытии диспетчера очередей, имя = MYQMNAME, код причины = 2059.".
Примечание.
В этой записи <20xx> журнала представляет фактический номер версии и <MYQMNAME> представляет фактическое имя диспетчера очередей.
Обходное решение
Чтобы обойти эту проблему, создайте запланированную задачу на обоих узлах. Для этого выполните следующие шаги.
На активном узле откройте Services.msc. Вы должны увидеть две службы MSDTC: один из них является локальным и не имеет GUID, а один из них кластеризован и имеет GUID.
Из командной строки с повышенными привилегиями запустите следующую команду:
sc queryex | find /I "Transaction"Выходные данные команды содержат GUID, который необходимо использовать для скрипта в этой процедуре. GUID:
Distributed Transaction Coordinator (01234567-89ab-cdef-0123-456789abcdef)Сохраните следующий код в файл и назовите файл Shutdownmqadapter.vbs. Файл можно сохранить на любом диске, отличном от диска кворума.
Примечание.
В этом коде указанный GUID (
01234567-89ab-cdef-0123-456789abcdef) является местозаполнителем. Замените этот GUID фактическим кластеризованным GUID MSDTC, который вы указали на шаге 2.Option Explicit On Error Resume Next Dim sComputerName, oWMIService, colRunningServices, oService, colProcessList, objProcess If Wscript.Arguments.Count = 0 Then sComputerName = "." Call ServStat Wscript.Quit End If Sub ServStat Set oWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & sComputerName& "\root\cimv2") Set colRunningServices = oWMIService.ExecQuery _ ("Select * from Win32_Service where DisplayName='Distributed Transaction Coordinator (01234567-89ab-cdef-0123-456789abcdef)'") For Each oService in colRunningServices 'Wscript.Echo oService.DisplayName & VbTab & oService.State If (oService.State="Stopped") Then 'Wscript.Echo "Stopped" 'find the dllhost Set colProcessList = oWMIService.ExecQuery ("SELECT * FROM Win32_Process WHERE Name = 'DLLHOST.EXE'") For Each objProcess in colProcessList If inStr(objProcess.CommandLine, "C691D827-19A0-42E2-B5E8-2892401481F5")>0 Then 'Wscript.Echo objProcess.ProcessId Dim objShell Set objShell = CreateObject("WScript.Shell") objShell.Run "cmd /k taskkill /F /PID " & objProcess.ProcessId & "& exit" WScript.Quit End If Next End If Next End SubВыберите "Пуск", введите задачу и выберите планировщик задач в списке результатов.
В планировщике задач выберите действие>"Создать базовую задачу".
Пройдите по шагам мастера, чтобы создать запланированную задачу, которая ежедневно запускает файл Shutdownmqagent.vbs.
Примечание.
На шаге 6 задайте расписание для начала в полночь и повторите каждые 1 минуту в течение 24 часов.
Более старые версии BizTalk могут иметь другой GUID для MQSAgent COM+. У них, возможно, 6D06157A-730B-4CB3-BD11-D48AC6B8A4BB вместо C691D827-19A0-42E2-B5E8-2892401481F5. Поэтому после обновления продукта может потребоваться изменить существующий скрипт.
Дополнительная информация
Даже если диспетчер очередей IBM MQ работает в качестве кластеризованного ресурса в роли в отказоустойчивом кластере, не следует кластеризовать приложение MQSAgent COM+. Это связано с тем, что DLLHost.exe, на котором выполняется приложение COM+, не учитывает кластер. Необходимо установить и настроить приложение MQSAgent COM+ на обоих узлах.
Чтобы обеспечить высокий уровень доступности, убедитесь, что вы используете кластеризованный ресурс диспетчера очередей IBM MQ и кластеризованный ресурс MSDTC в одной роли кластера вместе со скриптом мониторинга из раздела обходного решения .
Применяется к
- BizTalk Server 2020 Enterprise
- BizTalk Server 2016 Enterprise
- BizTalk Server 2013 R2 Enterprise
- BizTalk Server 2013 Enterprise
- BizTalk Server Enterprise 2010
- BizTalk Server 2009 Enterprise