Understanding server-side protocol initialization error codes

With SQL Server 2005, a server-side protocol error will generally prevent the instance from starting. To fascilitate the identification of the source of the problem, the server will write an entry into the errorlog with the following format:

TDSSNIClient initialization failed with error <x>, status code <y>

Where <x> is the error code returned by the underlying communication or security subsystem

            <y> is an internal SQL Server protocol error state

The underlying error code, <x>, is typically an error code returned by the Windows network layer or by an SSPI call. For Windows network error codes, the "net helpmsg" command may be able to assist in interpreting the code. SSPI error codes are not as easy to decipher and require searching in the Microsoft knowledge base or looking through the WinError.h file if the platform SDK is installed. However, in many cases, the root of the problem may be determined just from inspecting the error state (more details below).

An example of an error that may be logged is:

TDSSNIClient initialization failed with error 0x80092004, status code 0x38.

The 0x80092004 is an SSPI error code that translates to CRYPT_E_NOT_FOUND and 0x38 is the SQL Server protocol error state that indicates that SSL support could not be started. This error was generated because the SSL layer was unable to load the specified SSL certificate.

The general categories of the SQL Server protocol error states are summarized in the following table:

ERROR STATES

PROTOCOL AREA

3 (0x03), 64-79 (0x40-0x4F)

Shared Memory

6-30 (0x09-0x1E)

TCP/IP

31-35 (0x1F-0x23)

DAC

53 (0x35), 80-95 (0x50-0x5F)

Named Pipes

54 (0x36), 96-111 (0x60-0x6F)

VIA

112-127 (0x70-0x7F)

HTTP

56 (0x38), 128-143 (0x80-0x8F)

SSL

144-159 (0x90-0x9F)

General

 

The next table describes some commonly encountered error states:

ERROR STATE

DESCRIPTION

0x03

Error starting shared memory support

0x04

All protocols disabled

0x0A

Unable to initialize the TCP/IP listener

0x1C

Server configured to listen on a specific IP address in a cluster environment

0x1E

Duplicate IP address detected in network

0x35

Error starting named pipe support

0x36

Error starting VIA support

0x38

Error obtaining or using the Certificate for SSL

0x3A

Unable to initialize the communication listeners

0x40

Unable to initialize the Shared Memory listener

0x50

Unable to initialize the Named Pipe listener

0x60

Unable to initialize the VIA listener