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.
Published on Monday, 27th July 2009 .
The SBUG guys are holding their second online mini-meeting on Wednesday 29th July 2009 at 8pm (BST). Santosh Benjamin will be demonstrating the excellent Mocking Bird web-service mocking tool – I’ve been using it for a couple of weeks and I’m a convert; no need to stub our web-methods, just add virtual endpoints to a config and you’re done!
This should only be a 30-45 min meeting and is open to all via Live Meeting. Hope you can join us and see this excellent tool in action.
Full details – including registration – are available on the SBUG Website: http://sbug.org.uk/forums/p/156/232.aspx#232.
Published on Tuesday, 16th June 2009 .
Recently seen on The Daily WTF:

Published on Thursday, 19th March 2009 .
Originally posted by Nick Heppleston at: http://www.modhul.com/2009/03/19/interesting-quirk-when-formatting-guids-as-strings/
I noticed an interesting quirk last night while trying to format a Guid into a string representation – by default, Guid.ToString() does not return an accurate representation of a GUID with curly braces. Hmmmmmm…..
Consider the following simple test, here we are instantiating a new Guid and before outputting the value to the debugger, we capture its value – note the curly braces at the end of the Guid:

If we let the test run its course, we get the Guid formatted as a string (using the default formatter) written to the debugger, but there are no curly braces:

After much head scratching and Googling, I decided to look at the MSDN documentation for the Guid.ToString() method – low and behold there are several format specifiers that can be provided to the ToString() method which determine the formatting provided to the resultant string. Using the format specifiers:

we get the desired output:

If no format specifier is used (i.e. we just Guid.ToString()), the default format is ‘D’ – no braces.
Published on Tuesday, 24th February 2009 .
Ok, so I’ve finally sucumbed to the Twitter phenomenon and I’m now twittering, or is that tweeting? Eitherway, you can follow me over at http://twitter.com/nickheppleston if you are so inclined…