|
|
|||||||||
|
|||||||||
|
|||||||||
| |
||
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
MSMQ and MSMQT side-by-side
I've installed BTS 2004 Beta (missing out the STS stuff because it wouldn't load that in the Configuration Wizard), and I'm trying to get MSMQ and MSMQT working on the same box.
I've followed the instructions in the help. I gave the box a new IP address and new server name, which is registered in the DNS. I run the Configuration Wizard, and tell the installation to the new IP for MSMQT (MSMQ installs to the primary IP by default right?), and still when I try to start the Message Queue service it bombs if the BizTalk Admin service is running. Got any ideas? |
|
#2
|
|||
|
|||
|
Maybe a port conflict? I don't use any of this software myself.
|
|
#3
|
|||
|
|||
|
Sadly, not a port conflict, they're attached to different IP addresses, or at least they should be after the configuration.
|
|
#4
|
|||
|
|||
|
VBScript to configure BizTalk 2004 MSMQT and MSMQ to run side-by-side
Ran into the same problem the other day. You have to configure the RegKey BindInteface IP for MSMQ to run a side-by-side installation. Also I have added entries to my %WINDIR%\system32\drivers\etc\hosts file (or you can use a DNS if you have access to it) to configure Names for the IP Adresses that are different from the Machine name. Furthermore I use a Microsoft Loopback Adapter for MSMQ since I only use it for local debugging. It might also work if you configure a second IP address on the same Adapter but I haven't tried that. I made a script to change the values of the corresponding Registry settings, you can also look at it for explanation. This is also great if you are using BizTalk Message Queuing with DHCP if you run the script before you start the MSMQ and BizTalk Services.
Caution: On my machine it still only works if I start the BizTalk Service before the MSMQ Service but then it worked judging from the SendMessageQueue example. Caution: The script changes the MSMQ and the MSMQT configuration without notice. On first use you have to pass a Hostname for the MSMQT that you configured in DNS or the Hosts file. The script follows. Hope it helps. Cheers Roman http://www.dotmugs.ch/ ' ' Version 0.1 ' Sept. 2004 romanmathis@hotmail.com ' This Script configures MSMQ and BizTalk MSMQT to run in parallel in case ' you have a Microsoft Loopback Adapter installed. ' MSMQ will use the Loopback Adapter ' MSMQT will use the last other Adapter ' To install the Loopback manually pick it in "Add New Hardware - Network Adapters". ' Note: A similar configuration might also work if you just use two IP Adresses ' on the original adapter but this script does not cover it. ' Caution: This script is intended for Development Machines only. ' Caution: For this solution to work you must still assure that the Services are ' loaded in a specific order. ' First you must start your BizTalkServer service. ' Then you start MSMQ. ' Dim Shell: Set Shell = CreateObject("WScript.Shell") Dim REG_BIZTalk: REG_BIZTalk = "HKLM\SOFTWARE\Microsoft\BizTalk Server\3.0\" On Error Resume Next Dim BizTalkPath: BizTalkPath = Shell.RegRead(REG_BIZTalk & "InstallPath" ) if Err.Number Then WScript.Echo "Biztalk Registry Entry Not Found." & Err.Number WScript.Echo Err.Number & ": " & Err.Description WScript.Quit 1 End if WScript.Echo "BizTalk installed at:" WScript.Echo " " & BizTalkPath 'Dim objEnv: Set objEnv = Shell.Environment("System") ' objEnv("BTSSDKDIR") = BizTalkPath ' WScript.Echo "Environment Variable 'BTSSDKDIR' Set to " & objEnv("BTSSDKDIR") 'End If Dim keyBindIP: keyBindIP = "HKLM\SYSTEM\CurrentControlSet\Services\BTSSvc.3.0\ MessageQueuing\MsmqtBindingIP" Dim binIP : binIP = Shell.RegRead(keyBindIP) If Err.Number Then WScript.Echo "Error reading: " & keyBindIP WScript.Echo Err.Number & ": " & Err.Description End If WScript.Echo "BizTalk.MsmqtBindingIP is " & binIP Dim keyBindMN: keyBindMN = "HKLM\SYSTEM\CurrentControlSet\Services\BTSSvc.3.0\ MessageQueuing\MsmqtMachineName" Dim binMN : binMN = Shell.RegRead(keyBindMN) If Err.Number Then WScript.Echo "Error reading: " & keyBindIP WScript.Echo Err.Number & ": " & Err.Description End If WScript.Echo "BizTalk.MsmqtMachineName is " & binMN if len(binMN) = 0 then if WScript.Arguments.Count < 1 then WScript.Echo "The MsmqtMachineName is missing. It has to be set in the RegKey or you have to provide it as an argument." WScript.Echo "Use a name you configure in DNS or %WINDIR%\System32\drivers\etc\hosts that is for example a subdomain of your computer, i.e. msmqt.yourcomputername" WScript.Quit 3 end if end if Dim keyMsmqIP: keyMsmqIP = "HKLM\SOFTWARE\Microsoft\MSMQ\Parameters\BindInterf aceIP" Dim msmqIP : msmqIP = Shell.RegRead(keyMsmqIP) If Err.Number Then WScript.Echo "Error reading: " & msmqIP WScript.Echo Err.Number & ": " & Err.Description End If WScript.Echo "MSMQ.BindInterfaceIP is " & msmqIP WScript.Echo "Finding msloop and other adapter ip" Set wbemServices = GetObject("winmgmts:\\.") Set wbemObjectSet = wbemServices.InstancesOf("Win32_NetworkAdapterConfiguration") Dim msloopAddress: msloopAddress = "" Dim otherAddress: otherAddress = "" For Each wbemObject In wbemObjectSet 'WScript.Echo "Win32_NetworkAdapterConfiguration:" if wbemObject.ServiceName = "msloop" then msloopAddress = wbemObject.IPAddress(0) else if ub(wbemObject.IPAddress) >= 0 Then otherAddress = wbemObject.IPAddress(0) End if end if Next WScript.Echo "MS Loopback Adapter IP: " & msloopAddress WScript.Echo "Other Adapter IP: " & otherAddress if len(msloopAddress) = 0 or len(otherAddress) = 0 then WScript.Echo "One of the required IP adresses is missing." WScript.Quit 2 end if On Error Goto 0 WScript.Echo "Writing to registry ..." WScript.Echo keyBindMN & " := " & binMN Shell.RegWrite keyBindMN, binMN, "REG_SZ" WScript.Echo keyBindIP & " := " & otherAddress Shell.RegWrite keyBindIP, otherAddress, "REG_SZ" WScript.Echo keyMsmqIP & " := " & msloopAddress Shell.RegWrite keyMsmqIP, msloopAddress, "REG_SZ" function lb(obj) On Error Resume Next lb = lbound(obj) if Err.Number <> 0 then lb = 0 end function function ub(obj) On Error Resume Next ub = ubound(obj) if Err.Number <> 0 then ub = -1 end function |
![]() |
| Viewing: ASP Free Forums > System Administration > Microsoft IIS > MSMQ and MSMQT side-by-side |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|