Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
5.15.3
-
None
-
None
-
None
-
Debian 9.5
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
Description
Original at http://markmail.org/message/ym7ivylhu7q5ozce
We're running 5.15.3 and we're using <https://github.com/ARGOeu/nagios-plugins-activemq/> for monitoring (SSL'ed) OpenWire. Healthchecks fail and to not get our aliveness-check queue filled with old messages we added TTL via <https://github.com/ARGOeu/nagios-plugins-activemq/blob/3d6d43c/lib/OpenWireProbe/src/org/activemq/probes/OpenWireProbe.java#L124-L126>. We got one DLQ'd OpenWire check message and just discarded it but when we got the second one I started to investigate.
The message which got put into the DLQ has the propery: dlqDeliveryFailureCause java.lang.Throwable: Message Expired. Expiration:1537468027378
Our configuration related to the queue aliveness-test in activemq.xml is:
[...] <authorizationEntry queue="aliveness-test.>" read="monitoring" write="monitoring" admin="admins" /> [...] <queue physicalName="aliveness-test"/> [...] <policyEntry queue="aliveness-test"> <!-- Tell the dead letter strategy not to process expired messages so that they will just be discarded instead of being sent to the DLQ --> <deadLetterStrategy> <sharedDeadLetterStrategy processExpired="false" /> </deadLetterStrategy> </policyEntry> [...]
I just noticed a bug that our TTL is set to 60ms (instead of seconds) but that's just how fast ActiveMQ is ; ) So I don't think that's related.
So what we expect is for those messages to just get deleted but instead we they get DLQ'd into ActiveMQ.DLQ (since no DLQ is configured).