Почему redeliveryPlugin не отправляет сообщения в DLQ? - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь автоматически отправлять сообщения в DLQ, если число превышено, повторите попытку. Для этого я использую redeliveryPlugin.
У меня есть конфигурация ActiveMQ (broker.xml)

<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core 
http://activemq.apache.org/schema/core/activemq-core.xsd">
<broker xmlns="http://activemq.apache.org/schema/core"
        brokerName="${broker-name}"
        dataDirectory="${data}"
        schedulerSupport="true"
        start="false" restartAllowed="false"
        >
    <destinationPolicy>
        <policyMap>
          <policyEntries>
            <policyEntry queue=">">
                <deadLetterStrategy>
                    <individualDeadLetterStrategy processExpired="false" queuePrefix="DLQ." useQueueForQueueMessages="true"/>
                </deadLetterStrategy>
            </policyEntry>
          </policyEntries>
        </policyMap>
    </destinationPolicy>
    <managementContext>
        <managementContext createConnector="false"/>
    </managementContext>
    <persistenceAdapter>
        <kahaDB directory="${data}/kahadb"/>
    </persistenceAdapter>
    <plugins>
        <jaasAuthenticationPlugin configuration="karaf" />
        <redeliveryPlugin fallbackToDeadLetter="true" sendToDlqIfMaxRetriesExceeded="true">
            <redeliveryPolicyMap>
                <redeliveryPolicyMap>
                    <redeliveryPolicyEntries>
                        <redeliveryPolicy 
                            queue=">"
                            useExponentialBackOff="true"
                                          backOffMultiplier="2"
                                          initialRedeliveryDelay="1000"
                                          maximumRedeliveryDelay="60000"
                                          maximumRedeliveries="-1"/>
                    </redeliveryPolicyEntries>
                    <defaultEntry>
                        <redeliveryPolicy maximumRedeliveries="6"
                                          initialRedeliveryDelay="1000"
                                          redeliveryDelay="5000"/>
                    </defaultEntry>
                </redeliveryPolicyMap>
            </redeliveryPolicyMap>
        </redeliveryPlugin>
    </plugins>
    <systemUsage>
        //
    </systemUsage>
    <transportConnectors>
        <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="amqp" uri="amqp://0.0.0.0:5672"/> 
    </transportConnectors>
</broker>

В этом параметре изображения JMSXDeliveryCount имеет значение 3, я ожидал, что плагин будетотправить сообщение в DLQ, но этого не произошло, и я не понимаю, почему

enter image description here

UPD:

Я добавил в конфигурацию schedulerSupport = "true", но в консоли ActiveMQ список запланированных пуст

enter image description here

...