[ 
https://issues.apache.org/jira/browse/ARTEMIS-2007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sebastian updated ARTEMIS-2007:
-------------------------------
    Description: 
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.

  was:
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.

I attached a maven test case that illustrates the issue.


> Messages not forwaded/redistributed to cluster nodes with matching consumers
> ----------------------------------------------------------------------------
>
>                 Key: ARTEMIS-2007
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2007
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP, Broker
>    Affects Versions: 2.6.2
>            Reporter: Sebastian
>            Priority: Critical
>         Attachments: artemis-2007.zip
>
>
> 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
(v7.6.3#76005)

Reply via email to