With debian packages:
sqlite3 3.2.1-1
libsqlite3-0 3.2.1-1
libdbd-sqlite3-perl 1.08-1 (with looks_like_number test elided)
I have an sqlite3 database that is accessed by a perl cgi script.
I want accesses to block if the database is in use by another process,
and not to fail with an error.
The cgi code looks like:
my $attr = { RaiseError => 1, AutoCommit => 1 };
my $cdbh = DBI->connect( "dbi:SQLite:dbname=$CREDB", "", "", $attr);
$cdbh->func( 3600000, 'busy_timeout' );
$cdbh->do( q[DELETE FROM m2u WHERE user = ?;], undef, $user);
but I still occasionally get failures:
DBD::SQLite::db do failed: database is locked(5) at dbdimp.c line 403
Am I doing something wrong?
What is the correct way to make accesses block/retry when the
database is busy?
-jonathan
--
Jonathan H N Chin, 2 dan | deputy computer | Newton Institute, Cambridge, UK
<[EMAIL PROTECTED]> | systems mangler | tel/fax: +44 1223 767091/330508
"respondeo etsi mutabor" --Rosenstock-Huessy