我使用的是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中的一个错误。
任何建议都会有所帮助。
答案 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>