Hello,
In mod_perl1, using persistent (Apache::DBI) and dedicated, per-user connections (DBI) on the same machine required running two Apache instances, one with Apache::DBI and the other without it.
Has anything about that changed in mod_perl2?
Moreover, how does Apache2 know it has to load Apache::DBI? There is no "PerlModule Apache::DBI" statement in my httpd.conf (as it was under mp1), neither a "use Apache::DBI" in startup.pl or in any other module. Or, to put it the other way around: how can I avoid including Apache::DBI (in the DBI-only instance)?
As you said Apache::DBI is either on or off and it will work just the same under mp2 as it does under mp1.
However in the near future DBI is going to support pooling internally, which will take the benefit of threads if available.
And I think it could be made more flexible than Apache::DBI, i.e. too be more than just on or off. I think Apache::DBI can do the same. What we really need is some sort of pragma where you can control Apache::DBI. e.g. let's say that once you load Apache::DBI it turns the pooling on globally. But than in your script you should be able to say (you can't do it just yet):
no Apache::DBI; # which calls Apache::DBI::unimport $dbh = DBI->connect(...)
and the unimport will restore the default DBI behavior for the scope of that pragma (e.g. handler) and restores to the previous behavior on the scope exit. Similar to how the warnings pragma works.
It's be nice to have a generic pragma for turning any functionality on and off (do we have one already?). e.g. let's call it 'override':
use override 'Apache::DBI'; # Apache::DBI overrides DBI here no override 'Apache::DBI'; # the previous functionality is restored (e.g. back to DBI)
__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com