Vedo che le mie letture vengono bloccate dalle scritture nel database che si trova in modalità WAL - Sono perplesso sul perché.SQLite DB (con WAL) bloccato durante la preparazione di un "select" statmement - perché?
mia configurazione:
- SQLite3 database, journal_mode = WAL, sincroni = NORMALE processi
- Mulitple C++ (3 per l'esattezza) utilizzare il database - Qualsiasi metodo entro questi processi aprire e chiudere loro non -connessione condivisa con
sqlite3_open_v2
. - metodi che sono l'inserimento dei dati aprono la db in modalità
SQLITE_OPEN_READWRITE
- I metodi che leggono dal database (cioè solo non selezionare le dichiarazioni) aprire il db in
SQLITE_OPEN_READONLY
modalità
In modalità WAL credo che dovrebbe essere possibile avere lettori concorrenti mentre c'è una scrittura in corso.
Eppure io sto vedendo "database è bloccato" quando sto preparando una dichiarazione prescelta utilizzando sqlite3_prepare_v2
Che cosa potrei fare male che sta causando il lettore a bloccarsi? Sto fraintendendo cosa sia in realtà un "Leggi"?
Eventuali suggerimenti apprezzato,
grazie :)