<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Lior Rozner Blog</title><link>http://weblogs.asp.net/lrozner/default.aspx</link><description>The .NET era</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Deadlocks and Enterprise Services</title><link>http://weblogs.asp.net/lrozner/archive/2004/11/20/267049.aspx</link><pubDate>Fri, 19 Nov 2004 23:13:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:267049</guid><dc:creator>lrozner</dc:creator><slash:comments>501</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lrozner/rsscomments.aspx?PostID=267049</wfw:commentRss><comments>http://weblogs.asp.net/lrozner/archive/2004/11/20/267049.aspx#comments</comments><description>&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;strong&gt;The big picture&lt;/strong&gt; - my team (Ayelet Nisan, &lt;/font&gt;&lt;a href="http://dotnetjunkies.com/WebLog/saarc/"&gt;&lt;font color="#0000ff" size="2"&gt;Saar Carmi&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; and me) is currently writing the framework for a large scale .NET project.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;strong&gt;The problem&lt;/strong&gt; - a&amp;nbsp;few days ago while debugging our new batch framework version (a lot of working with threads, enterprise services and SWC) we have encountered a strange deadlock.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;strong&gt;Finding the solution&lt;/strong&gt; - being familiar with such problems our first assumption was that our applicative locks (&lt;/font&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemthreadingreaderwriterlockclasstopic.asp"&gt;&lt;font color="#0000ff" size="2"&gt;ReaderWriterLock&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;) was causing the problem, after a few hours we ruled it out. Our second assumption was that somehow the DB locks in conjunction with the applicative locks are causing this but while trying to debug it we saw that the actual lock is caused while the thread is creating a new instance of a class that derives from a &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystementerpriseservicesservicedcomponentclasstopic.asp"&gt;&lt;font color="#0000ff" size="2"&gt;ServicedComponent&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;. After a few retries on different computers we were sure that we are on the problem but we could not figure what exactly is causing it.&amp;nbsp;Here we stopped and did some&amp;nbsp;reality check, first we know that it is always happening&amp;nbsp;(sometime after 2 seconds and sometime after 30 seconds) and second (like with a lot of other locking problems) the same creation of ServicedComponent seems to have worked most of the time. To make the next major step we needed to find where exactly we are being locked inside the constructor of our ServiceComponent for that we used the debugger call stack and the &lt;/font&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;&lt;font color="#0000ff" size="2"&gt;Reflector&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&amp;nbsp;tool, we were being locked inside the method &lt;/font&gt;&lt;a title="System" href="urn:object:14"&gt;&lt;span style="COLOR: black; TEXT-DECORATION: none; text-underline: none"&gt;&lt;strong&gt;&lt;font size="2"&gt;Proxy&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="COLOR: black"&gt;&lt;strong&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;a title="void System.EnterpriseServices.Thunk.Proxy.RevokeObject(int);" href="urn:object:15"&gt;&lt;span style="COLOR: black; TEXT-DECORATION: none; text-underline: none"&gt;&lt;strong&gt;&lt;font size="2"&gt;RevokeObject&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;font size="2"&gt; called from the &lt;/font&gt;&lt;a title="System" href="urn:object:9"&gt;&lt;span style="COLOR: black; TEXT-DECORATION: none; text-underline: none"&gt;&lt;strong&gt;&lt;font size="2"&gt;ServicedComponentProxy&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="COLOR: black"&gt;&lt;strong&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;a title="void System.EnterpriseServices.ServicedComponentProxy.CleanupQueues(bool bGit);" href="urn:object:10"&gt;&lt;span style="COLOR: black; TEXT-DECORATION: none; text-underline: none"&gt;&lt;strong&gt;&lt;font size="2"&gt;CleanupQueues&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;font size="2"&gt; and here it is&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: #1000a0"&gt;&lt;br /&gt;&lt;font size="2"&gt;internal&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="COLOR: #1000a0"&gt;static&lt;/span&gt; &lt;/font&gt;&lt;a title="System" href="urn:object:1"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;void&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt; &lt;strong&gt;CleanupQueues&lt;/strong&gt;(&lt;/span&gt;&lt;a title="System" href="urn:object:2"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;bool&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt; bGit)&lt;br /&gt;{&lt;br /&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;a title="System" href="urn:object:3"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;object&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt; &lt;strong&gt;obj1&lt;/strong&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;if&lt;/span&gt; (!&lt;/span&gt;&lt;a title="System" href="urn:object:4"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ServicedComponentProxy&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="bool System.EnterpriseServices.ServicedComponentProxy._asyncFinalizeEnabled;" href="urn:object:5"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;_asyncFinalizeEnabled&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;)&lt;br /&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;return&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;if&lt;/span&gt; (bGit &amp;amp;&amp;amp; (&lt;/span&gt;&lt;a title="System" href="urn:object:6"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ServicedComponentProxy&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="InterlockedQueue System.EnterpriseServices.ServicedComponentProxy._gitQueue;" href="urn:object:7"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;_gitQueue&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="int System.EnterpriseServices.InterlockedQueue.Count;" href="urn:object:8"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;Count&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt; &amp;gt; &lt;span style="COLOR: maroon"&gt;0&lt;/span&gt;))&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;obj1 = &lt;/span&gt;&lt;a title="System" href="urn:object:9"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ServicedComponentProxy&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="InterlockedQueue System.EnterpriseServices.ServicedComponentProxy._gitQueue;" href="urn:object:10"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;_gitQueue&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="object System.EnterpriseServices.InterlockedQueue.Pop();" href="urn:object:11"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;Pop&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;if&lt;/span&gt; (obj1 != &lt;span style="COLOR: maroon"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;a title="System" href="urn:object:12"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;int&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt; &lt;strong&gt;num1&lt;/strong&gt; = (&lt;/span&gt;&lt;a title="System" href="urn:object:13"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;int&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;) obj1;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;a title="System" href="urn:object:14"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;Proxy&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="void System.EnterpriseServices.Thunk.Proxy.RevokeObject(int);" href="urn:object:15"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;RevokeObject&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;(num1);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;catch&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;if&lt;/span&gt; (&lt;/span&gt;&lt;a title="System" href="urn:object:16"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ServicedComponentProxy&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="InterlockedQueue System.EnterpriseServices.ServicedComponentProxy._ctxQueue;" href="urn:object:17"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;_ctxQueue&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="int System.EnterpriseServices.InterlockedQueue.Count;" href="urn:object:18"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;Count&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt; &amp;lt;= &lt;span style="COLOR: maroon"&gt;0&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;return&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;obj1 = &lt;/span&gt;&lt;a title="System" href="urn:object:19"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ServicedComponentProxy&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="InterlockedQueue System.EnterpriseServices.ServicedComponentProxy._ctxQueue;" href="urn:object:20"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;_ctxQueue&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="object System.EnterpriseServices.InterlockedQueue.Pop();" href="urn:object:21"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;Pop&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;if&lt;/span&gt; (obj1 == &lt;span style="COLOR: maroon"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;return&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&amp;nbsp;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;if&lt;/span&gt; (!&lt;/span&gt;&lt;a title="System" href="urn:object:22"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;Util&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="bool System.EnterpriseServices.Util.ExtendedLifetime { ... }" href="urn:object:23"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ExtendedLifetime&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;a title="System" href="urn:object:24"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ContextTrackerContainer&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt; &lt;strong&gt;container1&lt;/strong&gt; = (&lt;/span&gt;&lt;a title="System" href="urn:object:25"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ContextTrackerContainer&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;) obj1;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;container1.&lt;/span&gt;&lt;a title="void System.EnterpriseServices.ContextTrackerContainer.Release();" href="urn:object:26"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;Release&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;a title="System" href="urn:object:27"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ServicedComponentProxy&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt; &lt;strong&gt;proxy1&lt;/strong&gt; = (&lt;/span&gt;&lt;a title="System" href="urn:object:28"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ServicedComponentProxy&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;) obj1;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;proxy1.&lt;/span&gt;&lt;a title="void System.EnterpriseServices.ServicedComponentProxy.SendDestructionEvents(bool disposing);" href="urn:object:29"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;SendDestructionEvents&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;(&lt;span style="COLOR: maroon"&gt;false&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;proxy1.&lt;/span&gt;&lt;a title="void System.EnterpriseServices.ServicedComponentProxy.ReleaseContext();" href="urn:object:30"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ReleaseContext&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;The next thing was to try and googlize our already well know methods\problem, there are not so many people that have encounter our problem further more none of them gave us a real solution to our problem.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;Finally searching in the MSDN we found a clue to our problem while using GIT keyword which is mentioned a couple of times in code. The clue was in the form of KB298014&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;a href="http://support.microsoft.com/kb/298014"&gt;&lt;font color="#0000ff" size="2"&gt;FIX: COM+ application that uses the Global Interface Table (GIT) may deadlock&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;, following the instructions in the KB and adding two registry keys fixed our problem(the dispose solution did not seemed to be working to us). &lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;Yet another last look at the first lines of code in the previous method&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #1000a0; FONT-FAMILY: Tahoma"&gt;if&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt; (!&lt;/span&gt;&lt;a title="System" href="urn:object:4"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;ServicedComponentProxy&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;a title="bool System.EnterpriseServices.ServicedComponentProxy._asyncFinalizeEnabled;" href="urn:object:5"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; TEXT-DECORATION: none; text-underline: none"&gt;_asyncFinalizeEnabled&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: #1000a0"&gt;return&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;seems magically linked to the registry key we just added DisableAsyncFinalization&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;Oh yes one last important thing, the problem was only reproduced on XP sp2 machines while not in windows 2003 servers.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=267049" width="1" height="1"&gt;</description></item><item><title>ADO.NET 2.0 Feature Matrix</title><link>http://weblogs.asp.net/lrozner/archive/2004/11/19/266863.aspx</link><pubDate>Fri, 19 Nov 2004 17:52:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:266863</guid><dc:creator>lrozner</dc:creator><slash:comments>17</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lrozner/rsscomments.aspx?PostID=266863</wfw:commentRss><comments>http://weblogs.asp.net/lrozner/archive/2004/11/19/266863.aspx#comments</comments><description>&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;A must read article about &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/ado2featurematrix.asp"&gt;ADO.NET 2.0 Feature Matrix&lt;/a&gt;, top 9 features are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;ADO.NET:&lt;/div&gt;&lt;/li&gt; &lt;ul&gt; &lt;li&gt; &lt;div class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;ADO.NET 2.0 does not use the Microsoft Data Access Components (MDAC).&lt;/div&gt;&lt;/li&gt; &lt;li&gt; &lt;div class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;You can clear a connection pool by using the static method &lt;b&gt;SqlConnection.ClearPool&lt;/b&gt;.&lt;/div&gt;&lt;/li&gt; &lt;li&gt; &lt;div class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;Built-in SqlCommand methods that provide asynchronous execution.&lt;/div&gt;&lt;/li&gt; &lt;li&gt; &lt;div class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;And finally SqlClient contains a new class called &lt;b&gt;SqlBulkCopy,&lt;/b&gt; for inserting many rows into the database from a client in one round-trip&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt; &lt;div class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;SQL Server 200:&lt;/div&gt;&lt;/li&gt; &lt;ul&gt; &lt;li&gt; &lt;div class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;MARS -&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;multiple active result sets .&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;/div&gt;&lt;/li&gt; &lt;li&gt; &lt;div class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;SqlDependency - Registering for notifications&amp;nbsp;for DB changes.&lt;/div&gt;&lt;/li&gt; &lt;li&gt; &lt;div class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;Promotable transactions - the new &lt;b&gt;System.Transactions&lt;/b&gt; namespace, enabling a behavior that can automatically detect multi-instance access and "promote" a transaction from local to multi-instance (distributed).&lt;/div&gt;&lt;/li&gt; &lt;li&gt; &lt;div class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;"hot spare" capability through database mirroring. If a SQL Server instance fails, the work can be shifted over to the backup server automatically.&lt;/div&gt;&lt;/li&gt; &lt;li&gt; &lt;div class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;And of course support for user-defined types and native XML data type and better large data support&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=266863" width="1" height="1"&gt;</description></item><item><title /><link>http://weblogs.asp.net/lrozner/archive/2003/07/08/9803.aspx</link><pubDate>Tue, 08 Jul 2003 07:21:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:9803</guid><dc:creator>lrozner</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lrozner/rsscomments.aspx?PostID=9803</wfw:commentRss><comments>http://weblogs.asp.net/lrozner/archive/2003/07/08/9803.aspx#comments</comments><description>

