| Предыдущий | Следующий |
| SQLITE_E_ABORT | SQLITE_E_LOCKED |
SQLITE_E_BUSY
Что означает SQLITE_E_BUSY
SQLITE_E_BUSY (0x87AF0005) — Файл базы данных заблокирован.
Практическая граница результата — занятая база: файл базы данных заблокирован; поэтому сначала нужно разделить ожидание, нагрузку и недоступность, а не переустанавливать весь компонент «SQLite».
Диагностика и проверка результата
Когда исходная операция завершается сообщением «файл базы данных заблокирован», разделите время ожидания очереди, сети, сервера и локального ввода-вывода; повтор оправдан только после наблюдаемого изменения состояния или нагрузки.
Для диагностики темы «занятая база: файл базы данных заблокирован» сохраните полный extended result code, SQL, параметры, режим journal, путь к базе и состояние транзакции.
В воспроизводимом отчёте зафиксируйте данные SQLITE_BUSY, sqlite3_busy_timeout(), PRAGMA wal_checkpoint(PASSIVE);, WAL для проверки темы «занятая база: файл базы данных заблокирован».
PRAGMA wal_checkpoint(PASSIVE);
Подтвердите изменение повтором исходной операции: результат 0x87AF0005 не должен возникать на исправном объекте, но прежний отрицательный контроль обязан оставаться предсказуемым.
Документация для результата 0x87AF0005: коды результатов и ошибок SQLite · SQLite: File locking and concurrency · SQLite: Set a busy timeout · режим Write-Ahead Logging SQLite.
Нужно найти другой код? Найти другой код состояния или ошибки.