Что означает код HRESULT 0x8004D006 (XACT_E_HEURISTICDAMAGE)?

 
Предыдущий Следующий
XACT_E_HEURISTICCOMMIT XACT_E_HEURISTICDANGER

XACT_E_HEURISTICDAMAGE

Heuristic damage подтверждает расхождение распределённого состояния

XACT_E_HEURISTICDAMAGE означает, что системе известно: одни ветви транзакции выполнили commit, а другие — abort. В отличие от состояния in-doubt, это не просто нехватка информации: противоречащие устойчивые результаты уже зафиксированы.

Прекратите обычные повторы транзакции и начните согласование на уровне приложения. Постройте матрицу участников с идентификатором ветви, локальным результатом, затронутыми записями и действием восстановления. Координатор не может восстановить атомарность после того, как оба результата стали устойчивыми. Исправление может потребовать компенсации закоммиченной работы, повторного применения прерванной работы или перевода затронутых объектов в контролируемое исключительное состояние. Сохраните журналы и не допускайте обработки частично согласованных данных обычным рабочим процессом.

Минимальная запись об инциденте heuristic damage

  • Полный список участников и каждый подтверждённый результат.
  • Записи приложения или сообщения, изменённые каждой ветвью.
  • Время и субъект, ответственный за принудительное эвристическое решение.
  • Выбранная процедура компенсации и проверки.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.