3

我正在使用 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 中。你能告诉我这可能是什么原因吗?我需要修复配置中的任何内容吗?

谢谢

哈里

4

1 回答 1

2

这里面临的问题是,上面给出的配置只会丢弃非持久的过期消息。要丢弃所有过期的消息,持久的和非持久的,使用discardingDLQBrokerPlugin。

<amq:plugins>

<amq:discardingDLQBrokerPlugin dropAll="true"/>

</amq:plugins>

于 2011-12-12T10:55:22.017 回答