Dtcping test passes but still have a Communication with the underlying transaction manager has failed

Kimi picture Kimi · Aug 17, 2011 · Viewed 7.8k times · Source

DTCPing tool says everything should be fine. The actual exception is:

System.Transactions.TransactionManagerCommunicationException:

Communication with the underlying transaction manager has failed. ---> System.Runtime.InteropServices.COMException: The MSDTC transaction manager was unable to push the transaction to the destination transaction manager due to communication problems. Possible causes are: a firewall is present and it doesn't have an exception for the MSDTC process, the two machines cannot find each other by their NetBIOS names, or the support for network transactions is not enabled for one of the two transaction managers. (Exception from HRESULT: 0x8004D02A)

The service runs on a VM. Other servers are able to run distributed transactions, so DB box is configured properly.

Answer

Simon Mourier picture Simon Mourier · Aug 22, 2011

There is a good article on this subject here: Troubleshooting Problems with MSDTC. It was originally written for BizTalk Server but applies on other server as well.

Since you're running off a VPC, it's possible the DTC shares some identifiers with another machine on the same network. Please check the "Ensure that MSDTC is assigned a unique CID value" chapter in this article (see also http://blogs.msdn.com/b/johnlee/archive/2008/09/09/msdtc-on-virtual-machines.aspx), although I believe DTCPing should tell you about it... You can also try msdtc -uninstall and msdtc -install to fix this.

You should also check if your server are not using some VPN or encryption technology. I kinda remember this can cause issues.