On Wed, 2004-11-10 at 02:37, Batara Kesuma wrote: > > Also, why do you want to avoid persistent connections? > > Because the DB is running out of memory just to keep the persistent > connections, I just want to try it without persistent connections and > see the result. If the overhead is not too big, I might just change it > to use normal connections.
Okay. I did something like that recently by adjusting the timeout on the database side. This was a MySQL database and we set the wait_timeout very low (15 seconds). If you use Apache::DBI, it just reconnects when necessary. If you are using your own globals to hold persistent handles, you can get in trouble doing this. > I tried this to disconnect the handler in PerlCleanupHandler, but it > didn't work. [...] > sub handler { > my ($r) = @_; > our $dbh; > if ($dbh) { > print STDERR "Got ya!!"; > $dbh->disconnect(); > } That won't work because this is not the same package that the other $dbh is declared in. > How can I disconnect 'our > $dbh' created by scripts within ModPerl::Registry in PerlCleanupHandler? The package that ModPerl::Registry puts your script in is the same every time. You can see it by printing out the value of __PACKAGE__ in your script. Then access it as $Full::Name::Of::Package::dbh. If you use Apache::DBI, all of the handles up in a nice clean hash that you can go through and disconnect in a cleanup handler. There's also probably a way to ask DBI what connections are open. - Perrin -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html