| Предыдущий | Следующий |
| XACT_E_WRONGUOW | XACT_E_NOIMPORTOBJECT |
XACT_E_XTIONEXISTS
Повторное подключение обычно указывает на повторно использованное состояние поставщика или соединения
XACT_E_XTIONEXISTS означает попытку создать подключение к транзакции там, где одно уже активно. Это бывает, когда автоматически подключающийся поставщик также подключают вручную, инициализация выполняется дважды или соединение из пула сохраняет связь с внешней транзакцией.
Определите слой, владеющий подключением. Если поставщик автоматически присоединяется к внешним транзакциям, удалите лишний явный вызов enlist, а не игнорируйте HRESULT. Для собственных диспетчеров ресурсов индексируйте подключения одновременно по идентификатору транзакции и экземпляру ресурса и делайте инициализацию идемпотентной. Несколько логических операций могут использовать одно подключение, но не должны создавать конкурирующие протокольные объекты для одной ветви.
Признаки повторного подключения
- Настройки автоматического и явного enlistment.
- История выдачи и сброса соединения в пуле.
- Идентификатор транзакции, уже сопоставленный экземпляру ресурса.
- Стеки исходного и повторного запросов подключения.
Ссылки
- Microsoft: создание подключения диспетчера ресурсов
- Microsoft MS-DTCO: обязанности подключения
- The Open Group: ветви ресурсов XA и связи
Нужно найти другой код? Найти другой код состояния или ошибки.