I'm using 5.2.0 and transfer data with queue.

In this state, when consumer failed to get messages from the broker, the
messages are moved by individualDeadLetterStrategy.
here is my broker configuration:

    <amq:policyEntries>
      <amq:policyEntry queue=">" memoryLimit="50mb">
        <amq:deadLetterStrategy>
            <amq:individualDeadLetterStrategy
            queuePrefix="DLQ." useQueueForQueueMessages="true"/>
        </amq:deadLetterStrategy>
     ...

But I hope that failed messages aren't just staying DLQ, they are moved to
the end of the original queue and redelivered to the consumer. Having said
that, failed messages cannot be continuously stuck to the first of the
original queue in order to process other messages normally(i.e. I want to
send failed messages to the end of the original queue).
fail to consume -> DLQ -> move to the end of original queue -> <reprocess>
-> <success>
so I try using a composite queue.
<amq:virtualDestinations>
  <amq:compositeQueue name="DLQ.FOO">
        <amq:forwardTo>
          <amq:queue physicalName="FOO" />
        </amq:forwardTo>
  </amq:compositeQueue>
</amq:virtualDestinations>

Despite my expectation, messages moved to the original queue can't be
reprocessed by any consumers no longer, just seem to increase inflight
count.

Any misconception about the DLQ handling for me or alternative ways?

appreciate any comments about this subject.

regards,

sic
-- 
View this message in context: 
http://old.nabble.com/DLQ-Handling-tp28663453p28663453.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to