what sort of timeout is on the receive(...) from spring dmlc, and what is the prefetch for that consumer. It appears that the message is getting dispatched but not consumed, the connection/consumer dies and the message is flagged as a redelivery. then the before delivery check on the delivery counter kicks the message to the dlq. So this must be happening 6 times.
I just pushed a tidy up of some of the redelivery semantics - there was a bug there that would cause the redelivery counter to increment in error... so that may be relevant[1]. A short term solution would be to ensure infinite or a very large number of redeliveries, up from the default 6. That can be provided in the broker url. [1] https://issues.apache.org/jira/browse/AMQ-5735 On 23 April 2015 at 13:08, James Green <james.mk.gr...@gmail.com> wrote: > We have a camel route consuming from ActiveMQ (5.10.0 with KahaDB) and > frequently get a DLQ entry without anything logged through our errorHandler. > > The only thing we have to go on is a dlqFailureCause header which says: > > java.lang.Throwable: Exceeded redelivery policy limit:RedeliveryPolicy > {destination = null, collisionAvoidanceFactor = 0.15, maximumRedeliveries = > 6, maximumRedeliveryDelay = -1, initialRedeliveryDelay = 1000, > useCollisionAvoidance = false, useExponentialBackOff = false, > backOffMultiplier = 5.0, redeliveryDelay = 1000}, cause:null > > These are happening apparently at random. The route is marked transacted, > and is backed by Spring Transactions itself backed by Narayana. > > Our debugging indicates that our route never receives the message from AMQ > prior to it hitting the DLQ. We have switched on DEBUG logging for > org.apache.activemq but other than being swamped with even more logs we've > observed nothing notable. > > Any ideas where to go from here? Impossible to say which of the several > thousand messages per day will go this way so an attached debugger is out > of the question. > > Our log4j config fragment: > > <Logger name="com" level="WARN"/> > <Logger name="org" level="WARN"/> > <Logger name="org.apache.camel" level="DEBUG"/> > <Logger name="org.apache.activemq" level="DEBUG"/> > <Logger name="org.springframework.orm.jpa" level="DEBUG"/> > <Logger name="org.springframework.transaction" level="DEBUG"/> > > Thanks, > > James