Microsoft KB Archive/105751

From BetaArchive Wiki
< Microsoft KB Archive
Revision as of 17:50, 18 July 2020 by 3155ffGd (talk | contribs) (importing KB archive)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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)

SYMPTOMS

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.”

CAUSE

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.

WORKAROUND

Access to the following functions should be serialized with a single synchronization object:

dbcursoropen() dbopen() dbuse() dbmsghandle() dberrhandle()

STATUS

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.