| Предыдущий | Следующий |
| STATUS_TRANSACTION_NO_SUPERIOR | STATUS_TRANSACTION_NOT_ENLISTED |
STATUS_EXPIRED_HANDLE
Дескриптор потерял связь с транзакцией
STATUS_EXPIRED_HANDLE указывает, что дескриптор больше не связан должным образом со своей транзакцией. Распространённая причина — дескриптор был открыт в транзакционном диспетчере ресурсов, который затем перезапустился или выполнил восстановление.
Это состояние устаревшего дескриптора, связанное со временем жизни диспетчера ресурсов TxF. Обычно правильным направлением является закрытие и повторное открытие объекта; продолжение работы со старым дескриптором рискует обратиться к уже несуществующему контексту транзакции.
Что проверить
- События перезапуска, восстановления или завершения диспетчера ресурсов на затронутом томе.
- Дескрипторы, остававшиеся открытыми после перезапуска службы, аварийного восстановления или восстановления диспетчера транзакций.
- Проверьте, повторяет ли приложение операцию, повторно открывая файл в новом контексте транзакции.
- Проверьте, не переживают ли продублированные или унаследованные дескрипторы компонент, которому принадлежит транзакция.
Полезное различие
STATUS_HANDLE_NO_LONGER_VALID часто следует за завершением или откатом транзакции. STATUS_EXPIRED_HANDLE подчёркивает потерю связи с транзакционным диспетчером ресурсов.
Ссылки
- Microsoft: Kernel Transaction Manager
- Microsoft: диспетчеры ресурсов KTM
- Microsoft: объекты KTM
- Microsoft: обзор Transactional NTFS
Нужно найти другой код? Найти другой код состояния или ошибки.