Good afternoon, i have a problem with losing messages after the transaction
timeouts.

Message is consumed using a MessageDrivenBean. If the processing is longer
that the transaction timeout, the processing fails and an exception is
thrown. The Exception is catched in the MDB and setRollbackOnly is called on
the MessageDrivenContext.

I expected ActiveMQ to redeliver the message (as the transaction was not
commited or an exception was thrown), but instead only next two messages
were logged:

WARN  [org.apache.activemq.ra.ServerSessionImpl:1] Local transaction had not
been commited. Commiting now.
INFO  [org.apache.activemq.ra.ServerSessionImpl:1] Endpoint failed to
process message. Reason: Endpoint after delivery notification failure 

I tried to throw an exception instead of calling method setRollbackOnly, but
the result was the same - the message was lost. I also tried to set
useRAManagedTransaction with no luck.

Is there any configuration how to tell ActiveMQ to rollback or redeliver the
message instead of discarding it?

Thank you



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Lost-JMS-message-after-transaction-timout-ActiveMQ-5-8-tp4678504.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to