簡體   English   中英

重新傳遞策略后如何阻止郵件進入Activemq中的Dead LetterQueue(DLQ)

[英]How to stop messages from going to Dead LetterQueue(DLQ) in Activemq after re-delivery policy

private BrokerService createBroker() throws IOException, Exception {
         BrokerService broker = new BrokerService();KahaDBStore kaha=new KahaDBStore();
         File file =new File(path);
         TransportConnector connector = new TransportConnector();
         connector.setUri(new URI(DEFAULT_BROKER_URL));
         kaha.setDirectory(file);
         broker.addConnector(connector);
         broker.setPersistenceAdapter(kaha);
}

這是我的經紀人的配置。 有人可以指定配置嗎,重新發送策略后如何阻止郵件發送到DLQ?

注意:我已經訪問了此站點http://activemq.apache.org/message-redelivery-and-dlq-handling.html

問題是-您想與他們做什么?

在所有重新交付嘗試都用盡之后,只需丟棄它們?

配置丟棄插件

<deadLetterStrategy>
   <discarding/>
</deadLetterStrategy>

或通過Java

PolicyEntry policy = new PolicyEntry();
policy.setDeadLetterStrategy(new DiscardingDeadLetterStrategy());
PolicyMap policyMap = new PolicyMap();
policyMap.setDefaultEntry(policy);
broker.setDestinationPolicy(policyMap);

切勿耗盡重新交付的機會,並嘗試直到消息通過為止?

這可能是由於消息的准確性而引起的問題,即消息的有效載荷已損壞,這些消息永遠無法處理,必須刪除才能不中斷流程。 如果仍maximumRedelivery ,請將客戶端的maximumRedelivery配置為-1( 請參閱docs )。

您可以使用:

RedeliveryPolicy redeliveryPolicy = new RedeliveryPolicy();
redeliveryPolicy.setMaximumRedeliveries(-1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM