| Предыдущий | Следующий |
| XACT_E_UNKNOWNRMGRID | XACT_E_WRONGUOW |
XACT_E_WRONGSTATE
Callbacks транзакции и запросы приложения образуют автомат состояний
XACT_E_WRONGSTATE означает, что метод распознан, но не может выполняться в текущей фазе транзакции. Например, подключение после начала завершения, повторный ответ Prepared, фиксация отменённой ветви или подтверждение запроса второй фазы до соответствующей подготовки.
Регистрируйте переходы состояний, а не только имена методов. Собственные диспетчеры ресурсов должны сериализовать обработку callbacks и устойчиво сохранять состояние до возврата протокольного голоса. Приложения должны предотвращать гонку параллельных commit и abort. Повтор допустим только после подтверждения переходного состояния и явного разрешения API выполнить метод позже; при конечном состоянии требуется новая транзакция.
Что собрать о машине состояний
- Последний успешный протокольный callback и ответ.
- Параллельная фиксация, отмена, тайм-аут или остановка.
- Было ли состояние Prepared устойчиво записано ресурсом.
- Число повторных callbacks или уведомлений завершения.
Ссылки
- Microsoft MS-DTCO: жизненный цикл транзакции
- Microsoft: асинхронные callbacks диспетчера ресурсов
- The Open Group: состояния и коды возврата XA
Нужно найти другой код? Найти другой код состояния или ошибки.
