> Any reason why this is bad?
I've found one - only works if you use PerlRequire.
PerlPostConfigRequire happens too late in the process.
So instead, I've just forced childinit() to be called whether or not you
use connect_on_init and reset the cache there.
So in MP2, connect_on_init becomes a no-op. Does this have a
significant impact on child startup times? I wouldn't have thought so.
--- Apache/DBI.pm.orig 2006-01-29 01:41:55.000000000 +0100
+++ Apache/DBI.pm 2006-01-29 01:43:34.000000000 +0100
@@ -11,6 +11,8 @@
require mod_perl2;
require Apache2::Module;
require Apache2::ServerUtil;
+ my $s = Apache2::ServerUtil->server;
+ $s->push_handlers(PerlChildInitHandler => \&childinit);
}
elsif (defined $modperl::VERSION && $modperl::VERSION > 1 &&
$modperl::VERSION < 1.99) {
@@ -45,13 +47,7 @@
sub connect_on_init {
# provide a handler which creates all connections during server startup
- if (MP2) {
- if ([EMAIL PROTECTED]) {
- my $s = Apache2::ServerUtil->server;
- $s->push_handlers(PerlChildInitHandler => \&childinit);
- }
- }
- else {
+ unless (MP2) {
carp "Apache.pm was not loaded\n" and return unless $INC{'Apache.pm'};
if ([EMAIL PROTECTED] and Apache->can('push_handlers')) {
Apache->push_handlers(PerlChildInitHandler => \&childinit);
@@ -188,6 +184,7 @@
sub childinit {
my $prefix = "$$ Apache::DBI ";
print STDERR "$prefix PerlChildInitHandler \n" if $Apache::DBI::DEBUG > 1;
+ %Connected = ();
if (@ChildConnect) {
for my $aref (@ChildConnect) {
shift @$aref;
________________________________________________________________________
Clinton Gormley [EMAIL PROTECTED]
www.TravelJury.com - For travellers, By travellers