Что означает код HRESULT 0xC00E009A (MQ_ERROR_TOO_MANY_PROPERTIES)?

 
Предыдущий Следующий
MQ_ERROR_RESOLVE_ADDRESS MQ_ERROR_MESSAGE_NOT_AUTHENTICATED

MQ_ERROR_TOO_MANY_PROPERTIES

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

MQ_ERROR_TOO_MANY_PROPERTIES (0xC00E009A) — Функции передано слишком много свойств. Message Queuing обрабатывает не более 128 свойств за один вызов.

Нативные вызовы MSMQ передают свойства массивами идентификаторов и значений. Для одного вызова существует предел количества свойств; этот код относится именно к размеру массива параметров, а не к объёму сообщения или длине отдельного свойства.

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

  • Посчитайте число элементов в массиве свойств непосредственно перед вызовом MSMQ. Один вызов не должен содержать более 128 свойств.
  • Проверьте построение массива на дублирование и ошибочное добавление служебных элементов при повторном использовании объекта запроса.
  • Если приложению действительно нужно обработать больше независимых свойств, разделите работу на допустимые вызовы с учётом того, какие свойства должны изменяться атомарно.

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

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

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


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