| Предыдущий | Следующий |
| STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED | STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED |
STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED
Table-level ownership не разрешилось в допустимое время
0x8067000E — терминальный вариант table/connection locking: retry window исчерпан. Он отличается от BUSY_TIMEOUT_EXCEEDED, который относится к database-file contention.
Evidence в момент тайм-аута
- Снимите список active statements и connection owners.
- Зафиксируйте transaction dependency graph и thread stacks.
- Сохраните timeout value и порядок, в котором writers получают ownership.
Точная граница в документации: BUSY_TIMEOUT_EXCEEDED concerns database-file contention; LOCKED_TIMEOUT_EXCEEDED is narrower table/connection ownership.
Добавление worker threads в lock cycle только увеличивает неопределённость.
Восстановление
Разорвите transaction-order cycle и гарантируйте finalize statements на каждом exception path. После исправления стресс-тест с двумя writers должен завершаться bounded transactions без достижения table-lock timeout.
Технические ссылки
- Microsoft Win32 metadata: winerror.h.
- SQLite: Shared-cache locking model.
- SQLite: Transaction control.
- Microsoft: Windows service guidance for StateRepository.
Нужно найти другой код? Найти другой код состояния или ошибки.
