El adaptador de MQSeries ya no recupera mensajes de un administrador de colas de MQSeries agrupado cuando el administrador de colas conmuta por error a otro nodo de clúster
Este artículo le ayuda a solucionar el problema en el que EL ADAPTADOR DE MQSeries ya no recupera mensajes de un administrador de colas de MQSeries agrupado cuando el administrador de colas conmuta por error a otro nodo de clúster.
Versión del producto original: BizTalk Server 2020, BizTalk Server 2016, BizTalk Server 2013, BizTalk Server 2010, BizTalk Server 2009
Número KB original: 893059
Síntomas
Configure microsoft BizTalk Server adapter para MQSeries para recibir mensajes de un administrador de colas de MQSeries agrupado. Si el administrador de colas conmuta por error a otro nodo de clúster, el adaptador de MQSeries ya no recupera los mensajes de la cola agrupada. Cuando se produce este comportamiento, se registra el siguiente evento en el registro de aplicaciones:
Tipo de evento: Advertencia
Origen de eventos: BizTalk Server 20xx
Categoría de evento: BizTalk Server 20xx
Identificador de evento: 5740
Fecha: 12/31/2006 Hora: 11:12:13 a.m.
Usuario: N/A
Equipo:
Descripción: el adaptador "MQSeries" ha producido un mensaje de error. Detalles "Error encontrado al abrir nombre del administrador de colas = Código de motivo MYQMNAME = 2059".
Nota
En esta entrada de registro, <20xx> representa el número de versión real y representa el nombre real del Administrador de <MYQMNAME> colas.
Solución alternativa
Para evitar este problema, cree una tarea programada en ambos nodos. Para ello, siga estos pasos:
En el nodo activo, abra Services.msc. Debería ver dos servicios MSDTC enumerados: uno que es local y no tiene NINGÚN GUID, y otro que está agrupado y tiene un GUID.
En un símbolo del sistema con privilegios elevados, ejecute el comando siguiente:
sc queryex | find /I "Transaction"El resultado del comando contiene el GUID que debe usar para el script en este procedimiento. The GUID:
Distributed Transaction Coordinator (01234567-89ab-cdef-0123-456789abcdef)Guarde el siguiente código en un archivo y asigne un nombre al Shutdownmqadapter.vbs. Puede guardar el archivo en cualquier disco que no sea el disco de quórum.
Nota
En este código, el GUID indicado (
01234567-89ab-cdef-0123-456789abcdef) es un marcador de posición. Reemplace este GUID por el GUID MSDTC agrupado real que anotó en el paso 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 SubSeleccione Inicio, escriba tarea y, a continuación, seleccione Programador de tareas en la lista de resultados.
En programador de tareas, seleccione Acción > Crear tarea básica.
Ejecute a través de las pantallas del asistente para crear una tarea programada que ejecute el archivoShutdownmqagent.vbs diario.
Nota
Para el paso 6, establezca la programación para que comience a medianoche y repita cada 1 minuto durante 24 horas.
Las versiones anteriores de BizTalk pueden tener un GUID COM+ de MQSAgent diferente. Es posible que tengan 6D06157A-730B-4CB3-BD11-D48AC6B8A4BB en lugar de C691D827-19A0-42E2-B5E8-2892401481F5 . Por lo tanto, es posible que tenga que cambiar el script existente después de actualizar el producto.
Más información
Incluso si el administrador de colas de IBM MQ se ejecuta como un recurso agrupado en un rol de clúster de conmutación por error, no debe clústerar la aplicación COM+ de MQSAgent. Esto se debe a DLLHost.exe, que ejecuta la aplicación COM+, no es consciente del clúster. Debe tener la aplicación COM+ DE MQSAgent instalada y configurada individualmente en ambos nodos.
Para garantizar la alta disponibilidad, asegúrese de usar tanto el recurso clúster del administrador de colas de IBM MQ como el recurso MSDTC agrupado en el mismo rol de clúster junto con el script de supervisión de la sección Solución alternativa.
Se aplica a
- 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