ActiveMQ消息未从组合队列转发到单个DLQ

时间:2014-02-28 20:29:02

标签: java jms activemq

我使用的是ActiveMQ 5.9.0版。

我遇到的情况是,复合目的地中的邮件只会转到其中一个DLQ目的地而不是转到各自的DLQ目的地。例如

<policyEntry queue=">">
   <deadLetterStrategy>         
    <individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true"/>
   </deadLetterStrategy>
</policyEntry>
<compositeQueue name="order.queue">
 <forwardTo>
  <queue physicalName="order.queue-1" />
  <queue physicalName="order.queue-2" />
 </forwardTo>
</compositeQueue>

在上面的配置中,不是从order.queue-1和order.queue-2转到单独的DLQ,而是来自order.queue-2的消息转到DLQ.order.queue-2,但来自order.queue-的消息 - 1就消失了。

是否有人遇到过它?好像是ActiveMQ中的一个错误。

任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

这是由默认情况下启用审核引起的,我必须设置enableAudit =“false”

<policyEntry queue=">">
 <deadLetterStrategy>         
  <individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true" enableAudit="false"/>
 </deadLetterStrategy>
</policyEntry>
<compositeQueue name="order.queue">
 <forwardTo>
  <queue physicalName="order.queue-1" />
  <queue physicalName="order.queue-2" />
 </forwardTo>
</compositeQueue>