kyle has asked for the wisdom of the Perl Monks concerning the following question:
Venerable monks,
I'm looking for a module that will cache a database handle for me and correctly handle when the program forks. I know DBIx::Class does this, but I don't need or want the ache of defining a schema and such, just the handle.
I have a program that uses a database. In it, I have a simple function to get a connection to the database.
sub dbh { my ($u,$p) = ('user',':)'); my $dbh = DBI->connect( "dbi:Sybase:server=sql.example.com", $u, $p, { RaiseError => 1 }, ); $dbh->do( $initial_stuff ); $L->debug( "made new database connection $dbh" ); return $dbh; }
That works fine. It would be easy enough to write something that caches that using a state variable.
sub dbh { state $dbh; if ( ! defined $dbh ) { # blah blah bah } return $dbh; }
That way I don't open up a new connection every time I need to talk to the database. Unfortunately, that will get tripped up when I fork.
I know about DBI, fork, and clone. I know how to write the code to get around this. What I want is a module that's already done it for me. Does it exist?
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Simple DBI handle caching.
by kyle (Abbot) on May 11, 2011 at 16:10 UTC | |
Re: Simple DBI handle caching.
by anonymized user 468275 (Curate) on May 11, 2011 at 15:23 UTC | |
Re: Simple DBI handle caching.
by derby (Abbot) on May 11, 2011 at 16:39 UTC | |
Re: Simple DBI handle caching.
by Your Mother (Archbishop) on May 11, 2011 at 17:28 UTC | |
by kyle (Abbot) on May 11, 2011 at 17:52 UTC |