Re: PostgreSQL and PHP persistent connections - Mailing list pgsql-interfaces

From Thies C. Arntzen
Subject Re: PostgreSQL and PHP persistent connections
Date
Msg-id 20010207205611.A11560@schnuffel.thieso.net
Whole thread Raw
In response to PostgreSQL and PHP persistent connections  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: Re: PostgreSQL and PHP persistent connections  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-interfaces
On Wed, Feb 07, 2001 at 02:12:26PM -0500, Bruce Momjian wrote:
> Thies, we talked at LinuxWorld about improving the reliability of
> persistent PostgreSQL connections in PHP.
   cc'ing php-dev
   bruce,    hope you had a successful show!

> 
> I believe the problem is that persistent connections sometime do not
> pass clean sessions because of open transactions and SET changes to the
> session.
   yep...

> 
> 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
thinkyou   might have found the solution to the php-postgres problem! do   you know how other script-interfaces (perl)
topostgres   handle the very same thing?
 

> 
> 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
handleson it for each   request to PHP. that way the sessions are always clean. but i   also do a forces rollback on
thesession handle before i free   it on request-end so that in case of a script error all   outstanding transactions
arerolled-back.
 
   regards,   tc   


pgsql-interfaces by date:

Previous
From: JParker@coinstar.com
Date:
Subject: Re: Asychronous Query Processing via Libpq
Next
From: Alex Pilosov
Date:
Subject: Re: [HACKERS] Plan for straightening out the include-file mess