ActiveMQ destinationPolicy атрибут expireMessagesPeriod не вступает в силу - PullRequest
0 голосов
/ 03 июля 2019
<policyEntry queue=">" producerFlowControl="true"
                            memoryLimit="200mb" expireMessagesPeriod="14400000"
                            optimizedDispatch="true">
    <deadLetterStrategy>
        <sharedDeadLetterStrategy processExpired="false" />
    </deadLetterStrategy>
</policyEntry>

Я добавил вышеуказанную политику в свой файл activemq.xml, и даже после перезапуска срок действия сообщений истекает через каждые 30 секунд. При значении expireMessagesPeriod, установленном на 4 часа, я ожидаю, что срок действия сообщений не истечет до 4 часов.

Даже если TTL сообщения достигло, сообщения должны оставаться в очереди не менее 4 часов.

Я использую Spring JMS с ActiveMQ на локальном хосте. Когда я добавляю строку ниже в policyEntry, я получаю сообщения с истекшим сроком в DLQ, что означает, что изменения вступают в силу, но expireMessagesPeriod не действует.

<individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true"/>
...