sharedDeadLetterStrategy不会丢弃DLQ消息

时间:2011-11-29 06:26:21

标签: activemq messagebroker

使用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中。能告诉我可能导致这种情况的原因吗? 我是否需要修改配置中的任何内容?

由于

1 个答案:

答案 0 :(得分:2)

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

<amq:plugins>

<amq:discardingDLQBrokerPlugin dropAll="true"/>

</amq:plugins>