Что означает код HRESULT 0xC00E0027 (MQ_ERROR_INSUFFICIENT_RESOURCES)?

 
Предыдущий Следующий
MQ_ERROR_PRIVILEGE_NOT_HELD MQ_ERROR_USER_BUFFER_TOO_SMALL

MQ_ERROR_INSUFFICIENT_RESOURCES

MQ_ERROR_INSUFFICIENT_RESOURCES: смысл кода и диагностика

MQ_ERROR_INSUFFICIENT_RESOURCES — HRESULT, относящийся к области Microsoft Message Queuing. Для выполнения операции Microsoft Message Queuing недостаточно памяти, дескрипторов либо другого системного ресурса.

Для MQ_ERROR_INSUFFICIENT_RESOURCES этот HRESULT возвращён MSMQ. В случае MQ_ERROR_INSUFFICIENT_RESOURCES для точного вывода нужны имя очереди, операция, режим доступа и то, используется ли public/private/direct format name.

Практический вывод для MQ_ERROR_INSUFFICIENT_RESOURCES: этот HRESULT фиксирует описанное условие, но сам по себе не показывает, какой участник операции первым нарушил контракт. Для MQ_ERROR_INSUFFICIENT_RESOURCES найдите первый вызов, вернувший статус, и только после этого меняйте конфигурацию подсистемы Microsoft Message Queuing.

Как читать имя MQ_ERROR_INSUFFICIENT_RESOURCES

Имя MQ_ERROR_INSUFFICIENT_RESOURCES помогает сузить поиск: ERROR — ошибка; INSUFFICIENT — технический маркер «insufficient»; RESOURCES — системные ресурсы. Эти части имени не заменяют документацию API, но позволяют проверить, что журнал и код относятся к одному и тому же условию.

Разбор условия ошибки

Для MQ_ERROR_INSUFFICIENT_RESOURCES важно сохранить исходный контекст вызова: имя функции, параметры, состояние объекта и первый низкоуровневый статус. В случае MQ_ERROR_INSUFFICIENT_RESOURCES без этого одинаковый HRESULT может ошибочно связываться с разными причинами.

  • При разборе MQ_ERROR_INSUFFICIENT_RESOURCES проверьте состояние службы MSMQ, достижимость удалённой машины и подключение к службе каталогов при необходимости.
  • При разборе MQ_ERROR_INSUFFICIENT_RESOURCES сверьте размеры буферов свойств и повторите запрос по документированной схеме определения требуемой длины.
  • При разборе MQ_ERROR_INSUFFICIENT_RESOURCES проверьте ACL очереди и системные привилегии под фактической учётной записью процесса.
  • При разборе MQ_ERROR_INSUFFICIENT_RESOURCES запишите path name и format name очереди, тип операции, права доступа и свойства, которые читались или записывались.

Как локализовать источник

  • Для MQ_ERROR_INSUFFICIENT_RESOURCES проверьте воспроизведение на локальной private queue, чтобы отделить сеть и каталог от API-контракта.
  • Для MQ_ERROR_INSUFFICIENT_RESOURCES не создавайте дубликат очереди до проверки существующего path name и instance identifier.
  • Для MQ_ERROR_INSUFFICIENT_RESOURCES сохраните HRESULT, PROPID, фактическую/требуемую длину и тип форматного имени.

Граница корректного решения

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

Ссылки по MQ_ERROR_INSUFFICIENT_RESOURCES


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