INF: SQL Logs 17832 With Multiple TCP\IP Connection Requests

Last reviewed: April 10, 1997
Article ID: Q154628

The information in this article applies to:
  • Microsoft SQL Server, versions 6.0 and 6.5

SUMMARY

If SQL Server is hit with multiple and simultaneous TCP/IP connection requests, such as the case with World Wide Web servers, the requests are quickly rejected by responding with a TCP/IP Reset Frame.

This symptom is difficult to detect. If the client application includes error code handling, the native error code is 10061 (WSAECONNREFUSED) for the Open() function. On the server, Error 17832 - “Unable to read login packet” appears in the SQL Error log.

If you trace this problem with a protocol analyzer, you can see that some of the connection request frames have been replied to with the TCP Reset bit set, which tells the sending station that the frame has been received, but the server does not have the resources to process the connection request.

MORE INFORMATION

A Winsock application accepts connections on a port by calling a Listen() function, which has a backlog parameter specifying the maximum length of the pending-connection queue. The Winsock specification defines the maximum Listen() backlog at five and when it exceeds five, TCP/IP issues a Reset.

The backlog for SQL Server can be configured to handle a great number of pending connections by modifying the Windows NT Registry. In some cases, the connection reset issue is resolved due to the modification.

WARNING: Using Registry Editor incorrectly can cause serious, system-wide problems that may require you to reinstall Windows NT to correct them. Microsoft cannot guarantee that any problems resulting from the use of Registry Editor can be solved. Use this tool at your own risk.

  1. Start Registry Editor (REGEDT32.EXE) and locate the following Registry subkey in the HKEY_LOCAL_MACHINE subtree:

          \Software\Microsoft\MSSQLServer\MSSQLServer
    

Note: The corresponding registry subkey in the HKEY_LOCAL_MACHINE subtree for SQL 4.21a is:

      \Software\Microsoft\SQLServer\Server

  • Select the MSSQLServer subkey. From the Edit menu, select Add Value.

  • Enter the following:

          Value Name: WinsockListenBacklog
          Data Type:  REG_DWORD
    
          Data:       <Range is 1 to 0xFFFFFFFF>
    
       NOTE: The data value affects overall system resources if it is set to
       a high value. Windows NT has a maximum overall backlog of 100 for all
       applications. The suggested method of testing with this value is to set
       the value in increments of five and observe the results until the
       connection reset stops.
    
    

  • Click OK and quit Registry Editor.

  • Shut down and restart Windows NT.

    For more information on the Listen() function, refer to the WIN32 SDK Programmer's reference.

    For more information on the backlog parameter and Windows NT, please see the following two articles in the Microsoft Knowledge Base:

       ARTICLE-ID: Q113576
       TITLE     : WinSocket App's Reject Connection Requests with Reset
    
    Frames

       ARTICLE-ID: Q127144
       TITLE     : Windows NT 3.5 Winsock Listen (Backlog) Parameter Limit
    

  • Additional query words: Internet Information Server IIS
    Keywords : kbnetwork SSrvLan
    Version : 6.0 6.5
    Platform : WINDOWS


    THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

    Last reviewed: April 10, 1997
    © 1998 Microsoft Corporation. All rights reserved. Terms of Use.