3

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 に保存されていることがわかります。何が原因なのか教えてください。構成で何か修正する必要がありますか?

ありがとう

ハリ

4

1 に答える 1

2

ここで直面した問題は、上記の設定では永続的ではない期限切れのメッセージのみが破棄されるということでした。永続的および非永続的な期限切れのメッセージをすべて破棄するには、discardingDLQBrokerPlugin を使用します。

<amq:plugins>

<amq:discardingDLQBrokerPlugin dropAll="true"/>

</amq:plugins>

于 2011-12-12T10:55:22.017 に答える