Hi all:
Here is what I am experiencing:
After a period of time Camel stops pulling messages off a queue and ActiveMQ
moves them to the DLQ.
Environment:
Camel 2.4.0
Spring 3.0.5
ActiveMQ 5.3.1
My Camel/Spring applications run inside JBoss on linux servers.
The client application uses ProducerTemplate.requestBody(dest, xml) to send an
InOut message. The destination is something like:
"activemq:MyCompany.CAM"
The route on the server side looks like this:
<route>
<from uri="activemq:MyCompany.CAM?concurrentConsumers=2"/>
<choice>
<when><xpath>/MyCompanyMessage/MessageHeader[MessageType='userAssociated']</xpath>
<to uri="bean:associateUser"/>
</when>
<when><xpath>/MyCompanyMessage/MessageHeader[MessageType='userChanged']</xpath>
<to uri="bean:changeUser"/>
</when>
<when><xpath>/MyCompanyMessage/MessageHeader[MessageType='checkAccount']</xpath>
<to uri="bean:checkAccount"/>
</when>
<when><xpath>/MyCompanyMessage/MessageHeader[MessageType='createUser']</xpath>
<to uri="bean:createUser"/>
</when>
<otherwise>
<to uri="bean:unknownMessage"/>
</otherwise>
</choice>
</route>
Each bean implements the Processor interface and typically has only that one
method.
Everything works well for awhile - but then the InOut messages are no longer
received.
They get published to ActiveMQ properly but after the 20 second timeout (the
default) they get moved to the DLQ.
Before I write a servlet to handle the synchronous requests I thought I'd check
here to see if anyone could shed some light on what is going on and how I can
fix it.
TIA,
Mike L. (aka patzerbud)