Fast, Efficient Message Archiving for BizTalk with the BizTalk Message Archiving Pipeline Component. Download a Free 14-Day Trial!

Further MS-DTC Issues – Check the Startup Order of Clustered Services

We’ve just encountered an obscure MSDTC/SQL Server issue that I thought would be beneficial to the wide-community.

Following a failover of our (Windows Server 2008) cluster, we started to encounter unexpected errors when BizTalk attempted to perform any tasks that required a distributed transaction, even though everything appeared to be running correctly: MS-DTC was running and we could DTCPing the BizTalk Server from the SQL Server (and vice-a-versa), so no issues with DTC; SQL Server was also running as we could connect to the instance via Management Studio and BizTalk could read the Management Database etc., yet DTC operations still failed with the following error:

Enlist operation failed: 0x8004d01c(XACT_E_CONNECTION_DOWN). SQL Server could not register with Microsoft Distributed Transaction Coordinator (MS DTC) as a resource manager for this transaction. The transaction may have been stopped by the client or the resource manager.
A severe error occurred on the current command.  The results, if any, should be discarded. (Microsoft SQL Server, Error: 8510)

It turns out that when clustered services are brought online, they must be started in a specific order, with the DTC service being started before SQL Server. If they are not brought online in this order, SQL Server fails to register itself and DTC transactions cannot be initiated, even though both the DTC and SQL service’s are running and everything looks correct.

Thanks to this forum post for providing us with the much needed pointer: http://www.ureader.com/msg/1142121.aspx.

2 Responses to “Further MS-DTC Issues – Check the Startup Order of Clustered Services”


  1. 1 Paul

    Was the error in Event Log or DTC trace? I’m also troubleshooting cluster failover where BizTalk databases are hosted.

  2. 2 Nick Heppleston

    Paul,

    This particular error was encountered when we attempted to make a change to a Receive Location configuration and apply the changes in the BizTalk Admin Console, however we did receive a whole host of errors from the BizTalk Host Instances when they started up too.

    My normal first step when I encounter DTC related issues is to run DTCPing to check that both servers can talk to each other; is your MSDTC service clustered?

    Nick.

Leave a Reply





Get Adobe Flash playerPlugin by wpburn.com wordpress themes