Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re^5: SQLite with mod_perl

by james2vegas (Chaplain)
on Oct 09, 2010 at 09:27 UTC ( #864355=note: print w/replies, xml ) Need Help??

in reply to Re^4: SQLite with mod_perl
in thread SQLite with mod_perl

Do not cache your database handles, rather let Apache::DBI take care of it, use Apache::DBI in your mod_perl startup script (or use PerlModule Apache::DBI in your httpd.conf) then whenever you need to open a database connection, do it as would normally my $dbh = DBI->connect(...). If you need connections per user add private_username => $username to your connection attributes, like so:
my $dbh = DBI->connect("dbi:SQLite:dbname=$dbfile", "", "", { private_ +username => $username });
This would ensure that each user would get a per-process database handle. Note that you can't share database handles across processes unless you use something single process like FastCGI.

Replies are listed 'Best First'.
Re^6: SQLite with mod_perl
by punkish (Priest) on Oct 09, 2010 at 16:43 UTC
    Hmmm... as I mentioned in my post above, I am indeed using  PerlModule Apache::DBI. Maybe I tinkered above (too smart for my own good) trying to cache the db handle. Now I am trying with just plain my $dbh = ... , and things seem to be working.

    One other thing I have done now -- I have turned off transactions. My db handle is now created with AutoCommit => 1.

    This is really unreliable. I have no idea what caused my app to start puking and croaking yesterday, and what caused it to start working today. I have become too dependent on SQLite (and for good reason -- it is a great db store), and I really don't know of any alternatives. Any suggestions? I could try some of the key-value stores such as MongoDB/CouchDB, etc., but it would require learning a whole new paradigm, and writing new code for retrieving values (is there a DBI interface to a key-value store? **) While I do use PostGres for the bigger datasets, SQLite seems perfect for serving as the Session store, and user accounts and such.

    Update: Hot damn! DBD::DBM


    when small people start casting long shadows, it is time to go to bed

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://864355]
and the rats come out to play...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (3)
As of 2018-02-21 23:48 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (288 votes). Check out past polls.