FIX: AV Marshalling the Same ADO Recordset on Multiple Threads (274265)



The information in this article applies to:

  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 1.5
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5

This article was previously published under Q274265

SYMPTOMS

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.

CAUSE

The ADO marshalling code for disconnected recordsets is not thread-safe for multiprocessor computers.

RESOLUTION

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 the Microsoft 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 
				

STATUS

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.

MORE INFORMATION

To reproduce this problem, the following conditions must be met:
  1. A single disconnected ADO recordset is stored in some process global location.
  2. Two threads simultaneously attempt to marshall this one global recordset at exactly the same time.
  3. The above marshalling occurs on a multiprocessor computer. This problem has not been reported or reproduced on a single processor computer.

Modification Type:MinorLast Reviewed:9/26/2005
Keywords:kbHotfixServer kbQFE kbMDAC250SP3fix kbbug kbfix kbWin2000sp3fix KB274265