[
https://issues.apache.org/jira/browse/ARTEMIS-2007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17410503#comment-17410503
]
ASF subversion and git services commented on ARTEMIS-2007:
----------------------------------------------------------
Commit 224b89810d023e3ee73b014a48585da8f6048237 in activemq-artemis's branch
refs/heads/main from gtully
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=224b898 ]
ARTEMIS-2007 - allow redistribution if there are unmatched messages pending on
a queue and there is new remote demand
> Messages not redistributed to consumers with matching filters when local non
> matching consumers are present
> -----------------------------------------------------------------------------------------------------------
>
> Key: ARTEMIS-2007
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2007
> Project: ActiveMQ Artemis
> Issue Type: Improvement
> Components: AMQP, Broker
> Affects Versions: 2.6.3
> Reporter: Sebastian T
> Assignee: Gary Tully
> Priority: Major
> Attachments: AMQ2007Test.java, artemis-2007.zip
>
> Time Spent: 9h 40m
> Remaining Estimate: 0h
>
> We are experiencing the following issue:
> # We configure an Artemis cluster with ON_DEMAND message loadbalacing and
> message redistribution enabled.
> # We then connect a single consumer to *queues.queue1* on node1 that has a
> message filter that does NOT match a given message.
> # Then we send a message to *queues.queue1* on node1.
> # Then we connect a consumer to *queues.queue1* on node2 that has a filter
> matching the message we sent.
> We now would expect that the message on node1 currently not having any
> matching consumers on node1 to be forwarded or redistributed to node2 where a
> matching consumer exists.
> However that is not happening the consumer on node2 does not receive the
> message and in our case the message on node1 expires after some time despite
> a matching consumer is connected to the cluster.
> In the described scenario when we disconnect the consumer on node1 (that does
> not match the message anyway) the message is redistributed to node2 and
> consumed by the matching consumer.
> If no consumer was connected to node1, a message is sent to node1 and only
> then a matching consumer is connected to node2 the message is forwarded to
> node2 as expected.
> So I guess the core problem is that message redistribution of messages on
> node1 is not triggered when a matching consumer is connected to node2 while a
> *any* consumer already exists on node1 no matter if it actually matches the
> given message.
> I attached a maven test case that illustrates the issue.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)