2011-11-29 80 views
3

使用AMQ 5.5。我想禁用發送死信至ActiveMQ.DLQ目標的選項,並完全丟棄(自動)將以其他方式發送的消息。要做到這一點,我已經配置了代理如下:sharedDeadLetterStrategy不會丟棄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中。你能讓我知道可能是什麼原因造成的嗎? 我需要修改配置中的任何內容嗎?

由於

哈瑞

+0

有人可以幫我這嗎?它導致我們的數據目錄不一定增長。 – Hari

回答

2

這裏所面臨的問題是,在上面給出的配置將只丟棄非持久過期的消息。要放棄所有過期的消息,持久性和非持久性,請使用discardingDLQBrokerPlugin。

<amq:plugins>

<amq:discardingDLQBrokerPlugin dropAll="true"/>

</amq:plugins>