Что означает код HRESULT 0x8004D018 (XACT_E_ALREADYINPROGRESS)?

 
Предыдущий Следующий
XACT_E_NOTIMEOUT XACT_E_ABORTED

XACT_E_ALREADYINPROGRESS

Параллельные запросы завершения должны сходиться к одной операции протокола

XACT_E_ALREADYINPROGRESS сообщает, что фиксация, отмена или другое действие транзакции было начато и ещё не закончено. Распределённое завершение может оставаться активным, пока MSDTC ожидает голоса участников, удалённые диспетчеры транзакций, надёжное журналирование или подтверждения результата.

Не запускайте второй путь завершения как обход тайм-аута. Сохраните исходный асинхронный результат или обратный вызов, сопоставьте его по идентификатору транзакции и разрешайте отмену только через API, который явно её поддерживает. Если вызывающие стороны могут конкурировать, назначьте единственного владельца перехода и возвращайте последующим сторонам существующую ожидающую операцию. Перезапуск MSDTC во время первой фазы может превратить проблему задержки в восстановление и транзакции с неопределённым исходом.

Сведения о параллельности для сохранения

  • Тип операции, владелец и время начала.
  • Ожидающий асинхронный обратный вызов или дескриптор завершения.
  • Участник, в данный момент задерживающий продвижение.
  • Вторая вызывающая сторона и причина попытки того же перехода.

Ссылки


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