Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.32.0
-
None
Description
Federated queues with A upstream and downstream to B do not seem to work as expected when the client JMS implementation is ActiveMQ Classic v5.16.2 (used in my example, but also verified the issue is present with v5.18.3 and v6.0.1). With Artemis JMS as the client, it seems to work as expected.
When running a producer on A and a consumer on B with the classic org.apache.activemq.ActiveMQConnectionFactory, the consumer on B does not consume any messages that the producer sends. When B is restarted, it then consumes the messages.
This works properly with ActiveMQ Artemis org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory. I've created a minimal reproducible example here. Running server1 and server2 and then first starting up the Consumer then running the Producer class, we can see that no messages are logged in console by the consumer. When you restart the consumer, the messages are consumed. This is an issue whether you attach a MessageListener or you call receive() directly. If you switch the ActiveMQConnectionFactory implementation to Artemis, it works as expected.
I don't think this necessarily warrants a fix if it's an issue specifically with the classic client, since the solution is just to upgrade clients to Artemis. However, if it is something that can be patched on the server, that would be great. I do, however, think it would be good to note this down in the docs that it's not supported with classic clients, since I spent a while debugging it. However, most other features do work as expected with the clients running the classic version, which is much appreciated as it makes migration significantly easier.
Attachments
Issue Links
- links to