| Предыдущий | Следующий |
| XACT_E_UNABLE_TO_READ_DTC_CONFIG | XACT_E_ABORTING |
XACT_E_UNABLE_TO_LOAD_DTC_PROXY
Где находится ошибка
XACT_E_UNABLE_TO_LOAD_DTC_PROXY (0x8004D028) — код ошибки из области MSDTC / COM+ transactions. Короткий ориентир по имени: невозможно / to / загрузить / DTC / proxy. Для диагностики важнее определить первый API и состояние объекта в момент возврата, чем переводить символическое имя как общее сообщение.
Исходное условие в техническом описании сформулировано так: The client process could not load the MSDTC proxy DLL.
. Эту формулировку следует сопоставлять с фактическим параметром, handle, файлом или state transition в trace.
Критическая граница
Проверяйте состояние самой транзакции отдельно от причины, которая привела её к этому состоянию. Для распределённого commit важны UOW, фаза протокола, голоса участников, ownership операции и терминальный outcome.
Для этого кода особенно полезно различать два признака из исходной документации: The client process could not load the MSDTC proxy DLL.
и The result points to component loading, not remote coordinator reachability. File presence alone is insufficient: architecture, registration, dependencies, integrity, code-loading policy, and process bitness can all affect whether the proxy loads correctly.
. Они задают более узкую границу, чем название facility.
Минимальный полезный trace
- идентификатор UOW и первый API, вернувший код
- фаза prepare/commit/abort/recovery и текущий владелец перехода
- голоса и состояние resource managers, включая первый отказ
- тайм-аут, DTC trace и внешние побочные эффекты вне транзакции
- Сопоставьте trace с исходным признаком:
A 32-bit or 64-bit process resolves an incorrect component registration or unsupported binary path.
- Сопоставьте trace с исходным признаком:
An incomplete servicing, rollback, or system-file repair leaves DTC proxy registration inconsistent.
- Сопоставьте trace с исходным признаком:
Repair the Windows component or policy that prevents proxy loading, restart the affected process, and test transaction initialization. Do not download or copy a proxy DLL from another computer; version and servicing mismatches can damage the transaction stack.
Проверка гипотезы
- Проверьте именно границу «невозможно / to / загрузить / DTC / proxy» и зафиксируйте объект, аргумент или состояние, которое её подтверждает.
- Сверьте наблюдаемое состояние с отдельным исходным признаком:
Only a legacy 32-bit service fails to initialize distributed transactions after an image repair. Loader telemetry shows its architecture-specific DTC proxy registration is inconsistent. Supported component repair restores the correct proxy, and interface acquisition succeeds before the service resumes work.
.
Критерий исправления
Исправляйте конкретную фазу или ownership. Не повторяйте commit/abort на старом объекте вслепую и не создавайте новую бизнес-попытку, пока не понятен исход предыдущей транзакции.
Регрессионная проверка должна отдельно контролировать условие Preserve servicing history and component-store health results.
. Положительный тест обязан проходить после узкого исправления, а отрицательный — по-прежнему воспроизводить ожидаемый отказ на заведомо неверном состоянии.
Технические ссылки
- Microsoft: COM transaction error codes
- Microsoft: DTC interfaces
- Microsoft: enable MSDTC diagnostic tracing
- Microsoft: MSDTC security and network access
- Microsoft: HRESULT values in MS-ERREF
Нужно найти другой код? Найти другой код состояния или ошибки.