It is fundamental computer science, CS101 you might say. Pick up a textbook on basic computing.

Sabyasachi Ruj wrote:
But can you tell me where is this documented please?

On 6/18/07, John Stanton <[EMAIL PROTECTED]> wrote:


If you knew the answer then why did you ask the question?  You can apply
regular CS or look for miracles.

You might be better off using a server based RDBMS like Oracle or
PostgreSQL where the application programmer is insulated from
synchronization issues.  Sqlite has the "lite" in its name for a very
good reason.  It is designed for embedded applications, not as an
enterprise DBMS.

Sabyasachi Ruj wrote:
> But the following link
> http://www.sqlite.org/cvstrac/wiki/wiki?p=MultiThreading
> says nothing that I have to synchronize at the application level to
create
> multiple connections, until the same database connection is being
shared!
> Ref: The four points in 'Short Answer' section.
>
> BTW: for a DBMS it does not make sense if the application programmer has
to
> synchronize to create multiple connection.
> And synhing will have considerable performance drop also.
>
>
> On 6/18/07, John Stanton <[EMAIL PROTECTED]> wrote:
>
>>
>> Threadsafe only means that threads do not access global data elements
or
>> that they synchronize (serialize) access to global data.  It does
>> nothing to synchronize threads.  That is up to the application
>> programmer.  Sqlite uses POSIX file locks for synchronixation but if
you
>> are in a totally threaded environment you can use thread sync functions
>> like mutexes or the finer grained read and write lock thread
primitives.
>>
>> If you are accessing Sqlite across a network file locks are the way to
>> go, but do depend upon network implementations and settings.  If you
>> have multiple processes on one OS you can sync using semaphores.
>>
>> Using textbook style synchronization ensures that you have minimal
>> problems and optimal performance.
>>
>> Sabyasachi Ruj wrote:
>> > But I think we do not have to take care of synchronizing sqlite
access.
>> > sqlite internally does if it is compiled with THREADSAFE=1.
>> >
>> > On 6/18/07, John Stanton <[EMAIL PROTECTED]> wrote:
>> >
>> >>
>> >> The problem is fairly straight forward. Sqlite is a single resource
>> >> being shared by multiple thyreads so you just use fundamental
>> >> synchronization logic as you would when sharing any resource between
>> >> competing threads.
>> >>
>> >> Sabyasachi Ruj wrote:
>> >> > Hi,
>> >> >
>> >> > I am using sqlite in a multithreaded environment. I have take
>> >> > reasonable like not sharing sqlite* handles. I am creating a new
>> >> sqlite*
>> >>
>> >> > for
>> >> > every thread.
>> >> >
>> >> > Where can we get more info on working with SQLite in a
multithreaded
>> >> > environment?
>> >> >
>> >> > The application is working as a service in windows.
>> >> >
>> >> > sqlite3_step() is failing with the following error message:
>> >> >
>> >> > * SQL error or missing database
>> >> > SQL logic error or missing database*
>> >> >
>> >> > I am getting this message after running the application for quite
a
>> >> long
>> >> > time (few days).
>> >> > And then if I execute *PRAGMA INTEGRITY_CHECK* on that table, I
get
>> the
>> >> > same
>> >> > error message.
>> >> >
>> >> > My application updates the database very 2 mins and the corruption
>> >> happend
>> >> > randomly
>> >> >
>> >> > I dont have any clue how to debug this!
>> >> >
>> >> > Thanks.
>> >> >
>> >> > On 5/11/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>> >> >
>> >> >> "Sabyasachi Ruj" < [EMAIL PROTECTED]> wrote:
>> >> >> > Hi,
>> >> >> > Is there any way to programmatically fix a corrupted sqlite
>> >> database?
>> >> >> > I am using sqlite version 3.3.8 with C APIs
>> >> >> >
>> >> >>
>> >> >> Sometimes VACUUM or REINDEX will help, but usually not.
>> >> >> You can also try to recover using:
>> >> >>
>> >> >>    sqlite3 OLD.DB .dump | sqlite3 NEW.DB
>> >> >>
>> >> >> But that doesn't always work either.  The best approach
>> >> >> is to avoid corruption in the first place.
>> >> >> --
>> >> >> D. Richard Hipp <[EMAIL PROTECTED]>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >>
>>
-----------------------------------------------------------------------------
>>
>> >>
>> >>
>> >> >>
>> >> >> To unsubscribe, send email to [EMAIL PROTECTED]
>> >> >>
>> >> >>
>> >>
>>
-----------------------------------------------------------------------------
>>
>> >>
>> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >>
>>
-----------------------------------------------------------------------------
>>
>> >>
>> >> To unsubscribe, send email to [EMAIL PROTECTED]
>> >>
>> >>
>>
-----------------------------------------------------------------------------
>>
>> >>
>> >>
>> >>
>> >
>> >
>>
>>
>>
>>
-----------------------------------------------------------------------------
>>
>> To unsubscribe, send email to [EMAIL PROTECTED]
>>
>>
-----------------------------------------------------------------------------
>>
>>
>>
>
>



-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]

-----------------------------------------------------------------------------






-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to