| Предыдущий | Следующий |
| MQ_ERROR_STALE_HANDLE | MQ_ERROR_QUEUE_DELETED |
MQ_ERROR_TRANSACTION_ENLIST
Что означает MQ_ERROR_TRANSACTION_ENLIST
MQ_ERROR_TRANSACTION_ENLIST (0xC00E0058) — Не удалось присоединить указанную транзакцию.
При результате 0xC00E0058 граница диагностики проходит внутри подсистемы «COM/WinRT», в области «контракт вызываемого interface, аргументы и state объекта». Здесь сообщение «не удалось присоединить указанную транзакцию» связано с темой «mq, transaction, enlist».
Что проверить и как подтвердить исправление
Сначала сопоставьте первый отказ с фактическими параметрами операции. Для 0xC00E0058 в условии «не удалось присоединить указанную транзакцию» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Перед повтором 0xC00E0058 зафиксируйте IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите ID, HRESULT. Различия по теме «mq, transaction, enlist» для 0xC00E0058 покажут, изменился ли первый неуспешный этап.
Исправляя 0xC00E0058, меняйте только подтверждённую причину: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Результат 0xC00E0058 с описанием «не удалось присоединить указанную транзакцию» должен исчезнуть на исходных данных без обхода штатной проверки.
Подтвердите изменение повтором исходной операции: результат 0xC00E0058 не должен возникать на исправном объекте, но прежний отрицательный контроль обязан оставаться предсказуемым.
Документация для результата 0xC00E0058: enable MS DTC diagnostic tracing · destination queues · Message Queuing error and information codes.
Нужно найти другой код? Найти другой код состояния или ошибки.
