On Tue, May 27, 2008 at 11:35:49AM +0200, Miklosi Attila wrote: > Hi! > > Our company has a long last problem by using libpq in multi-threaded > programs. The libpq usually closes the programs without any error > message or rarely giving the 'Invalid frontend message type 87' error. > When asked you about this error message you gave the reply below. In the > reply there is only one thing which is not clear... What does an > 'active' query mean? Or how can we detect active queries on a PGconn? > We have tried PQcancel() and PQreset() functions too, but they didn't > help solving the problem. > Our programs retrieve every result (PQgetResult() and PQclear() > functions) that is pending on the server before reusing a PGconn. The basic rule is: libpq is not reentrant. So you can't have two calls referring to the same PGConn going at the same time. If you really are serialising properly then it shouldn't be a problem. Are you doing things like sending multiple queries in a single PQexec? Or something else where the server might still be doing stuff? Have a niec day, -- Martijn van Oosterhout <kleptog@xxxxxxxxx> http://svana.org/kleptog/ > Please line up in a tree and maintain the heap invariant while > boarding. Thank you for flying nlogn airlines.
Attachment:
signature.asc
Description: Digital signature