On 2013 Jun 06, at 13:28, Richard Hipp <d...@sqlite.org> wrote:

> My guess is that App1 never actually committed the transaction.  Are you
> sure that you ran COMMIT?  And are you sure that the COMMIT was successful?

Thank you, Richard.  I didn't have a scope on App 1, and it's much more 
complicated.  It's possible that it did not successfully COMMIT.

Let's retell the story, calling them processes instead of apps.  The 
command-line tool is Process 3.  The App2, which misses the new record at 
first, is Process 2, then Process 4.

• Launch Process 2.
• Launch Process 1.
• Add a record in Process 1.  Possibly does not COMMIT.
• Launch Process 3.
• In Process 3, run the query, then terminate.  New record is PRESENT.
• In Process 2, open database, run the query, checkpoint, and close.  New 
record is ABSENT.
• Terminate Process 2, relaunch as Process 4.
• Process 4 opens database, runs the query, checkpoints, and closes.  New 
record is PRESENT.

Examining my code carefully, I'm sure that Process 2/4 does *not* keep the 
database open.  It opens the database when it needs to do a query, does the 
query, checkpoints, closes it, and forgets the database connection handle.

It don't see how Process 3 could get the new record, but Process 2 would not 
get it until a relaunch.

Is the story as I told it possible, or must I have gotten something wrong?

Jerry

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to