| Предыдущий | Следующий |
| ERROR_INDOUBT_TRANSACTIONS_EXIST | ERROR_ROLLBACK_TIMER_EXPIRED |
ERROR_TM_VOLATILE
Что означает ERROR_TM_VOLATILE
ERROR_TM_VOLATILE — операцию завершить нельзя, поскольку диспетчер транзакций не имеет журнала.
Что проверить
Зафиксируйте транзакцию/UOW, диспетчер ресурсов и API, на котором появился ERROR_TM_VOLATILE.
- Установите, какая операция первой перевела объект в конечное/отменённое состояние до ERROR_TM_VOLATILE. Не продолжайте использовать старый дескриптор/контекст после завершения; новую попытку начинайте только после фиксации исхода предыдущей.
Практический смысл и диагностика
- Запрошенная KTM operation требует durable transaction manager, а текущий TM создан volatile и не имеет recovery log.
- Определите, как был создан TM и нужна ли приложению crash recovery; durability model должен задаваться до начала транзакционной работы.
- Не пытайтесь считать volatile TM «апгрейдируемым» в durable после появления transactions или открытых enlistments.
- Сопоставьте recovery/log-management APIs с типом TM и проверьте, что вызывающая ветка не смешивает volatile и durable сценарии.
- Если операция действительно требует восстановления после сбоя, создайте и используйте durable TM с корректно настроенным log вместо повторения вызова на volatile instance.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
