views:

514

answers:

2

At one of our client's site we have the following topology of BizTalk 2006 in production environment:

  • 2 BizTalk Runtime servers
  • 1 SQL Server with MsgBox and TrackingDB on it.

One of the runtime servers are dedicated physical server and the another is virtual server, though both have 4 CPUs and 8Gb of memory. The physical server CPU is hardly in use while the virtual server is always on 50% - 60% of CPU usage.

Is there any way to configure the BizTalk load balancing algorithm in such a way that it would load on one server more than on the other?

+2  A: 

Yes and no is the accurate answer :-)

Given one host, with one instance on each server, BizTalk would apply a simple round-robin approach to load balancing; as a service (orchestration or pipeline) is tied to a host the answer would be that for a single service it is not possible to assign more "weight" for a particular server -load would be spread evenly between the instances.

However, if you have multiple services, and it makes sense, you could distribute some of them exclusively to the physical box while some to both; this would mean that the physical box would take more load compare to the virtual one.

Obviously - on a two servers configuration - it does mean you lose redundancy though, a decision I would have not taken lightly so I would recommend against it.

(having said that - you say you have one SQL box, so perhaps redundancy is not a major issue?)

Yossi Dahan
+1  A: 

Also, if you're doing HTTP receives, check the donfiguration of your web load balancer. It maybe preferring one server over the other based on its configuration.

Another suggestion would be to disable the host instances on the VM and run primarily off of the physicaL box. If the physical box goes down, set up a MOM alert or such to kick off a script to start up the VMs host instances. We do something like this for FTP receives in our cluster.

ChrisLoris