| Предыдущий | Следующий |
| hrOutOfSessions | hrTransTooDeep |
hrWriteConflict
Что означает hrWriteConflict
hrWriteConflict (0xC800044E) — не удалось получить блокировку записи: данные уже заблокированы для записи.
Что проверить
Зафиксируйте базу, таблицу или сессию ESE и первый API Jet/ESENT, который вернул hrWriteConflict.
- Проверьте состояние базы и журналов ESE, свободные ресурсы процесса и состояние активной транзакции именно в момент отказа.
- Если ошибка возникла при восстановлении или работе с журналами, сопоставьте поколения журналов, контрольную точку и выбранный набор файлов; не подменяйте восстановление простым повтором операции.
- Определите, кто владеет ресурсом в момент hrWriteConflict, и ожидается ли это по контракту API. Закройте или завершите только конфликтующую операцию; принудительное снятие блокировки без понимания владельца может повредить состояние.
Исходная формулировка
another session owns a conflicting write lock for the target record or page.
Typical API surface — JetBeginSession, JetBeginTransaction, JetCommitTransaction, JetRollback, and update APIs
hrTransTooDeep — the session exceeded the supported nesting depth of transaction save points
First corrective direction — rollback the losing transaction, apply bounded jittered retry, and keep the transaction body idempotent
The key comparison for this result is this: hrSessionWriteConflict occurs between cursors in one session; this result is cross-session contention.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
