| Предыдущий | Следующий |
| MQ_ERROR_MESSAGE_NOT_AUTHENTICATED | ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS |
MQ_ERROR_MESSAGE_LOCKED_UNDER_TRANSACTION
Что означает MQ_ERROR_MESSAGE_LOCKED_UNDER_TRANSACTION
MQ_ERROR_MESSAGE_LOCKED_UNDER_TRANSACTION (0xC00E009C) — Сообщение сейчас обрабатывается в транзакции.
Код 0xC00E009C относится не ко всему компоненту «COM/WinRT», а к операции в области «контракт вызываемого interface, аргументы и state объекта». Сообщение «сообщение сейчас обрабатывается в транзакции» позволяет начать с темы «mq, сообщение, locked, under, transaction».
Что проверить и как подтвердить исправление
Не начинайте с общего сброса компонента: сопоставьте первый отказ с фактическими параметрами операции. При 0xC00E009C и условии «сообщение сейчас обрабатывается в транзакции» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Диагностика 0xC00E009C должна включать IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите HRESULT, ID. Для темы «mq, сообщение, locked, under, transaction» при 0xC00E009C важны значения именно на первом отказе, а не после обработки ошибки верхним уровнем.
После локализации 0xC00E009C действуйте по контракту подсистемы: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0xC00E009C и условия «сообщение сейчас обрабатывается в транзакции» неизменённый повтор без нового состояния не считается исправлением.
После исправления повторите тот же вызов на прежних данных; у результата 0xC00E009C должен измениться первый неуспешный этап, а не только последующее сообщение.
Документация для результата 0xC00E009C: MSMQTransaction.Commit and transaction model links · DTC Developers Guide · enable MS DTC diagnostic tracing.
Нужно найти другой код? Найти другой код состояния или ошибки.