Обсуждение: ODBC queries die; "Unexpected protocol character from backend"
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello: I have a PostgreSQL 7.1.3 system which is accessed from an Apache CGI handler via ODBC (driven by libiodbc-3.0.5). It has worked very well, but on two occasions queries just stop working. The Apache error log shows: Unknown error; Unexpected protocol character from backend (send_query), SQLSTATE=S1000 Unexpected protocol character from backend (send_query), SQLSTATE=S1000 and not much else. If I stop and restart the Apache handler, the problem is resolved -- until the next time. I see nothing in the PostgreSQL logs on the database server which would describe a possible cause. I'm not sure if it is related (it probably is), but the PostgreSQL logs contain many lines of the form: pq_flush: send() failed: Broken pipe Prior to these lines were occasional lines: pq_recvbuf: unexpected EOF on client connection but I would assume the user just hit stop on their client browser rather than waiting for the query to finish. Any advice would be appreciated. - -----------------< codingstyle.com: What's your style? >---------------- Steve Frampton <frampton@codingstyle.com> http://www.codingstyle.com GNU Privacy Guard ID: 99F18E3A (see http://www.gnupg.org/ for details) GNU-PG Fingerprint: 244D FA2F 5EAB 6F52 41B4 8FB4 D4F4 0738 99F1 8E3A -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE8Cw/x1PQHOJnxjjoRAojGAJ9AJbOhOUtNUBr4ggs6CgmVAXBfnwCgrNHT LxQAFiJ9THwmKtno/NEWVJs= =bJD1 -----END PGP SIGNATURE-----
Steve Frampton <frampton@codingstyle.com> writes: > I have a PostgreSQL 7.1.3 system which is accessed from an Apache CGI > handler via ODBC (driven by libiodbc-3.0.5). It has worked very well, but > on two occasions queries just stop working. > The Apache error log shows: > Unknown error; > Unexpected protocol character from backend (send_query), SQLSTATE=S1000 > Unexpected protocol character from backend (send_query), SQLSTATE=S1000 This looks like the ODBC driver has somehow gotten out of sync with the backend, and is looking for a message type character in the body of some other message. Hard to tell for sure though with so little info. You might need to add some debug instrumentation to the ODBC driver to try to figure out what's happening. At the very least, turn on query logging at the postmaster so you can work out what query is causing this. regards, tom lane