I came across a
frustrating interesting problem today where the BizTalk Server 2006 Configuration wizard would fail every time I applied a new configuration.
Unlike a typical BizTalk developer environment (which usually consists of BizTalk and SQL Server on the same machine), this environment consisted of two separate machines: one BizTalk Server 2006 and one SQL Server 2005 (i.e. the BizTalk databases are stored on the SQL Server). Additionally, this is a virtual environment and both machines were cloned from the same base Windows Server 2003 R2 template.
I was installing the following components …
- Enterprise Single Sign-On (SSO)
- BizTalk Runtime
It would successfully install ENTSSO, but would fail when installing the group. The log file reported the following error:
Failed to configure with error message [Exception of type ‘System.EnterpriseServices.TransactionProxyException’ was thrown.]
The following Google search suggested to me that the underlying problem was with MSDTC (aren’t all BizTalk problems?). I checked, and double-checked, the MSDTC properties on both servers and couldn’t find anything wrong with the configuration. So, I had to pull out the big guns.
I downloaded DTCPing (a very handy tool for debugging DTC issues) and ran it on both machines (make sure to read the instructions on how to use DTCPing as it is not straightforward). In the generated log file I noticed the following warning:
WARNING: the CID values for both test machines are the same while this problem won’t stop DTCping test, MSDTC will fail for this …
A Google search on this warning helped me to understand that the underlying problem is that the CID values stored for MSDTC were not changed during the cloning process. But of course!
If you’re experiencing this problem, check the following registry key on both of your machines. Are the keys identical?
Mine were. Here’s the steps I took successfully reinstall MSDTC so that the CID values were unique. Run this procedure on both machines:
Use Add Windows Components, and remove Network DTC.
Go to the command line and run: MSDTC -uninstall
Go to the registry and delete the MSDTC keys in HKLM/Software/Microsoft/Software/MSDTC, HKLM/System/CurrentControlSet/Services/MSDTC, and HKEY_CLASSES_ROOTCID (if they’re still there).
Go to the command line and run: MSDTC -install
Use Add Windows Components, and add Network DTC.
Go to the command line and run: net start msdtc
After running this on both servers I was able to confirm that the CID values were unique. And, sure enough, when I next applied my configuration to BizTalk Server 2006 everything worked perfectly.
I hope this helps!