views:

669

answers:

1

Hi,

We are planning a Biztalk 2009 set up in which we have 2 Biztalk Application Servers and 2 DB Servers (DB servers being in an Active/Passive Cluster). All servers are running Windows Server 2008 R2.

As part of our application, we will have incoming traffic via the MSMQ, FILE and SOAP adapters. We also have a requirement for High-availability and Load-balancing.

Let's say I create two different Biztalk Hosts and assign the FILE receive handler to the first one and the MSMQ receive handler to the second one. I now create two host instances for each of the two hosts (i.e. one for each of my two physical servers).

After reviewing the Biztalk Documentation, this is what I know so far:

  • For FILE (Receive), high-availablity and load-balancing will be achieved by Biztalk automatically because I set up a host instance on each of the two servers in the group.

  • MSMQ (Receive) requires Biztalk Host Clustering to ensure high-availability (Host Clustering however requires Windows Failover Clustering to be set up as well). No loading-balancing option is clear here.

  • SOAP (Receive) requires NLB to achieve Load-balancing and High-availability (if one server goes down, NLB will direct traffic to the other).

This is where I'm completely puzzled and I desperately need your help:

  • Is it possible to have a Windows Failover Cluster and NLB set up at the same time on the two application servers?
    • If yes, then please tell me how.
    • If no, then please explain to me how anyone is acheiving high-availability and load-balancing for MSMQ and SOAP when their underlying prerequisites are mutually exclusive!


Your help is greatly appreciated,
M

+2  A: 

Microsoft doesn't support NLB and MSCS running on the same servers

"These two components work well together in a two or three tier application model running on separate computers. Be aware that running these two components on the same computer is unsupported and is not recommended by Microsoft due to potential hardware sharing conflicts between Cluster service and Network Load Balancing." http://support.microsoft.com/kb/235305

If you want to provide HA for SOAP requests received in BizTalk you should configure you BizTalk servers to be in an Active/Active configuration (no MSCS) in the same BizTalk Group. Once you do this you install an configure NLB between these two. Your clients will be able to query the web services thru the NLB cluster and the NLB service will route the request to a specific server within the cluster (your asmx files should be installed and configured in both servers).

Regarding MSMQ the information you have obtained so far is right, the only way to assure HA for this adapter is clustering the BizTalk servers. If you want to implement this too then you must have a separate infrastructure for the SOAP receive hosts and the MSMQ ones.

The main reason for this scenario is that a BizTalk Isolated Host is not cluster aware so BizTalk InProcess Host could be all hung up and the Isolated Host would never know of it and would continue to receive requests.

I'm currently designing an architecture very similar so if you would like to share more comments or questions you can reach me at [email protected]

Ignacio Quijas Microsoft Biztalk Server Specialist

Ignacio Quijas
Quick note. If you need NLB, you don't need to depend on Windows NLB. You can set up a network device to load balance SOAP/HTTP receive ports. This way you can use clustering to provide HA for your services. Also, some adapters must be clustered if you have a dual server / dual host instance situation. If you run an FTP receive on two different host instances, you will get two copies of the file. Best of luck!
ChrisLoris
Thank you Chris. The hardware load balancing scenario is actually very intriguing since it is unlikely that the client wants to invest in seperate infrastructure for SOAP and MSMQ. Thanks for your input.
FullOfQuestions