Select the product you need help with
FIX: WriterLock In OLE DB Core Components Can Starve Readers When WriterLock Opens ConnectionsArticle ID: 267566 - View products that this article applies to. This article was previously published under Q267566 On This PageSYMPTOMS
Under stress, a bug in the OLE DB Service Components may cause a thread to go into an extremely tight loop, which can cause 100% CPU utilization and thread starvation. Applications such as Microsoft Internet Information Server (IIS), Microsoft Transaction Server (MTS) and COM+ applications may appear to have stopped responding (hang), when in fact the remaining threads in the process are getting very little context and are unable to complete their operations. CAUSE
Stressing the OLE DB Service Components with a high number of connection requests can cause contention on the hash tables that contain connection information. When this contention occurs, a thread in the process can enter a for loop that will not exit until the release of an item that is held by other threads in the process. Because this for loop does not contain much code, it runs in an extremely tight loop that causes 100% CPU utilization and starves the other threads for context, so the release never occurs. The for loop does not occasionally yield execution as it should. This for loop exists in the WriterLock code that protects access to the hash tables. If the threads in the process are examined while the program seems to have stopped responding, one thread is running in the WriterLock code, and numerous other threads are in the ReaderLock code, waiting for a critical section owned by the WriterLock thread. RESOLUTIONTo resolve this problem, obtain the latest service pack for Microsoft Data Access Components 2.5. For additional information, click the following article number to view the article in the
Microsoft Knowledge Base:
293312
The English version of this fix should have the following file attributes or later:
(http://support.microsoft.com/kb/293312/EN-US/
)
INFO: How to Obtain the Latest MDAC 2.5 Service Pack
Date Version Size File name ------------------------------------------------------ 5/3/00 2.510.5303.0 483,600 bytes Oledb32.dll WORKAROUNDTo work around this problem, disable session pooling by using any of the following methods:
STATUSMicrosoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft Data Access Components 2.5 Service Pack 2. PropertiesArticle ID: 267566 - Last Review: September 26, 2005 - Revision: 1.2
|


Back to the top








