| Предыдущий | Следующий |
| XACT_E_COMMITPREVENTED | XACT_E_HEURISTICCOMMIT |
XACT_E_HEURISTICABORT
Эвристический откат повышает доступность ценой возможной потери атомарности
XACT_E_HEURISTICABORT означает, что участник по административному или внутреннему решению выполнил откат, не следуя ожидаемому исходу координатора. Эвристические решения являются исключительными действиями восстановления и обычно применяются, когда ресурс долго остаётся в неопределённом состоянии, а оператор или политика продукта принудительно выбирает исход.
Не рассматривайте этот код как обычный откат. Определите глобальное решение и сравните его с локальным решением участника. Если координатор зафиксировал транзакцию, а этот ресурс откатил её, данные приложения стали несогласованными и требуют сверки по бизнес-записям, идентификаторам транзакций и журналам аудита. Сохраняйте запись об эвристическом решении, пока не проверены все затронутые системы: её удаление лишь уничтожит свидетельство расхождения.
Данные для сверки после эвристического отката
- Исход координатора и время сохранения устойчивого решения.
- Ветвь диспетчера ресурсов, выбравшая откат.
- Команда оператора или автоматическая политика, принудившая решение.
- Бизнес-объекты, изменённые другими участниками, которые зафиксировали транзакцию.
Ссылки
- Microsoft MS-DTCO: восстановление транзакций
- The Open Group: эвристические исходы XA
- PostgreSQL: подготовленные транзакции и внешнее разрешение
Нужно найти другой код? Найти другой код состояния или ошибки.