PRB: Dbmsspx3.dll Does Not Support Larger TDS Packet Size

ID: Q152133


The information in this article applies to:


SYMPTOMS

The client-side SPX Net-Library for Windows, Dbmsspx3.dll, does not support negotiated packet size. If the DB-Library or ODBC application tries to use a larger TDS packet size, the following errors may occur when running a query that returns a large number of rows:

Possible network error, read from SQL Server failed. General SQL Server error: Check messages from SQL Server.

This command did not return data, and it did not return any rows DB-Library Process Dead - Connection Broken

After the query fails, the application may hang the workstation or cause the system to become unstable. Trying to close the application may cause Windows to exit unexpectedly.

Similar connection problems occur when using the 16-bit ODBC drivers with a TDS packet size larger than 512 bytes under IPX/SPX.


CAUSE

This problem is due to the architecture limit in the current version of Dbmsspx3.dll, which does not support a larger TDS buffer size.


WORKAROUND

You can avoid this problem by forcing the client application to use the default 512-byte TDS packet size. There are several ways this can be done:

  1. Don't make any explicit calls such as DBSETLPACKET() in your application to set a larger packet size.


  2. Configure your SQL Server default "Network Packet Size" to 512 bytes.


  3. Use later versions of ODBC driver or DB-Library that can automatically restrict the packet size to 512 for SPX clients.



Additional query words: ipx/spx


Keywords          : 
Version           : 6.0
Platform          : WINDOWS 
Issue type        : 

Last Reviewed: March 26, 1999