We have a server that connects to 40+ different remote computers which are running Sybase 11.0.1.2596. Our server is hosted on an aws ec2 AMI Linux instance, and the connections are set up using FreeTDS. The server has several different command-line PHP scripts that use PDO with dblib to connect and select data. 99+% of the time everything works, but sometimes I get these errors:
SQLSTATE[HY000]: General error: PDO_DBLIB: dbresults() returned FAIL
SQLSTATE[HY000]: General error: 20047 TDS: unexpected token 56 [20047] (severity 1) [(null)]
SQLSTATE[HY000]: General error: 20047 DBPROCESS is dead or not enabled [20047]
They seem to happen randomly, and I can't figure out what is causing them or how to fix it. If I just wait, it will start working again. It also seems if I use tsql to connect it will start responding:
tsql -S <odbc name> -U <username>
Any advice is greatly appreciated.
Best Answer
TDS: unexpected token
TDS
(transaction Data Stream) is the application layer protocol of Sybase & MS SQL for communication betweenOpenClient
&OpenServer
TDS
exchange between ASE &DB-LIB
client not being in sync according to theTDS
protocolTDS
connection at the ASEOpenServer
end is not expecting a request from the DB-LIB client for any resultsetTDS
token requesting resultsetTDS
token (0x38 is not a valid token nor 0x56)DB-LIB
is an arcane, unsupported Sybase client (newer, supported Sybase client is CT-LIB)