The BizTalk Server Adapter for MQSeries version 2.0 no longer retrieves messages from a clustered MQSeries queue manager when the queue manager fails over to a different cluster node (893059)
The information in this article applies to:
- Microsoft BizTalk Adapter for MQSeries v2.0
SYMPTOMSYou may configure the Microsoft BizTalk Server Adapter for MQSeries version 2.0 to receive messages from a clustered MQSeries queue manager. If the queue manager fails over to a different cluster node, the BizTalk Server Adapter for MQSeries no longer retrieves messages from the clustered MQSeries queue. When this behavior occurs, the following event is logged in the Application event log: Event Type: Error
Event Source: BizTalk Server 2004
Event Category: BizTalk Server 2004
Event ID: 9508
Date: Date Time: Time User: N/A
Computer: ComputerName Description: Program cannot connect to the queue manager. The connection attempt to queue manager
'QueueManagerName' failed with reason code 2059. Ensure that the queue manager is available
and operational.WORKAROUNDTo work around this issue, create a scheduled task on both nodes. To do this, follow these steps: - Save the following code in a file, and name the file Shutdownmqadapter.vbs. You can save the file in any disk other than the quorum disk.
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'")
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, "6D06157A-730B-4CB3-BD11-D48AC6B8A4BB")>0 then
'Wscript.Echo objProcess.ProcessId
Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /k kill -f " & objProcess.ProcessId & "& exit"
WScript.Quit
end if
Next
end if
Next
End Sub - In Control Panel, open Scheduled Task, and then click Add Scheduled Task to create a new scheduled task to run Shutdownmqagent.vbs daily. The schedule should be set to start at midnight and to repeat every 1 minute for 24 hours.
MORE INFORMATIONThe product documentation about clustering the MQSAgent application is incorrect. Even if the MQSeries server is clustered on a Microsoft Cluster Service, you do not need to cluster the MQSAgent application.
Modification Type: | Major | Last Reviewed: | 11/14/2005 |
---|
Keywords: | kbClustering kbBTSAdapters kbtshoot kbprb KB893059 kbAudDeveloper |
---|
|