[ 
https://issues.apache.org/jira/browse/CAMEL-8742?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-8742:
-------------------------------
    Fix Version/s:     (was: 2.16.0)
                   Future

> 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)

Reply via email to