Why BTS 2006 Host Process can be Clustered ?

High Availability in BTS is provided using host instances in the same Biztalk Server group . so why do we need to Cluster BTS Host Process ?

1- Concurrency

Problem Statement :  If an adapter handlers running inside an unclustered host process , this means that this adapter is running simultaneously on all the host instances. so let's say that all instances are accessing a shared resource , so we have a concurrency violation access issue here .

a typical example is FTP Adapter that is using FTP Protocol : so if all instances are accessing the same FTP location using FTP protocol , this will lead to concurrency problems since FTP protocol doesnt put any locks on the accessed files.

solution : make the FTP adapter clustered so we got high availability and in the same time , removing concurrency issues.

2- Ordered Delivery

Problem Statement : in case of MSMQ adapter for example : it delivers the messages in the order that messages have been received . so if we have two MSMQ running in two host instances we might lose this order delivery behaviour.

Solution : make only one adapter running at a time and getting high availability for that adapter by clustering the adapter.

for how to Implement the Clustering Itslef : http://www.microsoft.com/technet/prodtechnol/biztalk/2006/library/bts06clustering/cd301e18-ca9a-4b33-b57d-f03bff750521.mspx