MSMQ: Что может заставить “Недостаточные ресурсы выполнять операцию” ошибка при получении из очереди?

можно использовать предложение [#define arraysize(ar) (sizeof(ar) / sizeof(ar[0]))] Will Dean для замены магического числа 3 здесь с arraysize (str_array) - хотя я не забываю там быть некоторым особым случаем, в котором та конкретная версия arraysize могла бы сделать Что-то Плохо (извините, я не могу сразу помнить детали). Но это очень часто работает правильно.

случай, где это не работает, - когда "массив" является действительно просто указателем, не фактическим массивом. Кроме того, из-за пути массивы передаются функциям (преобразованный в указатель на первый элемент), это не работает через вызовы функции, даже если подпись похожа на массив — some_function(string parameter[]) действительно some_function(string *parameter).

29
задан Jonathan Allen 13 November 2009 в 23:19
поделиться

1 ответ

Из блога Джона Брейквелла существует одиннадцать возможностей:

  1. Пул потоков для удаленного чтения исчерпан (только MSMQ 2.0).
  2. Количество потоков локального обратного вызова превышено
  3. ] Объем сообщений превышен что может обрабатывать система (MSMQ 2.0 только).
  4. Память ядра выгружаемого пула исчерпаны.
  5. Несоответствующие двоичные файлы.
  6. Размер сообщения слишком велик.
  7. Квота компьютера превышена.
  8. Проблемы маршрутизации при открытии транзакционная внешняя очередь (MSMQ Только 3.0)
  9. Нехватка дискового пространства.
  10. Проблемы с хранением на мобильных устройствах
  11. Кластеризация слишком большого количества ресурсов MSMQ
  12. Слишком много открытых подключений
  13. Имя компьютера длиннее 15 символов
  14. Слишком много сообщений в очереди недоставленных сообщений

http://blogs.msdn.com/johnbreakwell/archive/2006/09/18/761035.aspx

Я бы проверил версию вашей очереди и количество подключений (к и из) ваша очередь открыта во время ошибки. Любой из этих "мог" вызвать вашу ошибку.

29
ответ дан 28 November 2019 в 00:51
поделиться