Проект-прототип с RabbitMQ+RavenDB повторил закрытые ошибки SharedQueue из RabbitMQ

Я создал простой проект прототипа саги с RabbitMQ в качестве транспорта и RavenDB в качестве механизма сохранения. Прототип на самом деле работает, как и ожидалось, но каждые несколько секунд я получаю сообщение об ошибке:

ОШИБКА NServiceBus.Transports.RabbitMQ.RabbitMqDequeueStrategy Не удалось получить сообщения от [Assembly].Retries System.AggregateException: произошла одна или несколько ошибок. --> System.IO.EndOfStreamException: SharedQueue закрыта в RabbitMQ.Util.SharedQueue1.EnsureIsOpen() at RabbitMQ.Util.SharedQueue1.Dequeue (время ожидания 32 миллисекунды.......

Я также получаю почти идентичное сообщение сразу после приведенного выше, но в нем говорится, что не удалось получить сообщения от RabbitMGPoller.Timeouts.

В дополнение к этому есть постоянные сообщения INFO, в которых говорится: NServiceBus.Transports.RabbitMQ.RabbitMqConnectionManager Отключен от брокера RabbitMQ, причина: причина закрытия AMQP, инициированная библиотека, код = 0 текст = "Конец потока"... причина = Система .IOException: невозможно записать данные в транспортное соединение: существующее соединение было принудительно закрыто удаленным хостом. ---> System.Net.Sockets.SocketException: существующее соединение было принудительно закрыто удаленным хостом...

Я попытался добавить значение DequeueTimeout=600 в транспортное соединение, но все равно возникают те же ошибки. Я также пытался добавить следующий ключ в файл конфигурации, но это все равно не помогло.


person Amy    schedule 06.01.2016    source источник


Ответы (1)


В конце концов я понял это, просто мое непонимание RabbitMQ и NServiceBus. Я изменил значение RequestedHeartbeat для подключения RabbitMQ на большее, т.е. RequestedHeartbeat=6000. Это решило мою проблему.

person Amy    schedule 07.01.2016