Thread: Apache child processes making multiple persistent database connections via Apache::DBI

Hello,

Is it normal for Apache child threads to be opening more than one persistent
database connection to Postgres?  DBI 1.19, Apache::DBI 0.88

In Apache's configuration I have the maximum threads limited to 12, and
Postgres is set to allow a maximum of 32 connections.  No other apps or
users.  Periodically I receive an error that there are too many connections
to the database already and the connect attempt is refused.  Does this infer
a programming problem or Apache/Postgresql configuration problem, or is it
normal, in which case what is the recommended ratio of threads to database
connections?

Thanks!






Re: Apache child processes making multiple persistent

From
Mark Kirkwood
Date:
Ben Borger wrote:

> Hello,
>
> Is it normal for Apache child threads to be opening more than one 
> persistent
> database connection to Postgres?  DBI 1.19, Apache::DBI 0.88
>
>  
>
How I think it works is :

Each connection to the db for a userid and an apache child results in a 
persistent connection.

So if user1, user2 both get serviced by apache child 1, then it ends up 
with a persistent connection for each of them.

How this problem is often circumvented is to authenticate externally, 
save credentials (or an id for them) in a cookie, and do all db work by 
means 1 synthetic database userid.

best wishes

Mark