| Предыдущий | Следующий |
| ERROR_TRANSACTION_NOT_ROOT | ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED |
ERROR_TRANSACTION_OBJECT_EXPIRED
Эта ошибка означает, что дескриптор KTM стал недействительным из-за закрытия связанного Transaction Manager или Resource Manager. Дескриптор не является постоянным идентификатором и не может сохраняться между завершением менеджера, границами восстановления или демонтажем компонента.
Правильная схема восстановления
- Прекратите использовать просроченный дескриптор; не передавайте его в последующие вызовы KTM как пробный.
- Повторно откройте или создайте владеющий менеджер только после удовлетворения его требований восстановления.
- Откройте или создайте новые дескрипторы транзакции, диспетчера ресурсов и подключений для возобновляемого процесса.
- Согласуйте исход транзакции через документированный путь восстановления вместо предположения, что потеря локального дескриптора означает откат.
Явно отслеживайте владение дескрипторами в службах с асинхронными обратными вызовами. Менеджер может закрыться, пока поставленная работа всё ещё хранит старый дескриптор транзакции или подключения; отмена и контроль времени жизни должны предотвратить поздний вызов KTM.
См. RecoverTransactionManager, API восстановления KTMи определение системного кода ошибки.
Нужно найти другой код? Найти другой код состояния или ошибки.