System.Data.SqlClient.SqlException 3988

Exception Type: System.Data.SqlClient.SqlException Number: 3988 Message: 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…


Resources

There’re a lot of resources online talking about ADO.NET: 1. Data Access and Storage Developer Center: official Data website at microsoft.com. 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…


Welcome to Bill Lin’s blog!

It’s not easy for me to start out the first blog entry so I’ll make it succinct. My name is Bill Lin and I’m a developer on the ADO.NET team. As a dev, I’ve worked on the team for 8 months. I currently am working for SqlClient. Moving forward, topics I expect to talk about…


Suspending and resuming threads for GC

First of all, suspension and resumption of threads is not really part of the GC. GC calls functions to do the suspension and the resumption as a service provided in the CLR. Other components in the CLR also use this service such as the debugger implementation. But it’s true that suspending and resuming because of…


When memory is running low…

When I say memory I mean physical memory. Let’s assume that you have enough virtual memory space. When the physical memory gets low you may start getting OOMs or start paging. You can experiment and see how you can avoid getting into the low memory situation but sometimes it’s hard to predict and hard to…


Large Object Heap

LOH (Large Object Heap) contains objects that are 85,000 bytes or bigger (there’s also some objects that are less than 85,000 bytes that are allocated on the LOH by the runtime itself but usually they are very small and we’ll ignore them for this discussion).   The way LOH is implemented changed dramatically from 1.0…


Time-boxes, Rhythm, and Incremental Value

Note: This article is updated at 3 Keys to Agile Project Success: Timeboxing, Rhythm, and Results. Today I had some interesting conversations with Loren Kohnfelder. Every now and then Loren and I play catch up. Loren is former Microsoft. If you don’t know Loren, he designed the CLR security model and IE security zones. He created…


Workstation GC for server applications?

In Using GC Efficiently – Part 2 I talked about different flavors of GC that exist in the CLR and how you choose which flavor is good for your applications, and I said that the Server GC flavor is designed for server applications. As with any performance tuning there are always exceptions – there’s no…


What do you want to know?

In my previous Using GC Efficiently entries I’ve basically covered all the big areas of GC in the CLR. There are of course a lot of things to write about GC but I want to keep GC users as my target audience, not GC designers/implementors. So I would really like to hear from you – our customers…