INF: Multiple Named Pipes Connections May Cause Error 17832

ID: Q165189


The information in this article applies to:


SUMMARY

When SQL Server receives many simultaneous Named Pipes connection requests, some connection requests may fail if the pipe is busy. In the SQL Server error log, multiple "17832 Unable to read login packet" errors are typically logged. On the client side, error 231 "connection busy" or "pipe busy" may be generated.

These errors may be generated when a client connection tries to open a pipe and there is no pipe instance available to service the next pipe open request. This is an expected behavior in an environment where SQL Server is hit by numerous simultaneous connection requests, as in the case of Microsoft Internet Information Server (IIS).

However, this behavior does not prevent you from implementing very large multi-user systems. In fact, Microsoft SQL Server is used in production with over 4,000 concurrent users connecting by means of named pipes to a single server.


MORE INFORMATION

There is only one thread that handles incoming SQL Server Named Pipes connection open requests. In an environment where multiple simultaneous named pipes connection requests are issued, it is very likely that no pipe instance is available to service the next pipe open request at any particular moment. In this case, a pipe busy status is returned to the client and the client retries the connection within the specified timeout period until the pipe is available. From a network sniffer trace, on the Windows NT Server Create response, error code (172) STATUS_PIPE_NOT_AVAILABLE is returned to the client. In case of a 16-bit client connection, code (231) ERROR_PIPE_BUSY is returned to the client.

In this situation, DB-Library and the ODBC driver issue a retry mechanism that retries after a delay that varies from 200 ms up to one second. The client may successfully connect during one of the retries, but it may also fail if the connection keeps receiving a pipe busy status in all the retries for the duration of the logon timeout value that is set on the client.

The "17832 Unable to read login packet" errors are more noticeable if you have an ODBC front end application. This error is generated because the initial session between the client and the server has been established but the client timed out before the login packet was sent to the server.

The following suggestions can help reduce the occurrences of these errors:

For more information about configuring TCP/IP backlog parameter to handle multiple and simultaneous connections to SQL Server, please refer to the following article in the Microsoft Knowledge Base:
Q154628 : INF: SQL Log 17832 With Multiple TCP/IP Connection Requests.


Keywords          : kbnetwork kbusage SSrvDB_Lib SSrvNet_Lib 
Version           : 6.0 6.5
Platform          : WINDOWS 
Issue type        : kbinfo 

Last Reviewed: April 9, 1999