The information in this article applies to:
SYMPTOMS
A DB-Library application for Windows may return the following error when
executing a query that returns a large number of rows under IPX/SPX:
When this occurs, the connection will be lost, and closing the application may cause Windows to stop responding. CAUSEThe Win16 DB-Library DLL (W3dblib.dll or Msdblib3.dll) does not correctly detect the IPX/SPX Net-Library for Windows. As a result, it does not automatically restrict the TDS packet size to 512 bytes. This causes DB- Library to use the default "Network Packet Size" setting on the server side, which is 4096 bytes by default. Due to the architecture limit in DBMSSPX3.DLL, a larger TDS buffer size is not supported. Attempting to use a larger TDS packet size can cause unexpected errors or make the system otherwise unstable. WORKAROUNDYou can work around this problem either by forcing the packet size to 512 through the DBSETLPACKET() DBLIB function or by reducing the default "Network Packet Size" on the server side to 512 bytes. STATUS
Microsoft has confirmed this to be a problem in SQL Server version 6.5.
This problem has been corrected in the latest U.S. Service Pack for SQL
Server version 6.5. For information on obtaining the Service Pack, query on
the following word in the Microsoft Knowledge Base (without the spaces):
MORE INFORMATION
You can call the DBLIB function, DBSETLVERSION(), to enable the 6.x
specific behavior for the application. This will cause the DBLIB to set the
TDS packet size according to the "Network Packet Size" setting on the
server side, unless you explicitly set the packet size using
DBSETLPACKET(). As the default "Network Packet Size" setting is 4096, the
DBLIB application will try to use 4096 as the packet size because it cannot
correctly detect the SPX Net-Library used. This causes the problem.
Keywords : kbbug6.50 |
Last Reviewed: March 27, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |