| Предыдущий | Следующий |
| ERROR_INDOUBT_TRANSACTIONS_EXIST | ERROR_ROLLBACK_TIMER_EXPIRED |
ERROR_TM_VOLATILE
Что означает ERROR_TM_VOLATILE
ERROR_TM_VOLATILE — операцию завершить нельзя, поскольку диспетчер транзакций не имеет журнала.
Что проверить
Зафиксируйте транзакцию/UOW, диспетчер ресурсов и API, на котором появился ERROR_TM_VOLATILE.
- Проверьте фазу транзакции, её конечное состояние, тайм-аут и первый диспетчер ресурсов, который отказал или потерял состояние.
- Не продолжайте использовать старый дескриптор транзакции после abort/commit; перед новой попыткой убедитесь, что исход предыдущей операции однозначно определён.
- Установите, какая операция первой перевела объект в конечное/отменённое состояние до ERROR_TM_VOLATILE. Не продолжайте использовать старый дескриптор/контекст после завершения; новую попытку начинайте только после фиксации исхода предыдущей.
Исходная формулировка
the requested operation requires a durable transaction manager, but this TM has no log.
Do not assume a volatile TM can be upgraded in place after transactions have begun.
Match recovery and log-management APIs to the TM durability model.
Determine how the TM was created and whether the application intended crash recovery.
this result belongs to the Windows Kernel Transaction Manager transaction-processing model.
Технические ссылки
- Microsoft: transaction managers and durable logs
- Microsoft: creating and recovering a KTM resource manager
- Microsoft: KTM resource-manager log streams and recovery
Нужно найти другой код? Найти другой код состояния или ошибки.
