SQL Server cannot bind to the TCP/IP port on which SQL Server is listening when the TCP\IP port is used by another application


When you fail over the SQL Virtual Server to another node and then fail back to the original node, SQL Virtual Server sometimes fails to bind to the port on which it is listening. SQL Virtual Server then also fails to accept incoming connections on TCP/IP. When this type of failure occurs, the following error messages are logged in the SQL Server error logs:

2000-06-26 09:54:10.72 server SuperSocket Info: Bind failed on TCP port 1433.
2000-06-26 09:54:10.74 server SQL server listening on Named Pipes.
2000-06-26 09:54:10.74 server SQL Server is ready for client connections
Note This behavior may also occur on non-clustered SQL Server 2000 computers, and on SQL Server 2005 computers.


There is another application that is running on the computer, which takes control of the port on which SQL Server is listening. In this case, the port is TCP port 1433. The problem also occurs in situations where there is a heavy TCP/IP client load.

This behavior has other potential causes. If the workaround in this article does not resolve the problem, see the following articles in the Microsoft Knowledge Base:
293107 TCP\IP port in use by another application

319578 Error message when you change the IP address on a SQL Server failover cluster node: "Bind failed"

312935 FIX: SQL Server fails to bind TCP/IP port at startup

308091 BUG: Hide Server option cannot be used on multiple instances of SQL Server 2000


Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows

To work around this problem, add a
SuperSocketNetlib\Tcp\TcpAbortiveClose value in the registry key for the MSSQLServer for the particular instance. To do this, follow these steps:
  1. Start Registry Editor (Regedt32.exe) from the command line.
  2. Locate, and then click the following key in the registry:
    • SQL Server 2000:
    • SQL Server 2005:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Tcp\

      Note MSSQL.x is a placeholder for the corresponding value for your system, you can locate
      MSSQL.x from the value of the
      MSSQLSERVER registry entry in the following registry subkey.
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL\
  3. On the Edit menu, point to New, and then click DWORD Value.
  4. Type
    TcpAbortiveClose, and then press ENTER.
  5. On the Edit menu, click Modify.
  6. Click
    Decimal, and then type 1 in the
    Value data field.
  7. Quit Registry Editor.
Note If the registry key has been created and set to 1 in a SQL Server 2000 instance, it will migrate to the SQL Server 2005 location during instance migration.

More Information

For more information, click the following article number to view the article in the Microsoft Knowledge Base:
286303 Behavior of SQL Server 2000 network library during dynamic port detection

293107 TCP\IP port in use by another application