Microsoft KB Archive/159744

From BetaArchive Wiki
Knowledge Base


Article ID: 159744

Article Last Modified on 2/22/2005



APPLIES TO

  • Microsoft SQL Server 6.5 Standard Edition



This article was previously published under Q159744

BUG #: 16292 (6.5)

SYMPTOMS

After you issue a ROLLBACK TRANSACTION command, you receive the following error:

Msg 2, Level 16, State 16


However, there is no such thing as msg 2. In addition, as with any server message causing a DB-Library call to fail, it is likely that you will receive DB-Library error 10007 "General error, check for other server messages," as a signal to check for server messages.

This problem occurs if you have done the following in sequence:

  1. Created a local temporary table in a stored procedure.
  2. Entered a user-defined transaction.
  3. Cancelled the query.
  4. Issued the ROLLBACK TRANSACTION command.


WORKAROUND

Other than the unexpected DB-Library error 10007 and server message 2 being returned to the client, there are no other adverse effects.

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 3 for Microsoft SQL Server version 6.5. For more information, contact your primary support provider.

MORE INFORMATION

The sequence that causes this problem is normal for many applications. It is common to get blocked on a lock while in a user-defined transaction, then timeout and have the DB-Lib message handler return INT_CANCEL or otherwise issue dbcancel(). If the other criteria are met as well, you will receive message 2.

However, message 2 does not usually cause any problems. Applications should always be prepared to receive any server message. They should not be hard coded to expect specific numbers or types of server messages.

Keywords: kbbug kbfix kbusage KB159744