BUG: Multiple TDS Packets Cause 'Bad Token' Error for DBLIBID: Q152128
|
Under certain situations, DB-Library (DBLIB) cannot handle multiple
incoming tabular data stream (TDS) packets correctly, resulting in the
following error:
DB-Library: Possible network error. Bad token from SQL Server. Datastream processing out of sync.
Typically, each TDS packet is sent to the client by a single network packet. However, under TCP/IP sockets, TCP may choose to bundle multiple TDS data packets into a single data segment to improve the network performance (this is also knowm as Nagle algorithm). This tends to create a situation where a data row is split across two consecutive ConnectionRead(), which causes the DBLIB to be unable to decode the TDS data correctly.
Microsoft has confirmed this to be a problem in Microsoft SQL Server
version 6.0. We are researching this problem and will post new information
here in the Microsoft Knowledge Base as it becomes available.
This problem does not occur Microsoft SQl Server version 6.5.
Because only TCP/IP sockets applications are subject to the coalescing of data packets, the problem seems to occur only when TCP/IP sockets are used for the SQL Server connections. The problem does not occur under either named pipes or IPX/SPX.
Additional query words: netlib Net-Library dbmssocn dbmssoc3
Keywords : kbbug6.00
Version : 6.0
Platform : WINDOWS
Issue type :
Last Reviewed: March 27, 1999