| Предыдущий | Следующий |
| MQ_ERROR_INVALID_HANDLE | MQ_ERROR_SHARING_VIOLATION |
MQ_ERROR_OPERATION_CANCELLED
Как диагностировать MQ_ERROR_OPERATION_CANCELLED
MQ_ERROR_OPERATION_CANCELLED — HRESULT, относящийся к области Microsoft Message Queuing. Операция Microsoft Message Queuing была отменена до завершения.
Для MQ_ERROR_OPERATION_CANCELLED этот HRESULT возвращён MSMQ. В случае MQ_ERROR_OPERATION_CANCELLED для точного вывода нужны имя очереди, операция, режим доступа и то, используется ли public/private/direct format name.
Практический вывод для MQ_ERROR_OPERATION_CANCELLED: этот HRESULT фиксирует описанное условие, но сам по себе не показывает, какой участник операции первым нарушил контракт. Для MQ_ERROR_OPERATION_CANCELLED найдите первый вызов, вернувший статус, и только после этого меняйте конфигурацию подсистемы Microsoft Message Queuing.
Как читать имя MQ_ERROR_OPERATION_CANCELLED
Имя MQ_ERROR_OPERATION_CANCELLED помогает сузить поиск: ERROR — ошибка; OPERATION — операция; CANCELLED — отменённая операция. Эти части имени не заменяют документацию API, но позволяют проверить, что журнал и код относятся к одному и тому же условию.
Проверка причины
Для MQ_ERROR_OPERATION_CANCELLED операция была отменена или прервана. В случае MQ_ERROR_OPERATION_CANCELLED нужно установить инициатора отмены и состояние частично выполненной работы до автоматического retry.
- Для MQ_ERROR_OPERATION_CANCELLED запишите источник сигнала отмены, момент его поступления и состояние транзакции или объекта после прерывания.
- При разборе MQ_ERROR_OPERATION_CANCELLED запишите path name и format name очереди, тип операции, права доступа и свойства, которые читались или записывались.
- При разборе MQ_ERROR_OPERATION_CANCELLED проверьте состояние службы MSMQ, достижимость удалённой машины и подключение к службе каталогов при необходимости.
- При разборе MQ_ERROR_OPERATION_CANCELLED сверьте размеры буферов свойств и повторите запрос по документированной схеме определения требуемой длины.
- При разборе MQ_ERROR_OPERATION_CANCELLED проверьте ACL очереди и системные привилегии под фактической учётной записью процесса.
Как локализовать источник
- Для MQ_ERROR_OPERATION_CANCELLED проверьте воспроизведение на локальной private queue, чтобы отделить сеть и каталог от API-контракта.
- Для MQ_ERROR_OPERATION_CANCELLED не создавайте дубликат очереди до проверки существующего path name и instance identifier.
- Для MQ_ERROR_OPERATION_CANCELLED сохраните HRESULT, PROPID, фактическую/требуемую длину и тип форматного имени.
Как подтвердить исправление
Для MQ_ERROR_OPERATION_CANCELLED для MQ_ERROR_OPERATION_CANCELLED недостаточно скрыть ошибку повтором. В случае MQ_ERROR_OPERATION_CANCELLED после изменения воспроизведите исходную операцию, проверьте конечное состояние объекта и убедитесь, что ресурсы освобождаются без потери первичного HRESULT.
Ссылки по MQ_ERROR_OPERATION_CANCELLED
Нужно найти другой код? Найти другой код состояния или ошибки.
