Hi all,

I'm currently using a RabbitMQ queue and a client application using SPRING 
RABBITMQ component as consumer.
Currently we are not setting any acknowdlege-Mode, so I guess we are using auto 
acknacknowledgement , so we let Camel component to manage automatically the ACK 
of the message  when the consumer receives the message from the queue.
Our simplified Camel route looks like the following:


    <route>
              <from 
uri="spring-rabbitmq:MyExchange?routingKey=MyQueue&queues=MyQueue&concurrentConsumers=20"/>
      <process ref="#class:com.acme.MyProcessor"/>
              <to uri="direct:someOtherCamleRoute"/>
     </route>

My question is what happens with the flow if the Ack cannot be sent 
successfully, for instance because there's a network issue or a problem in 
RabbitMQ.
Will be the Camel message aborted? Will continue the flow to the 
direct:someOtherCamleRoute?

I was expecting that in this situation the flow will not continue. But I've got 
some customer logs that seem to indicate that the flow continues and the 
message is sent to the processor and to the next route.
In this case as the message is not acknowledged in RabbitMQ, after some time is 
already available for another consumer and it's duplicating the message process.
Is this possible? Am I missing something?

Thanks
Guillem



Reply via email to