&lt;div class="Section1"&gt;

&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;&lt;span style="font-size:12.0pt"&gt;You are
all welcome to come to our (&lt;a href="http://weblogs.asp.net/yosit"&gt;yosi&lt;/a&gt; and
me) &lt;a href="http://teched.magen.com/Events/event.aspx?EventID=36"&gt;session
about Enterprise Services&lt;/a&gt;.&lt;br /&gt;
The session will be at the 9&lt;sup&gt;th&lt;/sup&gt; 17:30, in Microsoft Israel.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=9803" width="1" height="1"&gt;</description></item><item><title>BaseCodeGenerrators goes internal</title><link>http://weblogs.asp.net/lrozner/archive/2003/04/21/5888.aspx</link><pubDate>Mon, 21 Apr 2003 11:16:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5888</guid><dc:creator>lrozner</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lrozner/rsscomments.aspx?PostID=5888</wfw:commentRss><comments>http://weblogs.asp.net/lrozner/archive/2003/04/21/5888.aspx#comments</comments><description>
&lt;P&gt;Yet another change I have encountered while migrating our environment to the 
VS.NET 2003 and the 1.1 Framework is the change of the class 
BaseCodeGeneratorWithSite from public to internal.&lt;?xml:namespace prefix = o ns 
= "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;For those of u who did not encounter it I can just say that it is used for 
building custom tools, and a sample can be found in the &lt;A 
href="http://msdn.microsoft.com/msdnmag/issues/02/10/NETTopTen/default.aspx"&gt;MSDN 
magazine&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Those of u who already used it (like me) will have to face the fact that 
Microsoft has decided that the class is to be internal in the VS.NET 2003, so u 
can’t use it any more that way, but, a small search in &lt;A 
href="http://www.gotdotnet.com/"&gt;got dot net&lt;/A&gt; revealed a little magic - &lt;A 
href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=4AA14341-24D5-45AB-AB18-B72351D0371C"&gt;The 
full source code&lt;/A&gt; of the class for the developers who have been using the 
class in the previous version.&lt;/P&gt;
&lt;P&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5888" width="1" height="1"&gt;</description></item><item><title>HttpServerUtility.Transfer change in Framework 1.1</title><link>http://weblogs.asp.net/lrozner/archive/2003/04/14/5601.aspx</link><pubDate>Mon, 14 Apr 2003 15:34:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5601</guid><dc:creator>lrozner</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lrozner/rsscomments.aspx?PostID=5601</wfw:commentRss><comments>http://weblogs.asp.net/lrozner/archive/2003/04/14/5601.aspx#comments</comments><description>
&lt;P&gt;A week ago while I tried the new 1.1 framework on our web project, I have 
encounter a strange unexplainable behavior.&lt;BR&gt;Thou I could not explain it 
exactly; it was definitely a change of behavior between the 1.0 and the 1.1 
framework.&lt;/P&gt;
&lt;P&gt;A few breakpoints and some call stacks after, I discovered that a call to 
HttpServerUtility.Transfer(string path) is translated in 1.0 to 
HttpServerUtility.Transfer(string path, bool perserveForm = &lt;B&gt;false&lt;/B&gt;) and in 
1.1 to HttpServerUtility.Transfer(string path, bool perserveForm = 
&lt;B&gt;true&lt;/B&gt;).&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;With 
a little help of Anakrino(&lt;A href="http://www.saurik.com"&gt;www.saurik.com&lt;/A&gt;) u 
can see the difference more easily&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;Framework 1.0 &lt;BR&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/SPAN&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN 
style="COLOR: blue"&gt;void&lt;/SPAN&gt; Transfer(&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; 
path) &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" 
/&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN 
style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN 
style="COLOR: blue"&gt;bool&lt;/SPAN&gt; local0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN 
style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Page 
local1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN 
style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;local0 = &lt;SPAN 
style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN 
style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;local1 = &lt;SPAN 
style="COLOR: blue"&gt;this&lt;/SPAN&gt;._context.Handler &lt;SPAN 
style="COLOR: blue"&gt;as&lt;/SPAN&gt; Page;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN 
style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN 
style="COLOR: blue"&gt;if&lt;/SPAN&gt; (local1 != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt; 
&amp;amp;&amp;amp; local1.IsPostBack)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN 
style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/SPAN&gt;local0 = &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN 
style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN 
style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Transfer(path, local0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;BR&gt;&lt;/SPAN&gt;Framework 
1.1&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/SPAN&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN 
style="COLOR: blue"&gt;void&lt;/SPAN&gt; Transfer(&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; 
path) &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN 
style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN 
style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Transfer(path, &lt;SPAN 
style="COLOR: blue"&gt;true&lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5601" width="1" height="1"&gt;</description></item></channel></rss>