| Предыдущий | Следующий |
| XACT_E_HEURISTICCOMMIT | XACT_E_HEURISTICDANGER |
XACT_E_HEURISTICDAMAGE
Heuristic damage подтверждает расхождение распределённого состояния
XACT_E_HEURISTICDAMAGE означает, что системе известно: одни ветви транзакции выполнили commit, а другие — abort. В отличие от состояния in-doubt, это не просто нехватка информации: противоречащие устойчивые результаты уже зафиксированы.
Прекратите обычные повторы транзакции и начните согласование на уровне приложения. Постройте матрицу участников с идентификатором ветви, локальным результатом, затронутыми записями и действием восстановления. Координатор не может восстановить атомарность после того, как оба результата стали устойчивыми. Исправление может потребовать компенсации закоммиченной работы, повторного применения прерванной работы или перевода затронутых объектов в контролируемое исключительное состояние. Сохраните журналы и не допускайте обработки частично согласованных данных обычным рабочим процессом.
Минимальная запись об инциденте heuristic damage
- Полный список участников и каждый подтверждённый результат.
- Записи приложения или сообщения, изменённые каждой ветвью.
- Время и субъект, ответственный за принудительное эвристическое решение.
- Выбранная процедура компенсации и проверки.
Ссылки
- Microsoft MS-DTCO: ответственность координатора за единый результат
- The Open Group: смешанные эвристические результаты
- IETF: требования атомарного согласования для распределённых транзакций
Нужно найти другой код? Найти другой код состояния или ошибки.