Richard,
Thanks for looking into this.
I've placed some debug output in the sqlite2_step function
and I found that it returns SQLITE_MISUSE here:
--
static int sqlite3Step(Vdbe *p){
sqlite3 *db;
int rc;
assert(p);
if( p->magic!=VDBE_MAGIC_RUN )
{
return SQLITE_MISUSE;
}
--
I have no idea what this MAGIC_RUN means.
Does it indicate that infact I'm using an allready released statement ?
Please note that I'm not able to reproduce the problem when
I switch the shared cache off.
Thank you
Kind regards
Marcus Grimm
D. Richard Hipp wrote:
> On Mar 4, 2009, at 5:19 AM, Marcus Grimm wrote:
>
>> Hi all,
>>
>> I'm doing a little stress test on a server application and run into
>> a problem when two threads are trying to access the database.
>> Here is the background:
>> 1. shared cache is enabled prior open any DB connection.
>> 2. Each thread then opens a DB connection.
>> 3. Thread A just reads table entries continuosly by
>> doing sqlite3_prepare_v2 and followed by some sqlite3_step to
>> parse the result set.
>> He then uses sqlite3_finalize and after a few ms he repeats
>> everything.
>> 4. Thread B is triggered to update or insert some a new values
>> in some tables.
>> To do so I obtain an EXCLUSIVE transaction, do the insert/update
>> and COMIT.
>>
>> Now, a problem arises occasionally that thread A gets an
>> SQLITE_MISUSE when
>> trying to call sqlite3_step, most likely because thread B currently
>> writes into
>> the DB, I guess.
>>
>> Now, my question:
>>
>> How to handle the SQLITE_MISUSE ?
>
> My guess is that the SQLITE_MISUSE is being returned because you are
> calling sqlite3_step() with a statement that has already been
> destroyed by sqlite3_finalize().
>
>
> D. Richard Hipp
> [email protected]
>
>
>
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
--
Marcus Grimm, MedCom GmbH Darmstadt, Rundeturmstr. 12, 64283 Darmstadt
Tel: +49(0)6151-95147-10
Fax: +49(0)6151-95147-20
--------------------------------------------------
MedCom slogans of the month:
"Vacation ? -- Every day at MedCom is a paid vacation!"
"Friday I have monday in my mind."
"MedCom -- Every week a vacation, every day an event, every hour a cliffhanger,
every minute a climax."
"Damned, it's weekend again!"
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users