Site icon EfmSoft

Что означает код HRESULT 0xC00E0009 (MQ_ERROR_SHARING_VIOLATION)?

 
Предыдущий Следующий
MQ_ERROR_OPERATION_CANCELLED MQ_ERROR_SERVICE_NOT_AVAILABLE

MQ_ERROR_SHARING_VIOLATION

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

MQ_ERROR_SHARING_VIOLATION (0xC00E0009) — Нарушение совместного доступа: очередь уже открыта для монопольного извлечения сообщений.

Очередь MSMQ можно открыть для получения сообщений с режимом совместного доступа. При exclusive receive только один открытый дескриптор имеет право извлекать сообщения; конфликт возникает на уровне режима открытия очереди, а не файловой блокировки её данных на диске.

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

  • Найдите все места, где эта очередь открывается для receive, и сравните параметры режим общего доступа.
  • Если один consumer использует exclusive receive, второй должен либо отказаться от receive, либо дождаться закрытия первого handle.
  • После изменения режима проверьте конкурирующий запуск двух consumers: ошибка должна либо воспроизводиться предсказуемо, либо исчезнуть согласно выбранной модели доступа.

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

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

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


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

Exit mobile version