2015-07-08 6 views
7

Я получаю следующее исключение повторно, когда я запускаю приложение для загрузки весны с помощью rabbitmq. Весь поток работает нормально даже с нижеследующими исключениями. это связано с автоматическим удалением посредством?Исключения в rabbitmq с весенним ботинком

08 Jul 2015 16:20:17,652 [ERROR] [SimpleAsyncTaskExecutor-2] SimpleMessageListenerContainer| Failed to check/redeclare auto-delete queue(s). 
    java.util.concurrent.TimeoutException 
     at com.rabbitmq.utility.BlockingCell.get(BlockingCell.java:77) 
     at com.rabbitmq.utility.BlockingCell.uninterruptibleGet(BlockingCell.java:111) 
     at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:37) 
     at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:367) 
     at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:293) 
     at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:621) 
     at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:665) 
     at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:208) 
     at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:444) 
     at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils$1.createConnection(ConnectionFactoryUtils.java:80) 
     at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.doGetTransactionalResourceHolder(ConnectionFactoryUtils.java:130) 
     at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.getTransactionalResourceHolder(ConnectionFactoryUtils.java:67) 
     at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1035) 
     at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1028) 
     at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1004) 
     at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:254) 
     at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.redeclareElementsIfNecessary(SimpleMessageListenerContainer.java:963) 
     at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$300(SimpleMessageListenerContainer.java:83) 
     at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1081) 
     at java.lang.Thread.run(Thread.java:745) 

08 Jul 2015 16:52:47,148 [WARN ] [SimpleAsyncTaskExecutor-1] SimpleMessageListenerContainer| Consumer raised exception, processing can restart if the connection factory supports it 
java.util.concurrent.TimeoutException 
    at com.rabbitmq.utility.BlockingCell.get(BlockingCell.java:77) 
    at com.rabbitmq.utility.BlockingCell.uninterruptibleGet(BlockingCell.java:111) 
    at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:37) 
    at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:367) 
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:293) 
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:621) 
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:665) 
    at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:208) 
    at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:444) 
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils$1.createConnection(ConnectionFactoryUtils.java:80) 
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.doGetTransactionalResourceHolder(ConnectionFactoryUtils.java:130) 
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.getTransactionalResourceHolder(ConnectionFactoryUtils.java:67) 
    at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:434) 
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1083) 
    at java.lang.Thread.run(Thread.java:745) 

следующих мои бобы

<rabbit:queue id="reportQueue" name="reportQueue" durable="true" auto-delete="false" exclusive="false"/> 


<rabbit:direct-exchange id="reportExchange" durable="true" name="reportExchange"> 
    <rabbit:bindings> 
     <rabbit:binding queue="reportQueue" key="reportBind"></rabbit:binding> 
    </rabbit:bindings> 
</rabbit:direct-exchange> 


    <bean id="aListener" class="com.sample.ReportMessageListener" autowire="byName"/> 
    <bean id="reportMessageConverter" class="com.sample.ReportMessageConverter"/> 
<rabbit:listener-container id="myListenerContainer" connection-factory="connectionFactory" acknowledge="auto" prefetch="5" concurrency="1" message-converter="reportMessageConverter" > 
    <rabbit:listener ref="aListener" queues="reportQueue"/> 
</rabbit:listener-container> 

Update:

с отладкой включены сообщениями являются

09 Jul 2015 14:46:35,284 [DEBUG] [main] SimpleMessageListenerContainer| Starting Rabbit listener container. 
09 Jul 2015 14:46:38,601 [DEBUG] [elasticsearch[local_jvm_node][clusterService#updateTask][T#1]] service     | [local_jvm_node] processing [routing-table-updater]: execute 
09 Jul 2015 14:46:38,602 [DEBUG] [elasticsearch[local_jvm_node][clusterService#updateTask][T#1]] service     | [local_jvm_node] processing [routing-table-updater]: no change in cluster_state 
09 Jul 2015 14:46:40,324 [ERROR] [SimpleAsyncTaskExecutor-1] SimpleMessageListenerContainer| Failed to check/redeclare auto-delete queue(s). 
java.util.concurrent.TimeoutException 
    at com.rabbitmq.utility.BlockingCell.get(BlockingCell.java:77) 
    at com.rabbitmq.utility.BlockingCell.uninterruptibleGet(BlockingCell.java:111) 
    at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:37) 
    at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:367) 
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:293) 
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:621) 
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:665) 
    at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:208) 
    at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:444) 
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils$1.createConnection(ConnectionFactoryUtils.java:80) 
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.doGetTransactionalResourceHolder(ConnectionFactoryUtils.java:130) 
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.getTransactionalResourceHolder(ConnectionFactoryUtils.java:67) 
    at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1035) 
    at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1028) 
    at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1004) 
    at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:254) 
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.redeclareElementsIfNecessary(SimpleMessageListenerContainer.java:963) 
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$300(SimpleMessageListenerContainer.java:83) 
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1081) 
    at java.lang.Thread.run(Thread.java:745) 
