| Предыдущий | Следующий |
| XACT_E_NOTIMEOUT | XACT_E_ABORTED |
XACT_E_ALREADYINPROGRESS
Параллельные запросы завершения должны сходиться к одной операции протокола
XACT_E_ALREADYINPROGRESS сообщает, что фиксация, отмена или другое действие транзакции было начато и ещё не закончено. Распределённое завершение может оставаться активным, пока MSDTC ожидает голоса участников, удалённые диспетчеры транзакций, надёжное журналирование или подтверждения результата.
Не запускайте второй путь завершения как обход тайм-аута. Сохраните исходный асинхронный результат или обратный вызов, сопоставьте его по идентификатору транзакции и разрешайте отмену только через API, который явно её поддерживает. Если вызывающие стороны могут конкурировать, назначьте единственного владельца перехода и возвращайте последующим сторонам существующую ожидающую операцию. Перезапуск MSDTC во время первой фазы может превратить проблему задержки в восстановление и транзакции с неопределённым исходом.
Сведения о параллельности для сохранения
- Тип операции, владелец и время начала.
- Ожидающий асинхронный обратный вызов или дескриптор завершения.
- Участник, в данный момент задерживающий продвижение.
- Вторая вызывающая сторона и причина попытки того же перехода.
Ссылки
- Microsoft: асинхронные обратные вызовы ресурсов транзакции
- Microsoft MS-DTCO: ожидание участников первой фазы
- Microsoft MS-DTCO: подтверждения второй фазы
Нужно найти другой код? Найти другой код состояния или ошибки.