OFF97: DAO/Jet : Race Condition Causes Hang on Multiprocessor with Recordset

Article translations Article translations
Article ID: 244799 - View products that this article applies to.
This article was previously published under Q244799
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all


When executing on a multiprocessor system, using Data Access Objects (DAO) or JET methods to retrieve or update recordsets and Querydefs can produce a hang condition in the application.


There is a race condition that can occur on a multiprocessor system when more than one thread is accessing a file at the same time. This bug has been identified within the NT kernel. Under the correct circumstances, when two threads attempt to use a file simultaneously, the thread closing the file can potentially be pre-empted. Because the final cleanup on the file is not performed, all the threads attempting to access the file enter into a wait state from which they do not return.


This issue has been addressed in a Microsoft Windows NT 4.0 hotfix. For directions on how to obtain this hotfix, see the following Knowledge Base article:
246467: RAS Server Stops Responding to New PPP Connection Requests


Microsoft has confirmed that this is a problem in Windows NT 4.0.


Article ID: 244799 - Last Review: February 28, 2014 - Revision: 1.3
  • Microsoft Office 97 Standard Edition
  • Microsoft Visual Studio 6.0 Enterprise Edition, when used with:
    • Microsoft Windows NT 4.0
kbnosurvey kbarchive kbhotfixserver kbqfe kbfix kbprb KB244799

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from