The issue you describe with the routed message count looks like a bug. Can you open a Jira?
Justin On Mon, Jul 8, 2024 at 12:43 PM Alexander Milovidov <milovid...@gmail.com> wrote: > Hi Justin, > > Thanks for the detailed answer. Of course IBM MQ and ActiveMQ Artemis > brokers have fundamental differences. I will try to explain the difference > to the users and instruct them how to send messages. > > And it is great that Artemis is in active development. Some users just > don't like any changes. > > Recently I have faced a strange situation when messages which do not match > the filter were delivered to the queue. These messages were redelivered > between cluster nodes. I think if we were running the latest version where > this bug is fixed, it could not happen. I would also like to reproduce this > situation, but it is difficult (at least I mentioned that something wrong > happened with the cluster after the replication between its two nodes has > been broken). > > About routed message count which increases when a message is not delivered > to any binding. It's easy to reproduce: > 1. Create a new Artemis instance. > 2. Create address TEST with multicast routing. > 3. Create a multicast queue TEST.FILTER with filter e.g. key='value' on > this address. > 4. Send a test message: > artemis producer --user=admin --password=admin --url=tcp://localhost:61616 > --message-count=1 --destination=topic://TEST > The message is not delivered to the queue, but the routed message count is > increased. > It also happens when sending a message to FQQN > destination=topic://TEST::TEST.FILTER. > > > пн, 8 июл. 2024 г. в 19:18, Justin Bertram <jbert...@apache.org>: > > > > Was it definitely a bug? > > > > Yes. I believe it was. > > > > > As I thought before, the filter is something that stands between > address > > and queue. > > > > Your assumption here isn't based on how the broker is actually designed. > > The filter is actually part of the queue itself. As the documentation [1] > > states: > > > > Only messages that match the filter expression will enter the queue. > > > > > When a user wants to send a message to the multicast queue, it is > usually > > done with testing purposes, or to make some application support tasks... > > > > This may be true of your use-case, but other valid use-cases exist. > > > > > IMHO this update breaks the logic of message processing and causes > extra > > work for users that support applications. > > > > Is it not possible to send a message that actually conforms to the > queue's > > filter? > > > > > Our testers are not fully disappointed because they still can send > > messages without headers to the multicast queue using the management > > console...I hope there are no plans to remove this option in the future. > > > > I just checked this use-case, and I can confirm that it works as you > > indicate. This is because it's not actually using the FQQN but rather an > > internal mechanism which circumvents the logic that evaluates the filter. > > My feeling is that it should probably be changed in order to be > consistent. > > > > > ...when messages are dropped, the routed message count of the address > is > > increased, and unrouted message count of the address is not increased. Is > > this correct? > > > > The definition of "routed message count" is: > > > > number of messages routed to one or more bindings > > > > So, if the message was routed to _at least one_ binding then the routed > > message count will increase. It's not clear from your description exactly > > what exactly is happening in your use-case. Is the message not routed to > > _any_ binding (e.g. due to filters) and the routed message count is still > > increasing? > > > > > > Justin > > > > On Fri, Jul 5, 2024 at 7:34 AM Alexander Milovidov <milovid...@gmail.com > > > > wrote: > > > > > Hi All, > > > > > > Recently I upgraded Artemis to 2.35.0 in the test environment and our > > > testers complained that they no longer can send messages to multicast > > > queues using FQQN. I have read release notes and found that there was a > > bug > > > that was fixed in this version. > > > Issue https://issues.apache.org/jira/browse/ARTEMIS-4795 > > > > > > I have some questions about this issue: > > > > > > 1. Was it definitely a bug? As I thought before, the filter is > something > > > that stands between address and queue. When an application sends a > > message > > > to the address, it is delivered to any queue on this address after > > passing > > > its filter. So the order of message processing is: address - filter - > > > queue. When we send a message directly to the queue using FQQN, we > don't > > > need to filter it - the filter is only needed when receiving messages > > that > > > are sent to an address. > > > 2. When a user wants to send a message to the multicast queue, it is > > > usually done with testing purposes, or to make some application support > > > tasks, for example to resend failed or lost messages. The intention is > to > > > put a message in a particular queue. A person who sends a message to > the > > > particular multicast queue usually knows what he (or she) does and the > > > message is not sent to the address with all multicast queues. Usually > we > > > don't need to additionally filter these messages. > > > > > > IMHO this update breaks the logic of message processing and causes > extra > > > work for users that support applications. > > > Our testers are not fully disappointed because they still can send > > > messages without headers to the multicast queue using the management > > > console. But this method is suitable for sending only a very small > > > number of messages. > > > I hope there are no plans to remove this option in the future. > > > > > > Another problem regarding sending messages to FQQN is that when > messages > > > are dropped, the routed message count of the address is increased, and > > > unrouted message count of the address is not increased. Is this > correct? > > > > > > -- > > > Regards, > > > Alexander > > > > > >