Received: from candle.pha.pa.us (candle.navpoint.com [162.33.245.46]) by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f1CHQEx33691 for ; Mon, 12 Feb 2001 12:26:14 -0500 (EST) (envelope-from pgman@candle.pha.pa.us) Received: (from pgman@localhost) by candle.pha.pa.us (8.9.0/8.9.0) id MAA04316; Mon, 12 Feb 2001 12:25:37 -0500 (EST) From: Bruce Momjian Message-Id: <200102121725.MAA04316@candle.pha.pa.us> Subject: Re: Re: PostgreSQL and PHP persistent connections In-Reply-To: <20010207205611.A11560@schnuffel.thieso.net> "from Thies C. Arntzen at Feb 7, 2001 08:56:12 pm" To: "Thies C. Arntzen" Date: Mon, 12 Feb 2001 12:25:37 -0500 (EST) CC: "Thies C. Arntzen" , Rasmus@candle.pha.pa.us, Lerdorf , PostgreSQL-interfaces , php-dev@lists.php.net X-Mailer: ELM [version 2.4ME+ PL77 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Archive-Number: 200102/98 X-Sequence-Number: 1054 > > 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. > > i'll have a look at that tomorrow (if my family allows;-). if > "BEGIN WORK;ROLLBACK" does not stack transactions i think you > might have found the solution to the php-postgres problem! do If we every get nested transactions, this will no longer work, but we don't have them, and will not for a while. > you know how other script-interfaces (perl) to postgres > handle the very same thing? They don't handle them, but our Java interface just added this feature. > > 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. > > with the oracle driver (i wrote) there is a neat thing in the > oci-libs: you have a server-handle _and_ a session handle. > the session handle sits "on" the server-handle and keeps > _all_ session specific data, the server handle "only" carries > the pure connection to oracle. so i keep the server handle > persistent and allocate/free session handles on it for each > request to PHP. that way the sessions are always clean. but i > also do a forces rollback on the session handle before i free > it on request-end so that in case of a script error all > outstanding transactions are rolled-back. Yes, it would be nice if we had that feature. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026