Wesley created AMQ-7284:
---------------------------

             Summary: Newly restarted consumer becomes exclusive consumer of 
ActiveMQ messages for new message groups
                 Key: AMQ-7284
                 URL: https://issues.apache.org/jira/browse/AMQ-7284
             Project: ActiveMQ
          Issue Type: Bug
            Reporter: Wesley


Suppose there are 2 single threaded consumers A and B (2 separate processes) 
listening to messages on a queue. All messages sent to this group have a group 
ID (JMSXGroupID). 

ActiveMQ has selected A as the consumer for message groups G1, G2, G3, ... 
G500. Now, if A goes down and end-group messages ("JMSXGroupSeq" = -1) arrive 
for these groups, then consumer B consumes them and these groups get 
permanently attached to consumer B even though the groups have ended. 

I checked this using ./activemq (formerly activemq-admin) query 
-QQueue=*test.queue* --view MessageGroups
Now there is no way these message groups will get purged unless a new end-group 
message arrives with the same group ID or 'removeAllMessageGroups' is invoked 
through JMX. 

Now if A comes back up again and normal behavior continues, A will get all of 
the new groups unless there are at least 500 active groups within A that are 
not yet terminated. It's only after A has at least 500 active groups that B 
will get a chance to be assigned message groups, but the lower bound for B 
remains 500. 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to