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

This article was previously published under Q244799
This article has been archived. It is offered "as is" and will no longer be updated.
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: 02/28/2014 00:29:10 - Revision: 1.3

  • Microsoft Office 97 Standard Edition
  • Microsoft Visual Studio 6.0 Enterprise Edition
  • kbnosurvey kbarchive kbhotfixserver kbqfe kbfix kbprb KB244799