Site icon EfmSoft

Что означает код HRESULT 0xC00E0005 (MQ_ERROR_QUEUE_EXISTS)?

 
Предыдущий Следующий
MQ_ERROR_QUEUE_NOT_ACTIVE MQ_ERROR_INVALID_PARAMETER

MQ_ERROR_QUEUE_EXISTS

Что означает MQ_ERROR_QUEUE_EXISTS

MQ_ERROR_QUEUE_EXISTS — Очередь с таким путём или идентификатором экземпляра уже существует.

Очередь MSMQ имеет собственное время жизни, режим открытия и состояние в Queue Manager. При диагностике важно отделять существование очереди от действительности уже открытого handle и от возможности конкретной операции receive/send.

Что проверить

  • Проверьте существующую очередь по имя пути и instance/имя формата до повторного MQCreateQueue; одинаковое имя не означает, что объект можно безопасно заменить.
  • Если очередь должна создаваться идемпотентно, сначала откройте/прочитайте существующий объект и сравните требуемые свойства вместо безусловного удаления и создания заново.
  • Если есть несколько consumers или callbacks, сопоставьте их действия по времени, чтобы увидеть удаление сообщения, закрытие handle или смену поколения очереди.

Как подтвердить исправление

Повторяйте исходный сценарий с новым корректно открытым объектом и отдельно проверяйте конкурентный путь. Простое исчезновение ошибки после перезапуска службы не доказывает устранение гонки или ошибки времени жизни.

Технические ссылки


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

Exit mobile version