WAL mode requires the use of shared memory (in this case implemented using the mmapped -shm file) in order to coordinate access to the write-ahead log by various processes doing access. But in order to share memory, all processes accessing the database have to be on the same machine, obviously.
So, no, it is not possible to run a database in WAL mode on one machine and simultaneously access that database over a network share from another machine. You'll have to switch to one of the rollback modes (ex: DELETE) in order to do that. On 9/4/15, Todd Biggins <tbiggins at gmail.com> wrote: > Hello all, > > I've been digging through SQLite.org and these forums, but I was hoping for > a final consensus on my conundrum: > > I have a third party app that is writing to a local v3.0 SQLite database > with WAL. I want to access it outside of the existing app solely for the > purpose of SELECT queries (using System.Data.SQLite) - these queries would > be run by only one other process, either from the same host or a remote > machine (by sharing the database folder through NTFS/SMB) > > Am I able to run SELECT queries without altering the database integrity for > the other app? Since the database is using WAL, it looks like I need write > access to the folder structure, and even a SELECT query attempts to > generate the -WAL and -SHM file on the database - files which already exist > from the 3rd party app. > > To reiterate - is there a "safe" way to use System.Data.SQLite to passively > view tables without altering the database or its cache? > > Thanks so much for your time! > _______________________________________________ > sqlite-users mailing list > sqlite-users at mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > -- D. Richard Hipp drh at sqlite.org