| Предыдущий | Следующий |
| hrSessionWriteConflict | hrDatabaseDuplicate |
hrInTransaction
Что означает hrInTransaction
hrInTransaction (0xC8000454) — операция запрещена внутри транзакции.
Это старый HRESULT-вариант результата ESE (Extensible Storage Engine, ESENT); в JET API соответствующее условие известно как JET_errInTransaction.
Что проверить
- Проверьте состояние экземпляра, владельца JET_SESID и уровень транзакции. Handle другого или уже завершённого сеанса нельзя сделать действительным повтором той же операции.
- Для API, разрешённого только внутри либо вне транзакции, сначала восстановите требуемое состояние сеанса и только затем повторяйте минимальный вызов.
Практический смысл и диагностика
- Operation, допустимая только на transaction level zero, вызвана в ESE session с active transaction.
- `hrNotInTransaction` — обратный precondition: operation требует active transaction.
- Проверьте balance `JetBeginSession`, `JetBeginTransaction`, `JetCommitTransaction`, `JetRollback` и update APIs.
- `hrInvalidSesid` означает stale/foreign session handle и не объясняет корректную session, находящуюся в неправильном transaction state.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
