I was tasked to use sqlite on a NFS mount on MacOSX 10.4. I had
numerous problems with it because MacOSX does not implement locks
properly. It would run for about 15 minutes or so and then I would
start receiving Database Malformed errors. I had to come up with a
different solution.
I came up with a scheme where only one process would handle updating the
database directly. All other processes locally or remotely would update
the database through a file hand shaking protocol.
Here is an example
Database Updater Process (Server)
Database Client Process (Client)
Server defines two directories (queries and responses).
Client wants to insert, update or delete data from a database.
1. client creates a file with the necessary information
2. client moves file into queries directory
3. server sees new file in queries directory
4. server parses file
5. server inserts, updates or deletes data from database.
Client wants to select data from a database.
1. client creates a file with the appropriate sql statement
2. client moves file into queries directory
3. server sees new file in queries directory
4. server parses file
5. server preforms select statement
6. server creates response file
7. server moves response file into response directory
8. client sees new response file in response directory
9. client parses file
10. client obtains data
This scheme is preferred over sockets because if the database updater
process dies you won't lose information. All inserts, updates and
deletes will be sitting in the queries directory waiting for the
database updater process to start again.
This is just one solution to work around the NFS problem I was having.
If you find NFS does not work for you I would try either some sort of
sockets implementation or some sort of file hand shaking protocol.
Vishal Kashyap wrote:
Dear Ray ,
I would be interested in knowing how you handle simulatneous inserts and/or
updates...
Their is a possibility of simultaneous selects thats all. Moreover the
shared drive would be mapped
--
With Best Regards,
Vishal Kashyap.
http://www.vishal.net.in
--
Software Engineer
[EMAIL PROTECTED]
301.286.7951