I also got these messages when I had a network connector setup. The setup
seems similar to OP, where we had a message configured to be sent via a
staticallyIncludedDestinations block, and it ended up in the DLQ with
"TopicSubDiscard". Here's a full dump of one of the messages that ended up
in the DLQ:

<http://activemq.2283324.n4.nabble.com/file/t378787/Screenshot_from_2017-11-17_12-05-12.png>
 

As you can see, message expiration was set to 0. So it seems like there was
something else that casued it to expire.

I noticed in the source code that there's another way for this error to
occur:

https://github.com/apache/activemq/blob/08aa5118ffcd8dfc4ec813d799a61ef1ee4421d1/activemq-broker/src/main/java/org/apache/activemq/broker/region/TopicSubscription.java#L189

Seems like some sort of discarding of old messages when consumption is slow?

Why does this happen to messages sent to a topic? Is there some sort of
internal queue that's created for delivering messages over a network
connector, and maybe this queue filled up somehow?

By the way, we also got a lot of these in the logs of the activemq with the
network connector where the message originated from and where it ended up in
the DLQ:

2017-11-17 07:04:21,750 | ERROR | Checkpoint failed |
org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
Checkpoint Worker
java.lang.OutOfMemoryError: Java heap space
2017-11-17 07:04:21,750 | INFO  | Ignoring no space left exception,
java.io.IOException: Java heap space |
org.apache.activemq.util.DefaultIOExceptionHandler | ActiveMQ Journal
Checkpoint Worker
java.io.IOException: Java heap space
        at
org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:40)[activemq-client-5.14.4.jar:5.14.4]
        at
org.apache.activemq.store.kahadb.MessageDatabase$CheckpointRunner.run(MessageDatabase.java:433)[activemq-kahadb-store-5.14.4.jar:5.14.4]
        at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_144]
        at
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)[:1.8.0_144]
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)[:1.8.0_144]
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)[:1.8.0_144]
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_144]
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_144]
        at java.lang.Thread.run(Thread.java:748)[:1.8.0_144]




--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html

Reply via email to