Microsoft KB Archive/307802

= SQL Server error 8510 may be reported unnecessarily =

Article ID: 307802

Article Last Modified on 2/28/2005

-

APPLIES TO


 * Microsoft SQL Server 2000 Standard Edition

-



This article was previously published under Q307802



SYMPTOMS
Under rare conditions, the following error message is returned to the client and logged to the Microsoft SQL Server error log:

Error: 8510, Severity: 20, State: 1

Enlist of MSDTC transaction failed: Result Code = 0x8004d00e..

Under the conditions that are described in this article, the logging of error 8510 is considered unnecessary. For details about the specific conditions, see the &quot;More Information&quot; section.

Beginning with SQL Server 2000 Service Pack 1 (SP1), error 8510 is not logged to the error log under the conditions that are described in this article. Instead, error 8510 is raised internally within SQL Server but is not sent to the client or logged in the error log. You still see error 8510 in SQL Profiler if you are capturing the Exception event.



CAUSE
A rare condition can occur when a server process ID (SPID) makes a call to the sp_reset_connection stored procedure. That SPID first obtains a reference to the Microsoft Distributed Transaction Coordinator (MSDTC) transaction. Later, it may try to enlist in the transaction. If the transaction has been committed or aborted between the time that the reference is obtained and the time that the attempt to enlist occurs, SQL Server raises error 8510.



MORE INFORMATION
The 8510 error message can occur when two SQL Server SPIDs are working on behalf of the same MSDTC transaction. One of the SPIDs is completing a successful abort or commit operation. The second SPID is trying to re-enlist or reset the connection state. The reset is generally associated with connection pooling operations. The second SPID incorrectly looks for the MSDTC transaction. Then, it encounters the 8510 error message when it can no longer locate the transaction by a GUID. It may not be able to locate the transaction because the transaction was aborted or committed successfully.

For this problem to occur, the following conditions must be true:
 * A MSDTC transaction is used.
 * ODBC Connection pooling or similar application connection pooling logic is used.
 * Typically,Generally requires SQL Server to be is running on two or more processors.
 * One SPID must be trying to enlist in a new transaction or must be resetting the connection by using the sp_reset_connection stored procedure.
 * Either the MSDTC transaction must time out or a second SPID must be handling the abort or the commit of the MSDTC transaction.

If error 8510 is seen only in a SQL Profiler trace, it can be ignored.

If error 8510 is logged to the error log, you should follow standard troubleshooting procedures. For additional information, visit the following Microsoft Web site:

http://www.microsoft.com/technet/support/ee/result.aspx?ProdName=SQL%20Server&LCID=1033&EvtID=8510&EvtSrc=MSSQLServer&ProdVer=2000.80.760.0

Keywords: kbprb kbpending KB307802

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.