Ensuring unique CIDs for MSDTC in BizTalk installations

How to verify and regenerate unique Microsoft Distributed Transaction Coordinator (MS DTC) CIDs on cloned machines to prevent transaction problems in distributed BizTalk environments

Situation

By installing BizTalk in a distributed environment it is essential, that the MS DTC (Microsoft Distributed Transaction Controller) have an unique CID. Notably by cloning machines in a virtual environment this is often not the case, if the customizing after cloning is too simple establishes. A lot of system guys don’t care about this IDs – they only change the SIDs of the systems.

To verify this, you have compare these IDs via RegEdit.

  1. Start RegEdit
  2. Goto HKLM\CID (there are around 4 GUIDs below this key)
  3. Open these GUIDs and look for the Description key with value MSDTC.

The parent GUID of this Description key must be unique over all involved machines!

Solution

If this is not the case, do the following. btw: In circumstance that there is often used the same process to clone the machines, you should go the following steps on all machines. Otherwise you need it for all without one.

  1. Open Services Normally you should see “Distributed Transaction Coordinator” with Status: Started and Startup Type: Automatic
  2. Open cmd prompt as administrator and run msdtc –uninstall
    After refreshing the view in Services (F5) there should no more the entry “Distributed Transaction Coordinator”
    After refreshing the view in RegEdit (F5) there should be no more the CID-key
  3. run now msdtc –install
    After refreshing the view in Services (F5) there should be “Distributed Transaction Coordinator” again with Status: <empty> and Startup Type: Manual
    After refreshing the view in RegEdit (F5) there is now a new CID-key with new GUIDs below
  4. run sc config msdtc start= auto (yes – there is a space between equal-sign and auto!) After refreshing the view in Services (F5) there should be “Distributed Transaction Coordinator” with Status: <empty> and Startup Type: Automatic
  5. run sc start msdtc
    After refreshing the view in Services (F5) there should be “Distributed Transaction Coordinator” with Status: Started and Startup Type: Automatic

Remarks

Use the tools DTCPing and DTSTester.