> Hello all, > > We are switching our backend application from Apache ActiveMQ to RabbitMQ > Broker and we are trying to re-implement the following functionality: > > from(activemq:queue:endpoint?asyncConsumer=true&acknowledgementMode=4) > .process(...) > .delay(header(DELAY)).asyncDelayed().executorService(executorService) > .process(...) > .process(exchange -> { > ((JmsMessage) exchange.getIn()).getJmsMessage().acknowledge() > }) > .end(); > > > The logic is that the Queue will be consumed by our route, each message will > be scheduled to a future async task and AFTER the task has been completed the > route will acknowledge the broker so that the latter remove the message from > the Queue (no message loss in case of errors). > > Based on my investigation of rabbitmq component and Camel's > RabbitMQConsumer.java implementation I cannot develop a corresponding route > choosing the point upon which the acknowledgement will be returned (feature > request). The requirement seems to be handled adding autoAck=false in the > from URI params. Then, however, I noticed that the consumers were blocked > till they acknowledge the previous message! Is this functioning as designed? > > I would like to acknowledge the consumed messages explicitly at the end of > the pipeline and also keep polling the queue in the meantime independently. > > Thanks, > Panos
-- PRIVILEGED AND CONFIDENTIAL COMMUNICATION This e-mail transmission, and any documents, files or previous e-mail messages attached to it, may contain confidential information that is legally privileged. If you are not the intended recipient or a person responsible for delivering it to the intended recipient, you are hereby notified that any disclosure, copying, distribution or use of any of the information contained in or attached to this transmission is STRICTLY PROHIBITED. If you have received this transmission in error, please: (1) immediately notify me by reply e-mail, or by collect telephone call; and (2) destroy the original transmission and its attachments without reading or saving in any manner.