Quote:
Originally Posted by npr
No problem here using two Libra 2's with windows 10.
Use Calibre and don't take any special measures to connect / disconnect.
Wonder if it's being caused by a anti virus programme??
|
I find that doubtful. My procedure for triggering the issue is to open any book, read a few pages and then connect to the computer (MacOS Sonoma, Windows 11, SUSE Tumbleweed, etc.). I will see the write ahead log and shared memory files (.sqlite-wal and .sqlite-shm file extensions) which will be removed when the database is closed.
To me, this suggests that it is an issue with the way my Kobo's close the database before the USB connect. My Sage misbehaves the most often while my Clara HD despite having a much larger database file is less likely to exhibit this behaviour.
When I tried reducing the number of books on my Sage to <100, I was unable to generate the failure to close in a test of about 25 connects.
Quote:
While a database connection is open on a WAL-mode database, SQLite maintains an extra journal file called a "Write Ahead Log" or "WAL File". The name of this file on disk is usually the name of the database file with an extra "-wal" suffix, though different naming rules may apply if SQLite is compiled with SQLITE_ENABLE_8_3_NAMES.
The WAL file exists for as long as any database connection has the database open. Usually, the WAL file is deleted automatically when the last connection to the database closes. However, if the last process to have the database open exits without cleanly shutting down the database connection, or if the SQLITE_FCNTL_PERSIST_WAL file control is used, then the WAL file might be retained on disk after all connections to the database have been closed. The WAL file is part of the persistent state of the database and should be kept with the database if the database is copied or moved. If a database file is separated from its WAL file, then transactions that were previously committed to the database might be lost, or the database file might become corrupted. The only safe way to remove a WAL file is to open the database file using one of the sqlite3_open() interfaces then immediately close the database using sqlite3_close().
|