Also it suggests that transaction was began as read-only (with a
select statement) and then there was attempt to transform it to a
writing transaction (with insert, update or delete statement) when
there was another writing transaction in progress waiting for this
transaction to finish.
and that's nicely (and transparently) dealt with by using explicit
BEGIN IMMEDIATE transaction (plus proper COMMIT) along with a timeout
longer than the longest possible sequence of possible transactions.
I always use something like 20 minutes to allow for backup taking place.
Think of this timeout as "large bounded near-infinite time". Whatever
time the transaction causing BUSY will take (and other transactions
created before yours can engage), it will finally find its way unless
you have write transaction(s) repeating so quickly that yours doesn't
have any chance to ever run.
JcD
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users