Details
Description
I am using Spring 3.1 and ActiveMQ 5.5.1 with Camel 2.9.0 although I can duplicate it with various different versions.
I do the following:
Put some messages on one queue (Queue2Queue.Inbound)
Add a JMS header and put it on a new queue (Queue2Queue.Inbound.0)
Read off the new queue with 20 threads
Put them on a third queue (Queue2Queue.DLQ)
Here is a snippet of the Camel setup.
public void configure() throws Exception { String inboundQueue = "activemq:" + testProperties.getProperty(Queue2QueueCamelRunner.INBOUND_MQ_QUEUE); from(DIRECT_START) .to(inboundQueue) .process(headerEnricher) .to(inboundQueue + ".0"); String processingQueue = inboundQueue + ".0?concurrentConsumers=20"; from(processingQueue) .to("activemq:Queue2Queue.DLQ"); }
My attached test case puts 10, 100 and 1000 messages on the queue then counts them.
The results I get are:
10=10
100=100
1000!=1000
When I run in the embedded ActiveMQ I often see 200 messages missing.
When I run it on the deployed version I will see 1110 messages listed in the Web Console but only 867 when I drill down (or if I use a browser like HermesJMS).