Kuyruk yöneticisi farklı bir küme düğümüne yük devredildiğinde MQSeries Bağdaştırıcısı artık kümelenmiş bir MQSeries kuyruk yöneticisinden ileti almıyor

Bu makale, kuyruk yöneticisi farklı bir küme düğümüne yük devredildiğinde MQSeries Bağdaştırıcısı'nın artık kümelenmiş bir MQSeries kuyruk yöneticisinden iletileri almama sorununu çözmenize yardımcı olur.

Orijinal ürün sürümü: BizTalk Server 2020, BizTalk Server 2016, BizTalk Server 2013, BizTalk Server 2010, BizTalk Server 2009
Özgün KB numarası: 893059

Belirtiler

MQSeries için Microsoft BizTalk Server Bağdaştırıcısı'nı, kümelenmiş bir MQSeries kuyruk yöneticisinden ileti alacak şekilde yapılandırabilirsiniz. Kuyruk yöneticisi farklı bir küme düğümüne yük devrediyorsa, MQSeries Bağdaştırıcısı artık kümelenmiş kuyruktan iletileri almaz. Bu davranış oluştuğunda, aşağıdaki olay Uygulama günlüğüne kaydedilir:

Olay Türü: Uyarı
Olay Kaynağı: BizTalk Server 20xx
Olay Kategorisi: BizTalk Server 20xx
Olay Kimliği: 5740
Tarih: 31.12.2006 Saat: 11:12:13
Kullanıcı: Yok
Bilgisayar:
Açıklama: "MQSeries" bağdaştırıcısı bir hata iletisi verdi. Ayrıntılar "Kuyruk Yöneticisi adı = MYQMNAME Neden kodu = 2059 açılırken hatayla karşılaşıldı."

Not

Bu günlük girdisinde, <20xx> gerçek sürüm numarasını ve <MYQMNAME> gerçek Kuyruk Yöneticisi adını temsil eder.

Geçici Çözüm

Bu sorunu geçici olarak çözmek için her iki düğümde de zamanlanmış bir görev oluşturun. Bunu yapmak için şu adımları uygulayın:

  1. Etkin düğümde Services.msc dosyasını açın. Listelenen iki MSDTC hizmeti görmeniz gerekir: Biri yerel ve GUID'i olmayan, diğeri kümelenmiş ve GUID'i olan.

  2. Yükseltilmiş bir komut isteminde aşağıdaki komutu çalıştırın:

    sc queryex | find /I "Transaction"
    

    Komut çıktısı, bu yordamda betik için kullanmanız gereken GUID'yi içerir. The GUID: Distributed Transaction Coordinator (01234567-89ab-cdef-0123-456789abcdef)

  3. Aşağıdaki kodu bir dosyaya kaydedin ve dosyayı Shutdownmqadapter.vbsolarak adlandırın. Dosyayı çekirdek disk dışında herhangi bir diske kaydedebilirsiniz.

    Not

    Bu kodda, belirtilen GUID (01234567-89ab-cdef-0123-456789abcdef) bir yer tutucudur. Bu GUID değerini, 2. adımda not ettiğiniz gerçek kümelenmiş MSDTC GUID ile değiştirin.

    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. Başlat'ı seçin, görev yazın ve sonuçlar listesinde Görev Zamanlayıcı'yı seçin.

  5. Görev Zamanlayıcı'da Eylem>İçerik Oluşturucu Temel Görev'i seçin.

  6. Shutdownmqagent.vbs dosyasını günlük olarak çalıştıran zamanlanmış bir görev oluşturmak için sihirbaz ekranlarında komutunu çalıştırın.

Not

6 adımda, zamanlamayı gece yarısı başlayacak şekilde ayarlayın ve 24 saat boyunca her 1 dakikada bir tekrarlayın.

Önceki BizTalk sürümlerinde farklı bir MQSAgent COM+ GUID olabilir. yerine sahip 6D06157A-730B-4CB3-BD11-D48AC6B8A4BBC691D827-19A0-42E2-B5E8-2892401481F5olabilirler. Bu nedenle, ürünü yükselttikte mevcut betiği değiştirmeniz gerekebilir.

Daha fazla bilgi

IBM MQ kuyruk yöneticisi yük devretme kümesi rolünde kümelenmiş bir kaynak olarak çalışıyor olsa bile, MQSAgent COM+ uygulamasını kümelendirmemelisiniz. Bunun nedeni, COM+ uygulamasını çalıştıran DLLHost.exe kümeye duyarlı olmamasıdır. Her iki düğümde de MQSAgent COM+ uygulamasının yüklü ve yapılandırılmış olması gerekir.
Yüksek kullanılabilirlik sağlamak için hem kümelenmiş IBM MQ kuyruk yöneticisi kaynağını hem de kümelenmiş MSDTC kaynağını , Geçici Çözüm bölümündeki izleme betiğiyle birlikte aynı küme rolünde kullandığınızdan emin olun.

Uygulandığı öğe

  • BizTalk Server 2020 Enterprise
  • BizTalk Server 2016 Enterprise
  • BizTalk Server 2013 R2 Enterprise
  • BizTalk Server 2013 Enterprise
  • BizTalk Server Kurumsal 2010
  • BizTalk Server 2009 Enterprise