BUG: SQL Server May Not Listen on TCP/IP Sockets When TCP/IP is the Only Protocol (306865)



The information in this article applies to:

  • Microsoft SQL Server 2000 (all editions)

This article was previously published under Q306865
BUG #: 353545 (SHILOH_BUGS)

SYMPTOMS

In a SQL Server 2000 custom installation, if TCP/IP is the only selected protocol and all other protocols are disabled, SQL Server may not initialize and listen on TCP/IP sockets. The Server Network Utility shows that it is listening only on TCP/IP port 1433 even though it is not. Clients may fail to connect and the following error messages may occur:
Connection failed: SQL State: '01000' SQL Server Error: 11004 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen (Connect()). Connection Failed: SQL State: '08001' SQL Server Error: 6 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]Specified SQL server not found.
Unable to connect to server 'servername': Server: Msg 6, Level 16 state 1. [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]Specified SQL server not found.
[TCP/IP Sockets]Specified SQL server not found. [TCP/IP Sockets]ConnectionOpen (Connect()).
Note that the preceding error message can exist for TCP/IP connectivity problems other than this specific situation. To identify if SQL Server is not listening on TCP/IP, check to see if the value for TcpPort in the following registry key is incorrectly set to blank or empty:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ [Instance Name]\MSSQLServer\SuperSocketNetLib\Tcp\REG_SZ TcpPort=

WORKAROUND

To work around this problem, follow these steps:
  1. Start Registry Editor (Regedt32.exe).
  2. Locate the TcpPort value in the following key in the registry:

    Named instance:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[InstanceName]\MSSQLServer\SuperSocketNetLib\Tcp\TcpPort

    Default instance:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\TCP\TcpPort

  3. On the Edit menu, click String. Enter either of the following values:
    1. Type the port number you want. -or-

    2. Enter a value of 0 to have SQL Server dynamically detect and assign a port the next time SQL Server starts.
  4. Click OK.
  5. Quit Registry Editor.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MajorLast Reviewed:10/3/2003
Keywords:kbbug kbpending KB306865