09 Jul 2015 14:46:40,328 [DEBUG] [SimpleAsyncTaskExecutor-1] BlockingQueueConsumer | Starting consumer Consumer: tags=[{}], channel=null, acknowledgeMode=MANUAL local queue size=0 
09 Jul 2015 14:46:45,333 [DEBUG] [SimpleAsyncTaskExecutor-1] SimpleMessageListenerContainer| Recovering consumer in 5000 ms. 

09 Jul 2015 14:46:50,402 [WARN ] [SimpleAsyncTaskExecutor-1] SimpleMessageListenerContainer| Consumer raised exception, processing can restart if the connection factory supports it 
java.util.concurrent.TimeoutException 
    at com.rabbitmq.utility.BlockingCell.get(BlockingCell.java:77) 
    at com.rabbitmq.utility.BlockingCell.uninterruptibleGet(BlockingCell.java:111) 
    at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:37) 
    at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:367) 
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:293) 
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:621) 
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:665) 
    at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:208) 
    at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:444) 
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils$1.createConnection(ConnectionFactoryUtils.java:80) 
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.doGetTransactionalResourceHolder(ConnectionFactoryUtils.java:130) 
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.getTransactionalResourceHolder(ConnectionFactoryUtils.java:67) 
    at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:434) 
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1083) 
    at java.lang.Thread.run(Thread.java:745) 
09 Jul 2015 14:46:50,403 [INFO ] [SimpleAsyncTaskExecutor-1] SimpleMessageListenerContainer| Restarting Consumer: tags=[{}], channel=null, acknowledgeMode=MANUAL local queue size=0 
09 Jul 2015 14:46:50,403 [DEBUG] [SimpleAsyncTaskExecutor-1] BlockingQueueConsumer | Closing Rabbit Channel: null 
+0

увидеть, если это может помочь http://stackoverflow.com/questions/24373588/deleted-queue-is-not-redefined-consumers-stop-to-handle-messages –

+0

не так когда-нибудь это разрешилось? Каково было решение. –

ответ

1

Это не имеет ничего общего с автоматическим удалением очередей (за исключением того, что у вас есть e контейнер инициализирует соединение в этой конкретной точке своего жизненного цикла).

Вы, кажется, есть некоторые проблемы с сетью ...

java.util.concurrent.TimeoutException 
.... 
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:293) 

Библиотека RabbitMQ клиент имеет жестко запрограммированные 5 секунды ожидания, когда время ожидания ответа для соединения команды запуска и сервер не отвечать на время.

+1

Я запускаю клиента и rabbitmq на той же машине. и даже с этими сообщениями об ошибках (эти сообщения являются непрерывными, а не разовыми) производитель и потребитель передают сообщения в порядке. если это проблема связи, я считаю, что все это должно работать. Пожалуйста, поправьте меня, если я ошибаюсь. – Pradeep

+0

Возможно, проблемы временны? Если вы включите ведение журнала DEBUG, вы должны получить гораздо больше информации. Я знаю, что тайм-аут недавно был добавлен к клиенту кролика, который используется Spring AMQP, поэтому может возникнуть какая-то новая проблема; необходимо использовать журнал DEBUG. Если он слишком большой, чтобы опубликовать здесь, попробуйте использовать пастебин или github. –

+0

Да, проблема преходяща. Но я получаю эти 8 из 10 раз, я начинаю свое приложение. Добавлены сообщения с включенной отладкой в ​​вопросе. Пожалуйста, дайте мне знать, если вам что-то нужно. Среднее время, я пытаюсь исследовать это, пробовав некоторые другие свойства. – Pradeep

3

Перезапуск RabbitMQ разрешил это для меня (Mac).

cd /usr/local/sbin 
./rabbitmqctl stop_app 
./rabbitmqctl start_app 
0

Я думаю, что речь идет о вашей версии с пружинным кроликом. Я столкнулся с той же проблемой, что и вы. но я понятия не имею, чтобы это исправить. Но в моем другом проекте он работает хорошо. Затем я сравнил два проекта. Я обнаружил, что версия весеннего кролика отличается друг от друга.

<dependency> 
    <groupId>org.springframework.amqp</groupId> 
    <artifactId>spring-rabbit</artifactId> 
    <version>1.6.5.RELEASE</version> 
</dependency> 

Эта новая версия throw TimeoutException. , но

<dependency> 
    <groupId>org.springframework.amqp</groupId> 
    <artifactId>spring-rabbit</artifactId> 
    <version>1.4.5.RELEASE</version> 
</dependency> 

эта версия хорошо работает. Моя весенняя версия - «Camden.SR2» .default spring-rabbit 1.6.5.RELEASE.

Надеется, что это помогает вам