I also just realized... another issue related to this....

If a single message is failing due to some invalid contents in the msg
  ("poison pill" that will never succeed),
  since failing+retrying messages are not visible in the console,
  how can you remove it from the queue, so it doesn't
  block all subsequent messages?



On Tue, Aug 31, 2021 at 1:05 AM J P <[email protected]> wrote:

>
> We have an ActiveMQ instance, where a client is consuming from a
> jms-queue,
> reading some values from the msg and using them as parameters to an
> API-call.
>
> The order of the msgs are important, so in case of a
> failure (typically, the API called is temporarily down for a while),
> I want all msgs to REMAIN in the queue and the client
> should just try resend them until the processing succeeds,
> so I have set
>   maximumRedeliveries="-1"
>   redeliveryDelay="5000"
> for unlimited redeliveries.
>
> What I notice while testing, though, is that even though the API is down
>   (i.e. message processing is failing, and messages are getting queued up),
> the ActiveMQ console is still showing 0 messages in the queue.
>
> The "Messages Enqueued/Dequeued" are increasing,
> and I can also confirm from the logs that messages
> are actually failing and being re-sent as expected.
> Also, if I shutdown everything, and restart ActiveMQ without restarting
> the consumer, the messages re-appear in the console.
>
> But for monitoring purposes, I would just like to DETECT this situation
>   that the message backlog is growing and not getting consumed.
>
> How can I see the actual backlog/length of the
> failed-message queue (even though the console shows 0) in such a situation?
>
>
>

Reply via email to