Microsoft KB Archive/152063

= BUG: DB-Lib Unable to Handle Burst of TDS Packets Under TCP/IP =

Article ID: 152063

Article Last Modified on 3/1/2005

-

APPLIES TO


 * Microsoft SQL Server 4.21a Standard Edition

-



This article was previously published under Q152063



BUG# NT: 15078



SYMPTOMS
Under TCP/IP socket Net-Library, a DB-Library (DB-Lib) application may not be able to handle a large number of TDS packets that are sent back to the client very quickly. As a result, the following error occurs, which also breaks the connection:

DB-Library: Possible network error: Read from SQL Server failed.

Net-Library error 0: (null)



CAUSE
When TCP/IP sends a large number of small TDS packets to clients, TCP tends to coalesce those small data packets. With the TCP windowing mechanism, the client's receive buffer typically contains numerous TDS packets waiting to be fetched by DB-Lib. When this happens, DB-Lib may incorrectly process the incoming data. The problem is more likely to occur with a faster server and a slower client.



WORKAROUND
This problem only occurs under TCP/IP; therefore, you may want to use other IPCs (such as named pipes, IPX/SPX, or RPC) instead.

Also, reducing the window size on the client side TCP/IP can make the problem less likely to occur.



STATUS
Microsoft has confirmed this to be a problem in Microsoft SQL Server DB- Library versions 6.5 and 6.0. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

Additional query words: bundling Nagle bad token dblib

Keywords: kbbug kbfix kbprogramming KB152063

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.