FIX: dbcursorfetchex() Can Cause Blocking in DB-Library (151301)



The information in this article applies to:

  • Microsoft SQL Server 6.0
  • Microsoft SQL Server 6.5

This article was previously published under Q151301
BUG#: 15039

SYMPTOMS

If a DB-library application calls dbcursorfetch() or dbcursorfetchex() successfully in one thread, subsequent calls to dbcursoropen() or dbclose() from other threads using the same DBPROCESS would be blocked. Sp_who and sp_lock show no blockage on the server side, and the DB-library application would appear to hang.

CAUSE

dbcursorfetch() and dbcursorfetchex() do not release the Semaphore on SUCCEED.

WORKAROUND

Use a separate DBPROCESS for each thread.

STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.5. This problem has been corrected in U.S. Service Pack 1 for Microsoft SQL Server version 6.5. For more information, contact your primary support provider.

Modification Type:MajorLast Reviewed:10/16/2003
Keywords:kbBug kbfix kbProgramming KB151301