[
https://issues.apache.org/jira/browse/ARTEMIS-4666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Josh Byster updated ARTEMIS-4666:
---------------------------------
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|https://github.com/josh-byster/artemis-classic-consumer-bug/tree/master].
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.
was:
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|https://github.com/josh-byster/artemis-classic-consumer-bug/tree/master].
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. 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.
> Federated queue consumers do not receive messages on classic clients
> --------------------------------------------------------------------
>
> Key: ARTEMIS-4666
> URL: https://issues.apache.org/jira/browse/ARTEMIS-4666
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Federation
> Affects Versions: 2.32.0
> Reporter: Josh Byster
> Priority: Major
>
> 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|https://github.com/josh-byster/artemis-classic-consumer-bug/tree/master].
> 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.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)