You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Martin Eden <ma...@gmail.com> on 2017/05/12 05:44:55 UTC

Increasing MQTT redeliver timeout on Active MQ 5.14.3 broker

Hi all,

I am using Active MQ 5.14.3 as an MQTT broker. I am talking to it using the
paho java client v1.1.1.

My application uses a paho MQTT client to subscribe to a certain topic. I
am also setting manual acks so when it gets a callback (each time a msg
arrives) it does not ack immediately the msg (QOS 1 or 2). I pass the
message further along for processing and only after the processing is done
I ack back the message (based on the initial id).

In the logs I am seeing a lot of messages being resent by the broker (the
callback is called with the same messages). I am assuming this happens
because my processing is taking longer than some redelivery timeout on the
broker. It seems to happen alternatively between 1 and 2 seconds.

Questions:
1. Is this redelivery timeout specified by MQTT or ActiveMQ? I could not
find explicit mention of it in the MQTT specs.
2. What is that redelivery timeout and where is it specified?
3. How to make sure that the redeliveries I am seeing are due indeed to
timeout on the broker and not something else?

What I tried:
I applied the config suggested here
http://activemq.apache.org/message-redelivery-and-dlq-handling.html to set
the redeliver timeout. It did not seem to work. I set the redelivery delay
to every 10 sec but it actually redelivers every 1-2 sec like before.

Here is the config I started ActiveMQ with. The stuff is bold is what I
added extra to the default ActiveMQ config:

<broker xmlns="http://activemq.apache.org/schema/core"
brokerName="localhost" dataDirectory="${activemq.data}"
*schedulerSupport="true"*>


*        <plugins>*

*            <redeliveryPlugin fallbackToDeadLetter="true"*

*                              sendToDlqIfMaxRetriesExceeded="true">*

*                <redeliveryPolicyMap>*

*                    <redeliveryPolicyMap>*


*                        <defaultEntry>*

*                            <!-- the fallback policy for all other
destinations -->*

*                            <redeliveryPolicy maximumRedeliveries="-1"*

*
initialRedeliveryDelay="5000"*

*                                              redeliveryDelay="10000"/>*

*                        </defaultEntry>*

*                    </redeliveryPolicyMap>*

*                </redeliveryPolicyMap>*

*            </redeliveryPlugin>*

*        </plugins>*
...

</broker>


Any help would be much appreciated,

M