Problems starting the User Profile Synchronisation Service on Servers prepared from VMware templates

At a recent installation engagement a colleague and I were (un)fortunate to come across provisioned servers in a VMware environment. We installed SharePoint 2010 quite happily and were configuring until we came to the User Profile Service. No matter what we appeared to try the service would refuse to start. After much hunting around we found out that the User Profile service relies on the Microsoft Distributed Transaction Co-Ordinator to work.

Each servers’ MSDTC has its own unique ID so that the two different end of a conversation know who is who. Now with a VMware prepared server those two ID’s are the same. No amount of preparing the server alters this.

How do we find out that we have duplicate ID’s?

First, download a copy of DTCPING from MS. Currently here: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5e325025-4dcd-4658-a549-1d549ac17644&DisplayLang=en

Now run a copy of DTCPing on SERVER A and run up another copy on SERVER B

Initiate a ping from A to B

If you have a duplicate ID there will be an error message in the ping results saying so.

How do we correct the problem?

On each server in the conversation run the following commands from an Administrator-elevated command prompt

msdtc –uninstall

Now reboot both servers

Then

msdtc –install

Retest the ping and you should now have unique ids