This article was previously published under Q274265
This article has been archived. It is offered "as is" and will no longer be updated.
When sharing a single instance of a disconnected ActiveX Data Objects (ADO) Recordset object over multiple threads on a multiprocessor computer, an access violation (AV) may occur when simultaneously marshalling the recordset to two threads.
The ADO marshalling code for disconnected recordsets is not thread-safe for multiprocessor computers.
To resolve this problem, obtain the latest service pack for Microsoft MDAC 2.5. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
293312INFO: How to Obtain the Latest MDAC 2.5 Service Pack
-or-To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
260910 How to Obtain the Latest Windows 2000 Service Pack
The English version of this fix should have the following file attributes or later:
Date Version Size File name Platform ------------------------------------------------------ 02/20/2001 2.53.7220.0 327,952 Msadce.dll x86 02/20/2001 2.53.7220.0 205,072 Msdaprst.dll x86
Microsoft 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 MDAC 2.5 Service Pack 3. This problem was first corrected in Windows 2000 Service Pack 3.
To reproduce this problem, the following conditions must be met:
A single disconnected ADO recordset is stored in some process global location.
Two threads simultaneously attempt to marshall this one global recordset at exactly the same time.
The above marshalling occurs on a multiprocessor computer. This problem has not been reported or reproduced on a single processor computer.