Microsoft KB Archive/105751
FIX: GP Fault in Multi-Threaded DB-Library Program
PSS ID Number: Q105751 Article last modified on 01-24-1995
4.20 | 4.20
OS/2 | WINDOWS
|The information in this article applies to:|
|- Microsoft SQL Server Programmer’s Toolkit, version 4.2|
BUG# 9531 (4.20.00)
When calling DB-Library from multiple threads of execution within a client application, a general protection fault (GP fault) occurs. This happens despite serialization of DB-Library calls involving global variables as documented in the Microsoft SQL Server “Programmer’s Reference for C.”
Interactions between threads executing several different DB-Library functions can result in a situation leading to an infinite recursion and GP fault. This is most likely to occur when multiple threads are executing dbuse() and dbcursoropen() simultaneously.
Access to the following functions should be serialized with a single synchronization object:
dbcursoropen() dbopen() dbuse() dbmsghandle() dberrhandle()
Microsoft has confirmed this to be a problem in DB-Library version 4.20.00. This problem was corrected in DB-Library version 4.21.00. For more information, contact your primary support provider.
Additional reference words: 4.20.00 DB-Lib cursor cursors multi threads KBCategory: kbprg KBSubCategory: SSrvDB_Lib SSrvProg
Copyright Microsoft Corporation 1995.