openshiftamq

Openshift AMQ6 - message order - queue


I use AMQ 6 (ActiveMQ) on OpenShift, and I use a queue with re-delivery with exponentialBackoff (set in connection query params).

When I have one consumer and two messages and the first message gets processed by my single consumer and does NOT get an ACK...

  1. Will the broker deliver the 2nd message to the single consumer?
  2. Or will the broker wait for the re-delivery to preserve message order.

This documentation states:

...Typically a consumer handles redelivery so that it can maintain message order while a message appears as inflight on the broker. ...

I don't want to have my consumer wait for re-delivery. It should consume other messages. Can I do this without multiple consumers? If so, how?

Note: In my connection query params I don't have the ActiveMQ exclusive consumer set.

I have read the Connection Configuration URI docs, but jms.nonBlockingRedelivery isn't mentioned there.

Can the resource adapter use it by query param?


Solution

  • If you set jms.nonBlockingRedelivery=true on your client's connection URL then messages will be delivered to your consumer while others are in the process of redelivery. This is false by default.