I'm a little confused over the use of Apache::DBI or using DBI's connect_cached.
I always thought that Apache::DBI would allow me to use one connection through
multiple processes, but that seems to be not true. After reading the docs more
thoroughly , it seems as though one handle can not be shared by each process at
server startup and the connections are persistent on a per process level.
At server startup, through the use of Apache::DBI, I start with an initial 8
processes and the DB (v$session) shows 8 connections. Under stress testing, we
run out of connections :(
Some debug during server startup ....
[snip]
28668 Apache::DBI PerlChildInitHandler
28668 Apache::DBI need ping: yes
28668 Apache::DBI new connect to
'******^\/^\^\AutoCommit=1^\PrintError=1^\Username=/'
[/snip]
The processes that were created during startup use the same hash as ...
......... running the application
[Tue 07 17 11:03:52 2007][PID 28668 PCE::DBI::Helper::connect 39 ][DEBUG] DBH
Apache::DBI::db=HASH(0xa89f414)
[Tue 07 17 11:03:52 2007][PID 28666 PCE::DBI::Helper::connect 39 ][DEBUG] DBH
Apache::DBI::db=HASH(0xa89f414)
When a new process is created ...
28727 Apache::DBI new connect to
'******/AutoCommit=1PrintError=1Username=/'
and later used ...
28727 Apache::DBI need ping: yes
28727 Apache::DBI already connected to
'******/AutoCommit=1PrintError=1Username=/'
[Tue 07 17 11:10:05 2007][PID 28727 PCE::DBI::Helper::connect 39 ][DEBUG] DBH
Apache::DBI::db=HASH(0xa89f414)
It uses the same hash. But, this isn't always the case. Under stress testing,
new hashes have been created.
So, my question is, how do I not bring my system to a grinding halt with
runaway connections? There will be more than one DB instance running on this
machine, too.
I've seen some stuff on perlmonks but mostly people talk about using a
singleton (which I believe Apache::DBI is already doing).
We're using Oracle DB and Apache/2.2.4 (Unix) mod_ssl/2.2.4 OpenSSL/0.9.8e
mod_perl/2.0.3 Perl/v5.8.8
Any advice would be great.
CIA
-Ants
---------------------------------
Yahoo! Mail is the world's favourite email. Don't settle for less, sign up for
your freeaccount today.