Article ID: 883715 - Last Review: May 18, 2007 - Revision: 1.4 ODBC32.dll file causes a deadlock when loading an MFC extension DLLSYMPTOMSYou have a multi-threaded application that uses the
ODBC32.dll file and the ODBCCR32.dll file. When the ODBC32.dll file tries to
load a Microsoft Foundation Classes (MFC) extension DLL, you notice a deadlock
in the application. CAUSEThe ODBC32.dll file does not use the AfxLoadLibrary function to load the ODBCCR32.dll file. By design, the ODBC32.dll
file loads the ODBCCR32.dll file, and the ODBCCR32.dll file gains the NTDLL
loader lock and then tries to gain the MFC global lock. This may cause a
permanent deadlock in a multi-threaded application. RESOLUTION To resolve this problem, obtain the latest service
pack for Microsoft Windows XP. For additional information, click the following
article number to view the article in the Microsoft Knowledge Base: 322389
(http://support.microsoft.com/kb/322389/
)
How to obtain the latest Windows XP service pack
STATUSMicrosoft
has confirmed that this is a problem in the Microsoft products that are listed
in the "Applies to" section. This problem was first corrected in MDAC 2.8
Service Pack 1. MDAC 2.8 Service Pack 1 is included with Windows
XP Service Pack 2 (SP2). MORE INFORMATIONAccording to MFC rules, an MFC extension DLL must be loaded
by using the AfxLoadLibrary function. The reason for this rule is that an MFC Extension DLL
makes calls to the AfxLockGlobals function internally from the dllmain function. Therefore, the core purpose of the AfxLoadLibrary function is to enforce the order of the locks to avoid deadlock
situations. REFERENCES For additional information, click the
following article number to view the article in the Microsoft Knowledge Base: 824684
(http://support.microsoft.com/kb/824684/
)
Description of the standard terminology that is used to describe
Microsoft software updates
For additional information, visit the following
Microsoft Developer Network (MSDN) Web sites:Extension DLLs http://msdn2.microsoft.com/en-us/library/h5f7ck28(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/h5f7ck28(vs.71).aspx) AfxLoadLibrary http://msdn2.microsoft.com/en-us/library/zzk20sxw(vs.80).aspx (http://msdn2.microsoft.com/en-us/library/zzk20sxw(vs.80).aspx) | Article Translations
|

Back to the top
