BUG: dbprocerrhandle Does Not Get Fired For Error 10029 (164171)



The information in this article applies to:

  • Microsoft SQL Server 6.0
  • Microsoft SQL Server 6.5
  • Microsoft SQL Server 7.0
  • Microsoft SQL Server 2000 (all editions)

This article was previously published under Q164171
BUG #: 15697, 16582 (NT: 6.00, 6.50)

SYMPTOMS

The per process error handler does not get fired when the number of simultaneously open DBPROCESS structures exceeds the maximum number of simultaneously open DBPROCESS structures (25 by default or the number set by dbsetmaxprocs). The call to dbopen returns NULL as expected. In such a scenario, if a global error handler is installed, it gets fired to indicate error 10029 : Maximum number of DBPROCESSes already allocated.

WORKAROUND

Install the global error handler before the call to dbopen, and then install the per process error handler for each process.

STATUS

Microsoft has confirmed this to be a problem in SQL Server 6.0, 6.5, 7.0, and SQL 2000.

MORE INFORMATION

You will encounter this problem when the LOGINREC structure is passed to dbprocerrhandle. In other cases, where the DBPROCESS structure is passed to dbprocerrhandle, a global error handler should already be installed to take care of any error that may occur up until the dbopen call.

Modification Type:MinorLast Reviewed:2/22/2005
Keywords:kbBug kbpending kbusage KB164171