Article ID: 291545 - Last Review: September 26, 2005 - Revision: 3.2 FIX: Multithreaded Java Applications Using ADO Fail with Access ViolationThis article was previously published under Q291545 On This PageSYMPTOMS
Multithreaded Java applications that use ActiveX Data Objects (ADO) to open, query, and close connections on each thread will experience an access violation (AV) after a large number of threads have been created and destroyed. The AV usually occurs when more than 100,000 threads have been created and destroyed.
CAUSE
This problem occurs when an ADO Recordset object is being garbage-collected by a different thread than the one it was created from. When the ADO connection object is being closed, it tries to free the memory for its Recordset object. The ADO connection object has inadvertently gotten hold of a Recordset object from another thread and frees that object, and the garbage collection process tries to clean it up, which causes the AV.
RESOLUTIONTo resolve this problem, obtain the latest service pack for Microsoft Data Access Components 2.6. For additional information, click the following article number to view the article in the
Microsoft Knowledge Base:
300635
(http://support.microsoft.com/kb/300635/EN-US/
)
INFO: How to Obtain the Latest MDAC 2.6 Service Pack
HotfixThe English version of this fix should have the following file attributes or later:Date Time Version Size File name Platform ------------------------------------------------------------- 02/09/01 4:35P 2.61.7209.0 528,656 Msado15.dll i386 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.6 Service Pack 1.
| Article Translations
|
Back to the top
