Lev Lvovsky wrote:
It looks like from reading the docs, that the startup.pl file can handle specifying more than one user for the purpose of making multiple connections with different database accounts.I'm having a problem in retrieving these cached connections when running the code after server startup. Am I correct in assuming that specifying identical DBI connection parameters in the mod_perl handler as those in the startup.pl connections will return the $dbh of the corresponding cached connection?
In using the 'mysql' client to show a list of connections, I see that in addition to the several cached connections I create upon startup, running a mod_perl handler creates another db connection (not using the cached one).Any pointers appreciated.
is this mod_perl 1 or 2 ?
Setting $Apache::DBI::Debug = 2; and watching you're error log file
should tell you what its doing.
package X;
# database
our $host = 'mysql.x.y';
our $dsn = "dbi:mysql:db;host=$host";
our $user = 'u';
our $pass = 'p';
our %db_attrs = (
RaiseError => 1,
PrintError => 0,
Taint => 0,
AutoCommit => 1,
LongReadLen => 50000,
LongTruncOk => 1,
ShowErrorStatement => 1,
ChopBlanks => 1,
FetchHashKeyName => "NAME_lc",
);
startup.pl:
use X ();
use Apache::DBI (); ## order matters
use DBI (); ## this must be the first use of DBI
Apache::DBI->connect_on_init($X::dsn, $X::user, $X::pass,\%X::attrs);
## having made the above comments, you can do this in httpd.conf also
## using PerlModule lines.
package Y;
use X ();
use DBI ();
use Apache2::Log ();
use Apache2::RequestRec ();
sub get_dbh {
my $r = shift;
my $dbh = eval {
DBI->connect($X::dsn, $X::user, $X::pass, \%X:db_attrs)
};
$r->log_error($@) if $@;
return $dbh;
}
package Z;
use Y ();
sub handler {
my $r = shift;
my $dbh = Y::get_dbh($r);
....
}
What you should end up with is 1 connection per child (assuming prefork)
When you connect, you should get one of those back. If you don't,
you're config is screwed, or your parameters are different.
see also the eg/ directory of the Apache-DBI-1.06.tar.gz HTH -- ------------------------------------------------------------------------ Philip M. Gollucci (suppressed) 323.219.4708 Consultant / http://p6m7g8.net/Resume/resume.shtml Senior Software Engineer - TicketMaster - http://ticketmaster.com 1024D/A79997FA F357 0FDD 2301 6296 690F 6A47 D55A 7172 A799 97F I never had a dream come true 'Til the day that I found you. Even though I pretend that I've moved on You'll always be my baby. I never found the words to say You're the one I think about each day And I know no matter where life takes me to A part of me will always be... A part of me will always be with you.
Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.