Estoy viendo mis lecturas siendo bloqueadas por las escrituras en la base de datos que está en modo WAL - No estoy seguro de por qué.SQLite DB (con WAL) bloqueado al preparar una declaración "select" - ¿por qué?
Mi configuración:
- base de datos SQLite3, journal_mode = WAL, síncronos = normal procesos
- Mulitple C++ (3 para ser exactos) utiliza la base de datos - Cualquier método dentro de estos procesos abra y cierre su propio no -cuenta compartida con
sqlite3_open_v2
. - Los métodos que se está introduciendo sus datos abren la db en
SQLITE_OPEN_READWRITE
modo - Los métodos que se leen de la base de datos (es decir, sólo hay que seleccionar las declaraciones) abrir el PP en
SQLITE_OPEN_READONLY
modo
En el modo WAL creo que debería ser es posible tener lectores simultáneos mientras hay una escritura ocurriendo.
Sin embargo, yo estoy viendo "base de datos está bloqueado" cuando estoy preparando una instrucción de selección utilizando sqlite3_prepare_v2
¿Qué podría estar haciendo mal que está causando que el lector se bloquean? ¿Estoy malinterpretando lo que realmente es una "lectura"?
Algún consejo apreciado,
gracias :)