Re: persistent vs. non-persistent - Mailing list pgsql-php

From Frank Joerdens
Subject Re: persistent vs. non-persistent
Date
Msg-id 20011002112117.A31207@rakete.joerdens.de
Whole thread Raw
In response to Re: persistent vs. non-persistent  ("Mitch Vincent" <mvincent@cablespeed.com>)
Responses Re: persistent vs. non-persistent  (Andrew McMillan <andrew@catalyst.net.nz>)
List pgsql-php
On Mon, Oct 01, 2001 at 06:56:37PM -0400, Mitch Vincent wrote:
> I'm not sure about the internal workings, I see what you mean and will await
> your finding with great interest!
>
> -Mitch

[ . . . ]
> > I don't understand why apache (or PHP) doesn't see that it has a
> persistent
> > database connection open to use.
> >
> > I'm checking the PHP PGSQL extensions at this moment.
> > More info later....
> >
> > Saludos.... ;-)

I keep having problems too; I think because I never quite managed to
figure out the mechanism either. Sometime last year someone mentioned
that the php.ini parameters

pgsql.max_links
pgsql.max_persistent

are meant to be understood as /per Apache child/; so if you have, say, 5
Apache children waiting for a request, and

pgsql.max_persistent = 2

you could have up to 10 open connections. If an apache child which does
not have an open connection gets a request, it will open a new
connection, obviously. So if 4 of the 5 Apache children have open
connections, but the 5th gets the next request, a new connection will be
opened. I am not sure about what happens when a child which already has
an open connection gets a new request. Hypothesis: It depends on the
database. Say you have 3 distinct databases on your server and your
php.ini parameter

pgsql.max_persistent = 2

Now let's say you have 10 open Apache children, each of which has a
connection to databases #1 and #2. Now requests to databases #1 and #2
will be answered, but not to #3: You'll get the error message:

Warning: PostgreSQL: Too many open persistent links (2)

My tests seem to confirm this.

It would seem to follow that you only need as many persistent
connections per Apache child as you have databases from which you want
to serve http requests.

Regards, Frank

pgsql-php by date:

Previous
From: "Mitch Vincent"
Date:
Subject: Re: persistent vs. non-persistent
Next
From: Andrew McMillan
Date:
Subject: Re: persistent vs. non-persistent