Der CLUSTERSSeries-Adapter ruft keine Nachrichten mehr von einem gruppierten CLUSTERSSeries-Warteschlangen-Manager ab, wenn der Warteschlangen-Manager zu einem anderen Clusterknoten überschlägt

Dieser Artikel hilft Ihnen, das Problem zu umgehen, bei dem DER VONSERIES-Adapter keine Nachrichten mehr von einem gruppierten CLUSTERSSeries-Warteschlangen-Manager abruft, wenn der Warteschlangen-Manager zu einem anderen Clusterknoten übergibt.

Ursprüngliche Produktversion:   BizTalk Server 2020, BizTalk Server 2016, BizTalk Server 2013, BizTalk Server 2010, BizTalk Server 2009
Ursprüngliche KB-Nummer:   893059

Problembeschreibung

Sie konfigurieren den Microsoft BizTalk Server-Adapter für CLUSTERSSeries so, dass Nachrichten von einem gruppierten Warteschlangen-Manager von CLUSTERSSeries empfangen werden. Wenn der Warteschlangen-Manager einen Failover zu einem anderen Clusterknoten ausführt, ruft der CLUSTERSSeries-Adapter keine Nachrichten mehr aus der gruppierten Warteschlange ab. Wenn dieses Verhalten auftritt, wird das folgende Ereignis im Anwendungsprotokoll protokolliert:

Ereignistyp: Warnung
Ereignisquelle: BizTalk Server 20xx
Ereigniskategorie: BizTalk Server 20xx
Ereignis-ID: 5740
Datum: 31.12.2006 Uhrzeit: 11:12:13 Uhr
Benutzer: N/A
Computer:
Beschreibung: Der Adapter "MOFSeries" hat eine Fehlermeldung ausgelöst. Details "Fehler beim Öffnen des Warteschlangen-Manager-Namens = MYQMNAME Reason Code = 2059."

Hinweis

Stellt in diesem Protokolleintrag <20xx> die aktuelle Versionsnummer und <MYQMNAME> den tatsächlichen Namen des Warteschlangen-Managers dar.

Problemumgehung

Um dieses Problem zu umgehen, erstellen Sie eine geplante Aufgabe auf beiden Knoten. Gehen Sie dazu wie folgt vor:

  1. Öffnen Sie auf dem aktiven Knoten "Services.msc". Es sollten zwei MSDTC-Dienste aufgelistet werden: einer, der lokal ist und keine GUID aufweist, und einer, der gruppiert ist und eine GUID aufweist.

  2. Führen Sie an einer Eingabeaufforderung mit erhöhten Rechten den folgenden Befehl aus:

    sc queryex | find /I "Transaction"
    

    Die Befehlsausgabe enthält die GUID, die Sie für das Skript in diesem Verfahren verwenden müssen. Die GUID: Distributed Transaction Coordinator (01234567-89ab-cdef-0123-456789abcdef)

  3. Speichern Sie den folgenden Code in einer Datei, und nennen Sie die Datei Shutdownmqadapter.vbs. Sie können die Datei auf einem anderen Datenträger als dem Quorumdatenträger speichern.

    Hinweis

    In diesem Code ist die angegebene GUID ( 01234567-89ab-cdef-0123-456789abcdef ) ein Platzhalter. Ersetzen Sie diese GUID durch die tatsächliche gruppierte MSDTC-GUID, die Sie in Schritt 2 angegeben haben.

    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
    
  4. Wählen Sie "Start" aus, geben Sie "Aufgabe" ein, und wählen Sie dann "Aufgabenplanung" in der Ergebnisliste aus.

  5. Wählen Sie im Aufgabenplaner die Option "Aktion > Grundlegende Aufgabe erstellen" aus.

  6. Führen Sie die Bildschirme des Assistenten aus, um eine geplante Aufgabe zu erstellen, die die Shutdownmqagent.vbs Datei täglich ausführt.

Hinweis

Legen Sie für den 6- Schritt den Zeitplan so fest, dass er um Mitternacht beginnt und alle 1 Minute für 24 Stunden wiederholt wird.

Frühere BizTalk-Versionen verfügen möglicherweise über eine andere GUID UND COM+-GUID für DEN MOFSAgent. Sie haben möglicherweise 6D06157A-730B-4CB3-BD11-D48AC6B8A4BB anstelle von C691D827-19A0-42E2-B5E8-2892401481F5 . Daher müssen Sie möglicherweise das vorhandene Skript ändern, nachdem Sie das Produkt aktualisiert haben.

Weitere Informationen

Auch wenn der IBM XAML-Warteschlangen-Manager als Clusterressource in einer Failoverclusterrolle ausgeführt wird, sollten Sie die CLUSTERSSAgent COM+-Anwendung nicht clustern. Dies liegt daran, dass DLLHost.exe, auf dem die COM+-Anwendung ausgeführt wird, nicht clusterfähig ist. Sie müssen die WEBANWENDUNGSAgent COM+-Anwendung auf beiden Knoten einzeln installiert und konfiguriert haben.
Um eine hohe Verfügbarkeit sicherzustellen, stellen Sie sicher, dass Sie sowohl die clustered IBM CLUSTERS Queue Manager-Ressource als auch die gruppierte MSDTC-Ressource in derselben Clusterrolle zusammen mit dem Überwachungsskript aus dem Abschnitt "Problemumgehung" verwenden.

Gilt für

  • 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