Description
After moving from version 1.6.2 to 1.7 we lost some functionality we were relying on.
When we were failing to process message 6 times, it was moved to the Activemq.DLQ and the property dlqDeliveryFailureCause was filled with Exception message which was raised during the processing.
After version update - the exception message is not propagated. This message instead:
javax.jms.JMSException: Exceeded RedeliveryPolicy limit: 6
Maybe there are other way to track which client failed to process message and why(exception message) ?
Code sample:
static void Consume() { var brokerUri = ""; var clientId = "test"; var connFactory = new ConnectionFactory(brokerUri, clientId); _connection = connFactory.CreateConnection(); _connection.ExceptionListener += _connection_ExceptionListener; _connection.ConnectionResumedListener += _connection_ConnectionResumedListener; _connection.ConnectionInterruptedListener += _connection_ConnectionInterruptedListener; var session = _connection.CreateSession(AcknowledgementMode.AutoAcknowledge); var q = session.GetTopic("TopicName"); var queue = session.CreateDurableConsumer(q, clientId, null, false); queue.Listener += msgsConsumer_Listener; _connection.Start(); } static void msgsConsumer_Listener(IMessage message) { Console.WriteLine("Consumed: " + message.NMSMessageId); throw new InvalidOperationException("Maxxxxxxx", new Exception("Maxxxxxxx")); }
Attachments
Issue Links
- relates to
-
AMQ-6042 In ActiveMQMessageConsumer, always set rollback cause
- Resolved