Received: from mail.retep.org.uk ([216.126.85.184]) by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f17Luhx07258; Wed, 7 Feb 2001 16:56:43 -0500 (EST) (envelope-from peter@retep.org.uk) Received: from heather.retep.org.uk ([193.113.118.141]) (authenticated) by mail.retep.org.uk (8.11.1/8.11.1) with ESMTP id f17LuLR07237; Wed, 7 Feb 2001 16:56:22 -0500 (EST) (envelope-from peter@retep.org.uk) Message-Id: <5.0.2.1.0.20010207214024.009ee160@mail.retep.org.uk> X-Sender: peter@mail.retep.org.uk X-Mailer: QUALCOMM Windows Eudora Version 5.0.2 Date: Wed, 07 Feb 2001 21:41:43 +0000 To: Bruce Momjian , "Thies C. Arntzen" From: Peter Mount Subject: Re: PostgreSQL and PHP persistent connections Cc: pgsql-jdbc@postgresql.org, PostgreSQL-interfaces In-Reply-To: <200102071912.OAA27530@candle.pha.pa.us> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Archive-Number: 200102/53 X-Sequence-Number: 1006 At 14:12 07/02/01 -0500, Bruce Momjian wrote: >Thies, we talked at LinuxWorld about improving the reliability of >persistent PostgreSQL connections in PHP. > >I believe the problem is that persistent connections sometime do not >pass clean sessions because of open transactions and SET changes to the >session. > >We discussed using 'ROLLBACK' before passing a connection to a new user, >but the problem was that ROLLBACK with no open transaction causes a >server log error message. We discussed adding 'ROLLBACK SILENT' to fix >this, but I believe a better, more portable solution is a simple "BEGIN >WORK;ROLLBACK". This will do nothing if there is no open transaction, >and will ROLLBACK any open transaction. I propose this be sent by PHP >as the first query when passing persistent connections. > >As far as SET changes, does anyone on the PostgreSQL interfaces list >have a suggestion on how to RESET all session parameters? Seems we may >need to add this feature in to the backend. Some Java apps utilise connection pools so they would possibly benefit. I could add the BEGIN WORK;ROLLBACK; to JDBC. Peter