Что означает код HRESULT 0xC800044F (hrTransTooDeep)?

 
Предыдущий Следующий
hrWriteConflict hrInvalidSesid

hrTransTooDeep

Что означает hrTransTooDeep

hrTransTooDeep означает, что Extensible Storage Engine (ESE) превысил поддерживаемую глубину вложенных transaction save points в одной session. Частая причина — helper-функции, каждая из которых безусловно начинает собственную transaction внутри caller-owned transaction.

Что проверить

  • Сопоставьте JetBeginTransaction, JetCommitTransaction и JetRollback по одной ESE session и посчитайте фактическую nesting depth.
  • Определите владельца внешней transaction и не открывайте helper-level save point там, где функция должна работать внутри уже существующей транзакции.
  • Отличайте этот код от hrNotInTransaction: там transaction отсутствует, а здесь уровней уже слишком много.

Как подтвердить правильную обработку

Исправление подтверждается ограниченной глубиной save points и корректно сбалансированными Begin/Commit/Rollback без hrTransTooDeep.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.