2016-01-06 2 views
1

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

ERROR NServiceBus.Transports.RabbitMQ.RabbitMqDequeueStrategy Не удалось получить сообщения от [Ассамблеи] .Retries System.AggregateException: Произошла одна или несколько ошибок. -> System.IO.EndOfStreamException: SharedQueue закрыто в RabbitMQ.Util.SharedQueue 1.EnsureIsOpen() at RabbitMQ.Util.SharedQueue 1.Dequeue (INT 32 миллисекунды таймаут .......

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

в дополнение к этому есть постоянные сообщения INFO, которые говорят: NServiceBus.Transports.RabbitMQ.RabbitMqConnectionManager Отключенные от RabbitMQ брокера, причина: AMQP крупный причина, по инициативе библиотеки , code = 0 text = "End of stream" ... cause = System.IOException: невозможно записать данные в транспортное соединение: существующее соединение было принудительно закрыто удаленным хостом. ---> System.Net.S ockets.SocketException: существующее соединение было принудительно закрыто удаленным хостом ...

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

ответ

0

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