Hello all,

While I am trying to test AMQ message expiration, I encountered some
problems. I send a message to a Queue every 10ms with the following code:
   producer.send(queue, message, DeliveryMode.PERSISTENT,
Message.DEFAULT_PRIORITY, 10*60*1000).
According to my understanding the messages will expire after 10 minutes. But
I always get the following error stack trace on AMQ broker and at the same
time, the journal folder seems to keep growing.

2007-09-03 10:33:31,093 [m://localhost#3] WARN
RegionBroker                   - Failed to pass expired message to dead
letter queue
java.lang.NullPointerException
 at org.apache.activemq.util.BrokerSupport.resend(BrokerSupport.java:55)
 at org.apache.activemq.broker.region.RegionBroker.sendToDeadLetterQueue(
RegionBroker.java:667)
 at org.apache.activemq.broker.BrokerFilter.sendToDeadLetterQueue(
BrokerFilter.java:257)
 at org.apache.activemq.broker.BrokerFilter.sendToDeadLetterQueue(
BrokerFilter.java:257)
 at org.apache.activemq.broker.BrokerFilter.sendToDeadLetterQueue(
BrokerFilter.java:257)
 at org.apache.activemq.broker.MutableBrokerFilter.sendToDeadLetterQueue(
MutableBrokerFilter.java:273)
 at org.apache.activemq.broker.region.RegionBroker.messageExpired(
RegionBroker.java:636)
 at org.apache.activemq.broker.BrokerFilter.messageExpired(BrokerFilter.java
:253)
 at org.apache.activemq.advisory.AdvisoryBroker.messageExpired(
AdvisoryBroker.java:237)
 at org.apache.activemq.broker.BrokerFilter.messageExpired(BrokerFilter.java
:253)
 at org.apache.activemq.broker.MutableBrokerFilter.messageExpired(
MutableBrokerFilter.java:269)
 at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1027)
 at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1002)
 at org.apache.activemq.broker.region.Queue.addSubscription(Queue.java:228)
 at org.apache.activemq.broker.region.AbstractRegion.addConsumer(
AbstractRegion.java:262)
 at org.apache.activemq.broker.region.RegionBroker.addConsumer(
RegionBroker.java:335)
 at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java
:85)
 at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(
AdvisoryBroker.java:79)
 at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java
:85)
 at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(
MutableBrokerFilter.java:95)
 at org.apache.activemq.broker.TransportConnection.processAddConsumer(
TransportConnection.java:565)
 at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:334)
 at org.apache.activemq.broker.TransportConnection.service(
TransportConnection.java:320)
 at org.apache.activemq.broker.TransportConnection$1.onCommand(
TransportConnection.java:216)
 at org.apache.activemq.transport.ResponseCorrelator.onCommand(
ResponseCorrelator.java:100)
 at org.apache.activemq.transport.TransportFilter.onCommand(
TransportFilter.java:67)
 at org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java
:233)
 at org.apache.activemq.thread.DedicatedTaskRunner.runTask(
DedicatedTaskRunner.java:98)
 at org.apache.activemq.thread.DedicatedTaskRunner$1.run(
DedicatedTaskRunner.java:36)

Does it mean that the DLQ strategy was inproperly configured? In our
application, I don't want expired messages to be sent to DLQs. How should I
configure it? Or could it be a bug in the latest snapshot?

The AMQ version is :apache-activemq-5.0-20070827.124842-62

Thank you in advance.

Reply via email to