I'm not sure I understand your description.
You have messages in a queue, and you're saying that they getting delivered in the wrong order?
I'm not sure I understood the relevance of message grouping here...
Let's say I'm sending four messages.
Message 4 depends on message 3, 3 depends on 2, and 2 on 1.
Therefore 1 must arrive at the remote queue first and be processed, it is then followed by 2, 3 and finally 4. This is how I use grouping, once I send these in the correct order the grouping will ensure that each one is finished before processing the next.
Now I have a message 5 which depends on 4, but I 'm going to send this 10 minutes after message 4. If the bridge was active this would not be a problem as 1,2,3 and 4 would already be processed off the remote queue. But if the bridge is inactive and message does not have a group id, once the bridge is restored message 5 could be processed before 1,2,3 and 4 (I'm using an MDB).
The order that messages are delivered is determined by their order in the queue, not by message grouping.
So if you send them to a queue in a certain order from a particular producer they will get delivered in a certain order.
Now, if you have multiple consumers, and want to ensure they are only consumed by one consumer you use message grouping.
If you have multiple consumers and send messages 1, 2, 3 with the same message group, but send message 4 with a different, or no group then the system will ensure 1, 2, 3 are processed by the same consumer but 4 won't be (since you didn't set the message group).
This could result in 4 being processed before 1,2,3 . This is non deterministic and depends on how long 1,2 and 3 take to process, and is true whether or not you use a message bridge.
Does that answer the question?
Yes, thank you.