Что означает код HRESULT 0xC00E002A (MQ_ERROR_MESSAGE_STORAGE_FAILED)?

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

MQ_ERROR_MESSAGE_STORAGE_FAILED

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

MQ_ERROR_MESSAGE_STORAGE_FAILED (0xC00E002A) — Не удалось сохранить восстанавливаемое или журнальное сообщение. Сообщение не отправлено.

Получение сообщения в MSMQ изменяет состояние самой очереди: destructive receive удаляет сообщение, а транзакционный receive связывает его судьбу с commit/abort. Поэтому конкурирующие потребители, курсоры и повторные вызовы могут наблюдать уже другое состояние, даже если используют тот же lookup id или позицию.

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

  • Проверьте свободное место и состояние хранилища MSMQ на компьютере, который должен сохранить recoverable/journal message; факт вызова send ещё не означает, что сообщение принято на хранение.
  • Проверьте существование очереди и отдельно действительность текущего handle: это разные состояния.
  • Если есть несколько consumers или callbacks, сопоставьте их действия по времени, чтобы увидеть удаление сообщения, закрытие handle или смену поколения очереди.

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

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

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


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