Hi All

 

Using sqlite 3.2.7 in a multi-threaded C++ application:

 

I've got two thread's (with unique db handles), each thread does the
following:

 

BEGIN EXCLUSIVE TRANSACTION;

 

(60,000 INSERT OR REPLACE statements into the same table)

 

COMMIT TRANSACTION;

 

This works fine, as expected, one thread acquires the lock and the other
thread wait's for it to be released in a SQLITE_BUSY loop.

 

My question: Is the same thing possible/safe with a DEFERRED or IMMEDIATE
transaction?

 

When I use an EXCLUSIVE transaction all is well, but if I try to use a
DEFERRED or IMMEDIATE transaction I randomly get SQLITE_ERROR from
sqlite3_step() on one or two of the INSERT OR REPLACE statements. My indexes
are also sometimes corrupted after this. Am I missing something?

 

 

I would appreciate any help/advice/enlightenment,

 

Mike.

 

 

 

 

Reply via email to