Using MSDTC between Vista clients and Windows 2000 servers

Background Consider the following two scenarios: 1.       You have implemented a .NET application accessing a specific COM+ service with automatic transaction processing.  You derived a class from ServicedComponent, set the Transaction attribute for the class, and applied the Automatic attribute to a method which opens a SqlConnection. 2.       Inside a TransactionScope, you wanted to open…


Bluehat message recall incident: flashback to Bedlam DL3

If you don’t know what Bedlam DL3 means, I encourage you to read this blog entry You Had Me At EHLO… : Me Too! Yesterday, a similar event happened, in a smaller scale though. Someone sent an announcement email to the Bluehat Alert DL with more than 1000 members at the company. The email was…


General Network Error in .Net Framework 1.1

Under some circumstances (such as with certain network bandwidth), you might get a general network error in .Net Framework 1.1 when executing a query that takes longer than SqlCommand.CommandTimeout value. This has something to do with how SqlClient 1.1 deals with timeout. Basically we track the timeout value by decrementing it each time after we…


Internal connection fatal error when trying to run a UNION ALL query or to call the DeriveParameters method The KB article didn’t say a lot of details about this bug. Usually the following conditions have to been met in order to trigger the bug: 1. Query must run against sql2000 (Sql2005 works fine)2. The table name has to include 3 or more dots, ie: [A.B.C.D.E]3. There has to be an image, text…


High CPU use of SqlClient

There was a bug in SqlClient which could cause high CPU use. The scenario is a SqlClient application sends an attention to Sql Server but receives no acknowledgement from the server because the connection is broken. The bug lies in the logic of reading server’s response from the wire. We buffer the incoming data from the wire….


Bill Gates’ Transition

Today Bill Gates announced his transition plans: Essentially in two years, Bill Gates will transition away from a daily role at Microsoft to focus on the charitable work of the Bill & Melinda Gates Foundation. However, he will continue to be the company’s chairman after the two-year transition period. Bill Gates always is my…


Timeout when using SqlBulkCopy

For certain size of data, SqlBulkCopy.WriteToServer() may throw a timeout exception, although it won’t happen when MARS is turned on. The problem is caused by a bug in the code for handling some boundary scenarios. The workaround is to apply this patch:


System.Data.SqlClient.SqlException 3988

Exception Type: System.Data.SqlClient.SqlExceptionNumber: 3988Message: New transaction is not allowed because there are other threads running in the session If you have ever seen this type of exception when talking to RTM SQL Server 2005 (but never saw it with the Beta version of the server), it’s likely that you have an open data reader associated…



There’re a lot of resources online talking about ADO.NET: 1. Data Access and Storage Developer Center: official Data website at 2. Data Access Blog: team’s blog site. You may find information interesting from different team members. 3. .NET Framework Data Access and Storage – MSDN Forums: it’s a place where lots of developers are…