You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Brad Reitmeyer (JIRA)" <ji...@apache.org> on 2016/01/14 23:34:39 UTC

[jira] [Commented] (CAMEL-8742) RabbitMqConsumer did not retry if connection failed

    [ https://issues.apache.org/jira/browse/CAMEL-8742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15099042#comment-15099042 ] 

Brad Reitmeyer commented on CAMEL-8742:
---------------------------------------

I keep hitting this so I'll work on it.


> RabbitMqConsumer did not retry if connection failed
> ---------------------------------------------------
>
>                 Key: CAMEL-8742
>                 URL: https://issues.apache.org/jira/browse/CAMEL-8742
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-rabbitmq
>    Affects Versions: 2.15.1
>            Reporter: Yap Poh Soon
>            Priority: Minor
>             Fix For: Future
>
>
> Camel Rabbitmq is used to consume a queue in RabbitMQ. 
> Sometimes, the Administrator would delete the queue and create a fresh queue. Or, the Camel container was started while all or some queue was not declared.
> During these period, Camel will fail with the following error:
> {noformat}
> [localhost-startStop-1] 14:03:31,824 INFO  org.apache.camel.component.rabbitmq.RabbitMQConsumer - Connection failed, will start background thread to retry!
> java.io.IOException
> 	at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)
> 	at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)
> 	at com.rabbitmq.client.impl.ChannelN.basicConsume(ChannelN.java:976)
> 	at com.rabbitmq.client.impl.ChannelN.basicConsume(ChannelN.java:943)
> 	at com.rabbitmq.client.impl.ChannelN.basicConsume(ChannelN.java:935)
> 	at org.apache.camel.component.rabbitmq.RabbitMQConsumer$RabbitConsumer.start(RabbitMQConsumer.java:285)
> 	at org.apache.camel.component.rabbitmq.RabbitMQConsumer.startConsumer(RabbitMQConsumer.java:109)
> 	at org.apache.camel.component.rabbitmq.RabbitMQConsumer.startConsumers(RabbitMQConsumer.java:96)
> 	at org.apache.camel.component.rabbitmq.RabbitMQConsumer.doStart(RabbitMQConsumer.java:119)
> 	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
> 	at org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:2869)
> 	at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRouteConsumers(DefaultCamelContext.java:3163)
> 	at org.apache.camel.impl.DefaultCamelContext.doStartRouteConsumers(DefaultCamelContext.java:3099)
> 	at org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3029)
> 	at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:2797)
> 	at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:2653)
> 	at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:167)
> 	at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2467)
> 	at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2463)
> 	at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2486)
> 	at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2463)
> 	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
> 	at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2432)
> 	at org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:255)
> 	at org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:121)
> 	at org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:332)
> 	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:96)
> 	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
> 	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:948)
> 	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
> 	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
> 	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
> 	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
> 	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
> 	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
> 	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> 	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
> 	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
> 	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
> 	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:670)
> 	at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'ad_google_dfa_reporting_queue' in vhost '/', class-id=60, method-id=20), null, ""}
> 	at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
> 	at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)
> 	at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:343)
> 	at com.rabbitmq.client.impl.ChannelN.basicConsume(ChannelN.java:974)
> 	... 43 more
> Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'ad_google_dfa_reporting_queue' in vhost '/', class-id=60, method-id=20), null, ""}
> 	at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:474)
> 	at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:315)
> 	at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144)
> 	at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91)
> 	at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:533)
> {noformat}
> From the log, it shows retrying. But after 45 minutes, nothing happen. 
> While waiting for CAMEL-8487 (which i have no idea how to configure :( ), is there anything i can do for retry to work/happen sooner?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)