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:
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.
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)
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
Başlat'ı seçin, görev yazın ve sonuçlar listesinde Görev Zamanlayıcı'yı seçin.
Görev Zamanlayıcı'da Eylem>İçerik Oluşturucu Temel Görev'i seçin.
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-D48AC6B8A4BB
C691D827-19A0-42E2-B5E8-2892401481F5
olabilirler. 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