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