I think a single process accessing a single Sqlite database at a time over NFS is supposed to be fine.
But it is not working on Solaris. On Solaris, man page of mmap() has EAGAIN The file to be mapped is already locked using advisory or mandatory record locking. See fcntl(2). I found if the file on NFS has been locked with fcntl(), mmap() may fail. It doesn't fail if both l_start and l_end are 0. Thus, I got "Error: disk I/O error" for any operation after setting journal_mode to WAL. See https://bugzilla.mozilla.org/show_bug.cgi?id=629296 The problem is setting journal_mode to WAL is successful, but it cannot be set back. User has to move the db file to another filesystem and set journal_mode to delete. I guess -DSQLITE_SHM_DIRECTORY="/var/tmp" might be a solution, but it is unsupported. Any idea how can we make the behavior better on Solaris? Maybe fallback to another lock method if it is on NFS? BTW: With the same NFS server, sqlite3 works fine on Linux and Mac OS X. Thanks, Ginn _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users