We are looking at using message groups (activeMQ V5.5.0). We are using an external broker also. We have a use case where a consumer could be processing a long running transaction (multiple hours).
My understanding of message groups is that a group is initially assigned to a specific consumer and then stays on that consumer until a message comes through with a -1 group sequence. But in the case where a consumer is processing a long transaction for group A and the consumer also has group B assigned, messages for group B will have to wait for the long running group A message to complete. We'd like to avoid this. Is it true that even if we send a group B message with sequence -1, it would only be processed after the long running transaction is complete anyway, thus defeating the purpose of the -1 sequence? Or does the broker process it while the work on the client is being done thus freeing Group B to run on another consumer. (We're using prefetch of 1 but we could set it to 0 if it would help.) Is there a recommended way to avoid this situation? Detect the large payload and pre-emptively send -1 messages? Create a new consumer dynamically for large loads? Thanks, Rich -- View this message in context: http://activemq.2283324.n4.nabble.com/Message-Groups-and-long-running-transactions-tp3499325p3499325.html Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.