| Предыдущий | Следующий |
| 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 или смену поколения очереди.
Как подтвердить исправление
Повторяйте исходный сценарий с новым корректно открытым объектом и отдельно проверяйте конкурентный путь. Простое исчезновение ошибки после перезапуска службы не доказывает устранение гонки или ошибки времени жизни.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.