Hey all!

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).

Thanks and have a great weekend!

BR,
- Simon

____________________________________

Simon Lundström
Section for Infrastructure

IT Services
Stockholm University
SE-106 91 Stockholm, Sweden

www.su.se/english/staff-info/it
https://www.su.se/english/about-this-website/privacy-policy

Reply via email to