<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"/>