On Tue, 23 Jul 2002 18:58:14 +1000 Mark Ridgway <[EMAIL PROTECTED]> wrote:
> Hi All, > > We're running Mason 1.04 (Apache/1.3.22 (Solaris) mod_perl/1.26 > mod_ssl/2.8.5 OpenSSL/0.9.6b) which connects to a number of Oracle > databases, so we are using Apache::DBI for connection pooling. > > As we understand it, each process has its own connection pool that > lasts for the life of that process (i.e. each child collects its own > set of DB handles until it dies). > > Whilst this is normally not an issue, when we experience network > problems, the number of available connections on some crucial databases > can quickly run out, which many open connections sitting idle in the > pool of various clients using other DBs, etc. > > What we'd like to do is send some kind of "quit" signal to the process > so that it finishes that transaction and dies, instead of waiting until > MaxRequestsPerChild. This will ensure that DB handles for this > particular DB will not be idly pooled, but instead constantly in use. > > Is there a command to do this? (e.g. like 'abort', but one that > completes the transaction successfully, and kills the child process). > (e.g. $r->die() :-) > > Also, does anyone know how to get the current "RequestsPerChild" > counter (that MaxRequestsPerChild evaluates against)? > > Hi Mark, if you don't need persistent connections for all Oracle DBs you can try to use some nonpersistent connections by setting 'dbi_connect_method' property to 'connect' in DBI connect hash options: my $dbh = DBI->connect('dbi:...',... ,{'dbi_connect_method' => 'connect'}); However I think that the right solution is a connection pool server like SQLRealy (it work very well with Oracle, MySQL, PostgresSQL, DB2, etc) Bye Enrico ========================================================= Enrico Sorcinelli - Gruppo E-Comm - Italia On Line S.p.a. E-Mail: [EMAIL PROTECTED] - [EMAIL PROTECTED] =========================================================