| Предыдущий | Следующий |
| MQ_INFORMATION_OPERATION_PENDING | MQ_INFORMATION_INTERNAL_USER_CERT_EXIST |
MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL
Что означает MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL
MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL (0x400E0009) — Буфер имени формата, переданный MQCreateQueue, слишком мал, однако очередь успешно создана.
Низкоуровневый API MSMQ часто возвращает свойства через буфер вызывающей стороны и отдельное поле длины. Здесь важно различать ёмкость выделенного буфера, фактическую длину данных и требуемый размер; повтор с тем же размером обычно ничего не меняет.
Что проверить
- Используйте возвращённую длину имя формата для выделения нового буфера и повторите преобразование/создание согласно контракту API.
- Учитывайте, что
MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALLможет сопровождать уже успешно созданную очередь: нельзя автоматически повторять создание и получить дубликат. - Проверьте, что между запросом размера и повторным чтением свойство не изменяется конкурентно, если API допускает изменяемую длину.
Как подтвердить исправление
Коды MQ_INFORMATION_* являются информационными результатами: вызов мог частично или полностью выполнить работу. Перед retry сначала проверьте фактический результат операции — создана ли очередь, завершилась ли async-операция и какие свойства были приняты или проигнорированы.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.