Hari
Hari

Reputation: 51

sharedDeadLetterStrategy is not discarding the DLQ messages

Am using AMQ 5.5. I would like to disable the option of sending dead letters to ActiveMQ.DLQ destination and completely discard (automatically) the messages that would be sent there otherwise. To do this I had configured the broker as below:

<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>

However, I still see that the messages are getting stored in DLQ. Can you please let me know what could be causing this? Do I need to fix anything in the config?

Thanks

Hari

Upvotes: 3

Views: 2308

Answers (1)

Hari
Hari

Reputation: 51

The problem faced here was that, the above given configuration would discard only non-persistent expired messages. To discard all expired messages, persistent and non-persistent, use discardingDLQBrokerPlugin.

<amq:plugins>

<amq:discardingDLQBrokerPlugin dropAll="true"/>

</amq:plugins>

Upvotes: 2

Related Questions