| Предыдущий | Следующий |
| MQ_ERROR_MISSING_CONNECTOR_TYPE | MQ_ERROR_TRANSACTION_ENLIST |
MQ_ERROR_STALE_HANDLE
Что означает MQ_ERROR_STALE_HANDLE
MQ_ERROR_STALE_HANDLE (0xC00E0056) — Служба Message Queuing была перезапущена.
Контекст результата 0xC00E0056 — подсистема «COM/WinRT» и область «контракт вызываемого interface, аргументы и state объекта». Условие «служба message queuing была перезапущена» указывает на тему «mq, stale, дескриптор», а не на общий отказ всего компонента.
Что проверить и как подтвердить исправление
До изменения конфигурации сопоставьте первый отказ с фактическими параметрами операции. Для 0xC00E0056 с описанием «служба message queuing была перезапущена» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Для воспроизведения 0xC00E0056 сохраните IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IDs, ID, HRESULT. По теме «mq, stale, дескриптор» для 0xC00E0056 сравните эти данные с исправным запуском до очистки журналов или пересоздания объекта.
После локализации 0xC00E0056 действуйте по контракту подсистемы: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0xC00E0056 и условия «служба message queuing была перезапущена» неизменённый повтор без нового состояния не считается исправлением.
Закройте диагностику после двух проверок: исходный сценарий проходит без результата 0xC00E0056, а заведомо неверный вход отклоняется на ожидаемой границе.
Документация для результата 0xC00E0056: MQReceiveMessage · MQReceiveMessageByLookupId · Microsoft Open Specifications: Queue Manager Remote Read Protocol.
Нужно найти другой код? Найти другой код состояния или ошибки.
