Over the years i’ve set up a few environments, for me it important to follow best practice to the fingertips to ensure the best result, and happy clients.
A normal (basic) high available setup consist of a clustered BizTalk setup as an Active / Active cluster and a SQL Active/Passive cluster. The reason for the active / Active BizTalk cluster is the fact that you want to utilize all resources available have load balancing and cluster the single host adapters, even if we would set it up as active / passive you still have to pay for the licenses on the passive node. Keeping them as an active / active cluster we also get the benefit of having more resources available. after all we are only clustering the single host adapters (Like FTP, POP3 etc.).
BizTalk uses MSDTC for different communication and it’s therefor important that this is configured correctly, depending on the clustering method. For active / passive we have to cluster the DTC. But when it comes to an active / active cluster we need to make sure all active machines have their own versions of MSDTC running, it should not be a part of the cluster as a resources. If you do have it as a resource you will end up with errors during configuration of BizTalk, these errors usually states problem with communication for different databases or services like analysis server or other elements during configuration that requires DTC.