On 12 Jun 2011, at 12:07pm, Ian Hardingham wrote:

> I believe it's fine to have four applications open the same database 
> file and use it concurrently.

Assuming you are compiling without any special directives which turn this 
ability off.  For instance, read about everything mentioned in the section:

<http://www.sqlite.org/compile.html#threadsafe>

Apart from that, just use transactions properly.  Most people ask this question 
about 'multiple processes' so any previous answers about this are answers to 
your question.

> I have a few questions.
> 
> 1.  Do I need to use any special PRAGMA or other option to use this 
> functionality best?

No.  Just don't use PRAGMAs to defeat anything SQLite does by default.  Many of 
the PRAGMAs which are normally used to speed SQLite up do it by defeating the 
multi-user ability.  If you leave stuff alone it should all work fine.

> 2.  Is it possible to (ab)use SQLite to perform as some kind of mutex?  
> Could I go "down" on one table and "up" once I've finished a section of 
> code in my application which I wish to be only run once at any given time?

I'm not certain I understand your question but SQLite performs a kind of 
mutexing by default.  If you want to use SQLite as a semaphore system between 
applications you can do it by having applications perform (or try to perform) 
BEGIN EXCLUSIVE and see what result code they get.

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

Reply via email to