| Предыдущий | Следующий |
| STATUS_INVALID_TRANSACTION | STATUS_TM_INITIALIZATION_FAILED |
STATUS_TRANSACTION_NOT_ACTIVE
STATUS_TRANSACTION_NOT_ACTIVE возвращается, когда код продолжает использовать транзакцию после того, как KTM перестал считать её активной. Типичные границы — завершённый commit, откат, тайм-аут, решение восстановления или клиентский путь, сохранивший дескриптор после окончания области транзакции.
Это отличается от STATUS_TRANSACTION_NOT_FOUND: not-active означает, что операция связана с транзакцией, состояние которой больше непригодно, а not-found является ошибкой поиска объекта. Он также отличается от STATUS_TRANSACTION_ALREADY_ABORTED и STATUS_TRANSACTION_ALREADY_COMMITTED, которые сообщают известный конечный результат.
Транзакция достигла конечного или непригодного состояния
- Зафиксируйте идентификатор транзакции и последнее уведомление KTM или вызов завершения для неё.
- Закрывайте или выводите из использования состояние области транзакции после конечного результата, а не повторно используйте его для новой единицы работы.
- Начинайте новую транзакцию для повторяемой бизнес-операции только после определения, была ли предыдущая зафиксирована или отменена.
Ссылки
- Microsoft: обзор Kernel Transaction Manager
- Microsoft: компоненты обработки транзакций KTM
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.
