Hi
we have a project which is using solace queue and has 3 consumers after it was deployed.
If the messages comes on that queue expected order of receiving is
Message1–Q1
Message2–Q2
Message3–Q3
If lets say the Message1 is not acknowleded, how the messages are processed, does the message 2 goes to Q2 or Q1.
we observed behavior of it going to Q1.Is that correct, any insights on this will be helpful.
Hi,
So what I understand from your question, there is a single Queue and three consumers are bound to it.
The message delivery behavior will depend on whether the Queue Access Type is exclusive or non-exclusive (Please see this link for the details: https://solace.com/blog/solace-message-queue-access-types/).
So if the access type is Exclusive, the message will always go to a single consumer. Other consumers will be in Standby mode and will get the message only if the active consumer is not available.
If the Access type is non-exclusive, messages will be delivered to all consumer in round-robin manner.
Hi Neha,
Yes, you are right.we are having non-exclusive queues, but still if first message is not acknowledged , still the next coming messages should be received in round robin fashion right ?
Hi,
you may find this blog helpful … https://solace.com/blog/solace-message-queue-access-types/
If your queue is using “exclusive” access mode messages will not be round robin’d amongst consumers in any case except for the original exclusive consumer disappearing/disconnecting.
Hi @Manikanta532,
Yes you are correct. If Consumer 1 is processing Message 1 then other consumers can process messages 2,3, etc. prior to message 1 being acknowledged if you’re using a non-exclusive queue.
-Marc