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)