| Предыдущий | Следующий |
| STATUS_TRANSACTION_ALREADY_ABORTED | STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER |
STATUS_TRANSACTION_ALREADY_COMMITTED
STATUS_TRANSACTION_ALREADY_COMMITTED указывает, что транзакция уже достигла состояния фиксации. Последующая фиксация, откат или переход фазы не могут изменить исходный результат.
Это не равнозначно успешной дублирующей операции на уровне ресурса. KTM уже мог поручить диспетчерам ресурсов сделать изменения постоянными, поэтому повтор на уровне бизнес-логики должен выполняться как новая транзакция и учитывать последствия завершённой.
Фиксация уже сделала исходный результат окончательным
- Проверьте окончательное уведомление о фиксации и состояние завершения каждого соответствующего диспетчера ресурсов.
- Используйте запись идемпотентности или согласования для вызывающей стороны, потерявшей исходный ответ об успехе.
- Не отправляйте откат только потому, что клиент не получил ожидаемое подтверждение после фиксации.
Ссылки
- Microsoft: обзор Kernel Transaction Manager
- Microsoft: компоненты обработки транзакций KTM
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.