sharedDeadLetterStrategy не отбрасывает сообщения DLQ - PullRequest
3 голосов
/ 29 ноября 2011

Я использую AMQ 5.5. Я хотел бы отключить опцию отправки мертвых писем в пункт назначения ActiveMQ.DLQ и полностью удалить (автоматически) сообщения, которые будут отправлены туда, в противном случае Для этого я настроил брокера, как показано ниже:

<amq:destinationPolicy>
        <amq:policyMap>
          <amq:policyEntries>
            <amq:policyEntry topic=">" producerFlowControl="false" >
                <amq:deadLetterStrategy>
                      <amq:sharedDeadLetterStrategy processExpired="false" />
                </amq:deadLetterStrategy>
            </amq:policyEntry>
            <amq:policyEntry queue=">" producerFlowControl="false">
                <amq:deadLetterStrategy>
                      <amq:sharedDeadLetterStrategy processExpired="false" />
                </amq:deadLetterStrategy>
            </amq:policyEntry>

          </amq:policyEntries>
        </amq:policyMap>
    </amq:destinationPolicy>

Однако я все еще вижу, что сообщения сохраняются в DLQ. Можете ли вы дать мне знать, что может быть причиной этого? Нужно ли что-то исправлять в конфиге?

Спасибо

Hari

1 Ответ

2 голосов
/ 12 декабря 2011

Проблема, с которой здесь столкнулись, заключалась в том, что указанная выше конфигурация отбрасывала только непостоянные сообщения с истекшим сроком действия. Чтобы отменить все просроченные сообщения, постоянные и непостоянные, используйте discardingDLQBrokerPlugin.

<amq:plugins>

<amq:discardingDLQBrokerPlugin dropAll="true"/>

</amq:plugins>

...