You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2021/09/06 09:41:00 UTC

[jira] [Commented] (ARTEMIS-2007) Messages not redistributed to consumers with matching filters when local non matching consumers are present

    [ 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)