We have a queue based system to process the messages. So basically we push our messages to a seda queue (named as q1)where aggregation of messages take place and then it is pushed further to a different queue(named as q2). However we are observing that few messages are being pushed to the seda queue but these are not getting consumed by the consumer of the q2. This is happening for a few msgs. What could be the possible reasons for this Adding the route builder for clarity -
from("seda:" + CamelUtils.Q1 + "_" + endpointCount +
"?concurrentConsumers=" + sedaQProperties.getThreadMinCount())
.routeId(routeId)
.threads(sedaQProperties.getThreadMinCount(), sedaQProperties.getThreadMaxCount())
.allowCoreThreadTimeOut(true)
.aggregate(new ArrayListAggregationStrategy())
.constant(header(Exchange.CORRELATION_ID))
.completionSize(sedaQProperties.getAggregationBatchSize())
.completionTimeout(sedaQProperties.getAggregationTimeoutInMillis())
.forceCompletionOnStop()
.eagerCheckCompletion()
.to("rabbitmq://" + RMQ_HOST + ":" + RMQ_PORT + "/" + q2 +
"?queue=" +
CamelUtils.q2 + "_" + "&routingKey=" + CamelUtils.ROUTING_KEY_Q2 +
"&username=" + RMQ_USER + "&password=" + RMQ_PASS +
"&autoAck=false&durable=true&automaticRecoveryEnabled=true" +
"&exchangeType=direct&autoDelete=false&exchangePattern=InOnly&prefetchEnabled=true&prefetchCount=1&concurrentConsumers="
+ rabbitMQProp.getConcurrentConsumers() + "&publisherAcknowledgements=true")
.end();