| Предыдущий | Следующий |
| SQLITE_E_ABORT_ROLLBACK | SQLITE_E_READONLY_CANTLOCK |
SQLITE_E_BUSY_SNAPSHOT
Что означает SQLITE_E_BUSY_SNAPSHOT
SQLITE_E_BUSY_SNAPSHOT (0x87AF0205) — База данных занята из-за конфликта со снимком.
Значение относится не ко всему компоненту «SQLite», а к связке «занятая база, снимок транзакции SQLite»; до очистки состояния важно разделить ожидание, нагрузку и недоступность.
Диагностика и проверка результата
Когда исходная операция завершается сообщением «база данных занята из-за конфликта со снимком», разделите время ожидания очереди, сети, сервера и локального ввода-вывода; повтор оправдан только после наблюдаемого изменения состояния или нагрузки.
С первым HRESULT по теме «занятая база, снимок транзакции SQLite» сопоставьте полный extended result code, SQL, параметры, режим journal, путь к базе и состояние транзакции.
Не потеряйте данные PRAGMA wal_checkpoint(PASSIVE);, WAL: без них трудно отделить тему «занятая база, снимок транзакции SQLite» от последующего сбоя.
PRAGMA wal_checkpoint(PASSIVE);
Повторите операцию в том же окружении и сравните первый отличающийся вызов; для результата 0x87AF0205 этого надёжнее, чем единичный успешный запуск на других данных.
Документация для результата 0x87AF0205: коды результатов и ошибок SQLite · режим Write-Ahead Logging SQLite · SQLite: Set a busy timeout.
Нужно найти другой код? Найти другой код состояния или ошибки.