Что означает код HRESULT 0x80110600 (COMQC_E_APPLICATION_NOT_QUEUED)?

 
Предыдущий Следующий
COMADMIN_E_CAT_SERVERFAULT COMQC_E_NO_QUEUEABLE_INTERFACES

COMQC_E_APPLICATION_NOT_QUEUED

COMQC_E_APPLICATION_NOT_QUEUED: интерпретация кода и контроль исправления

Windows возвращает COMQC_E_APPLICATION_NOT_QUEUED (0x80110600), когда выполняется следующее условие: Через моникер queue можно вызывать только приложения COM+, помеченные как поддерживающие очередь.

Для COMQC_E_APPLICATION_NOT_QUEUED старший бит HRESULT делает значение ошибкой. Константа COMQC_E_APPLICATION_NOT_QUEUED объявлена в winerror.h и относится к области «очереди компонентов COM+».

Техническая граница

Для COMQC_E_APPLICATION_NOT_QUEUED код относится к COM+ Queued Components. Для COMQC_E_APPLICATION_NOT_QUEUED здесь важны доступность MSMQ, пригодность интерфейса для очереди, сериализуемость вызова и доверие к отправителю; успешная запись сообщения в очередь ещё не доказывает успешное выполнение серверного компонента.

Для COMQC_E_APPLICATION_NOT_QUEUED не следует начинать с очистки состояния или переустановки компонента. Для COMQC_E_APPLICATION_NOT_QUEUED сначала необходимо привязать результат к одному вызову, объекту и поколению его состояния.

В имени COMQC_E_APPLICATION_NOT_QUEUED закодированы ориентиры для расследования: COMQC — технический признак «comqc»; APPLICATION — приложение; NOT — отсутствие требуемого условия; QUEUED — технический признак «queued». Для COMQC_E_APPLICATION_NOT_QUEUED эти ориентиры задают конкретный предмет проверки, но не заменяют контракт вызвавшего API.

Что сообщает Windows: признаки в имени константы

Компонент имени COMQC уточняет смысл COMQC_E_APPLICATION_NOT_QUEUED: речь идёт про технический признак «comqc». Для COMQC_E_APPLICATION_NOT_QUEUED эту границу следует воспроизвести отдельно от последующей обработки ошибки.

Компонент имени APPLICATION уточняет смысл COMQC_E_APPLICATION_NOT_QUEUED: речь идёт про приложение. Для COMQC_E_APPLICATION_NOT_QUEUED эту границу следует воспроизвести отдельно от последующей обработки ошибки.

При разборе COMQC_E_APPLICATION_NOT_QUEUED обозначение NOT связывает код с темой «отсутствие требуемого условия». До повторной проверки COMQC_E_APPLICATION_NOT_QUEUED сохраните входные данные без нормализации.

При разборе COMQC_E_APPLICATION_NOT_QUEUED обозначение QUEUED связывает код с темой «технический признак «queued»». До повторной проверки COMQC_E_APPLICATION_NOT_QUEUED сохраните входные данные без нормализации.

Для COMQC_E_APPLICATION_NOT_QUEUED в техническом контексте особенно важны: закрытый ключ, каталог COM+, CLSID, провайдер. При расследовании COMQC_E_APPLICATION_NOT_QUEUED их следует проверять как связанные части одной операции, а не как независимые симптомы.

Данные для воспроизведения

  • Для воспроизводимого отчёта по COMQC_E_APPLICATION_NOT_QUEUED нужно сохранить имя очереди, Message ID и Correlation ID.
  • В первичном журнале по COMQC_E_APPLICATION_NOT_QUEUED нужно записать интерфейс, IID и вызываемый метод queued-компонента.
  • На границе сбоя по COMQC_E_APPLICATION_NOT_QUEUED нужно проверить состояние MSMQ, права очереди и учётную запись слушателя.
  • Для сравнения с исправным случаем по COMQC_E_APPLICATION_NOT_QUEUED нужно сохранить тело и свойства проблемного сообщения до его перемещения.
  • До повторной попытки по COMQC_E_APPLICATION_NOT_QUEUED нужно зафиксировать AppID COM+ приложения и параметры Queuing Enabled/Listen.

Практическая диагностика

  1. Для COMQC_E_APPLICATION_NOT_QUEUED: Проверить, что интерфейс отмечен как queueable и параметры метода допускают маршалинг; не удаляйте исходные данные до завершения сравнения.
  2. Для COMQC_E_APPLICATION_NOT_QUEUED: Проверить создание и доступность очереди приложения COM+; повторите шаг на исправном контрольном примере.
  3. Для COMQC_E_APPLICATION_NOT_QUEUED: Сопоставить отправителя сообщения с политикой аутентификации и доверия; сохраните первый hresult и точное время результата.
  4. Для COMQC_E_APPLICATION_NOT_QUEUED: Повторить вызов с минимальным набором параметров и проследить Message ID до получателя; отдельно отметьте изменение состояния объекта.
  5. Для COMQC_E_APPLICATION_NOT_QUEUED: Подтвердить не только удаление сообщения из очереди, но и завершение серверной транзакции; все остальные условия оставьте неизменными.

Восстановление рабочего пути

Корректирующее действие для COMQC_E_APPLICATION_NOT_QUEUED должно устранять условие «Через моникер queue можно вызывать только приложения COM+, помеченные как поддерживающие очередь» на уровне закрытый ключ. Для COMQC_E_APPLICATION_NOT_QUEUED простое подавление HRESULT, бесконечный повтор или очистка всех настроек не доказывают восстановление контракта.

Для COMQC_E_APPLICATION_NOT_QUEUED исправление считается подтверждённым, когда исходная операция проходит в том же окружении, отрицательный тест по-прежнему предсказуемо отклоняется, а журнал не содержит нового скрытого сбоя.

Ссылки Microsoft


Нужно найти другой код? Найти другой код состояния или ошибки.