| Предыдущий | Следующий |
| MQ_INFORMATION_DUPLICATE_PROPERTY | MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL |
MQ_INFORMATION_OPERATION_PENDING
Что означает MQ_INFORMATION_OPERATION_PENDING
MQ_INFORMATION_OPERATION_PENDING (0x400E0006) — Асинхронная операция ещё выполняется.
В подсистеме «COM/WinRT» результат 0x400E0006 относится к области «контракт вызываемого interface, аргументы и state объекта». Описание «асинхронная операция ещё выполняется» сужает проверку до темы «mq, information, операция, pending».
Что проверить и как подтвердить исправление
Сначала разделите ожидание очереди, работу компонента и зависимый ввод-вывод. Для 0x400E0006 в условии «асинхронная операция ещё выполняется» разделите ожидание очереди, работу компонента и зависимый ввод-вывод; повторяйте только после наблюдаемого изменения нагрузки или состояния.
Диагностика 0x400E0006 должна включать IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите HRESULT, ID. Для темы «mq, information, операция, pending» при 0x400E0006 важны значения именно на первом отказе, а не после обработки ошибки верхним уровнем.
Коррекция для 0x400E0006 должна быть предметной: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0x400E0006 и сообщения «асинхронная операция ещё выполняется» общий сброс допустим лишь как контроль, но не как доказательство причины.
После исправления повторите тот же вызов на прежних данных; у результата 0x400E0006 должен измениться первый неуспешный этап, а не только последующее сообщение.
Документация для результата 0x400E0006: MSMQ message properties · Message Queuing overview · Message Queuing error and information codes.
Нужно найти другой код? Найти другой код состояния или ошибки.
