Hello,
I'm running into a strange issue I cannot explain and was hoping someone could
shed some light on the issue.
I'm running an artemis broker 2.28.0 using the artemis jms client 2.19.1 (the
latest java 8 compatible client, my client must be java 8 unfortunately).
I've created a broker using all standard settings and copied the broker
configuration from the openwire virtual topic example, specifically the
acceptor and the topic configuration:
<acceptor
name="artemis">tcp://0.0.0.0:61616?virtualTopicConsumerWildcards=Consumer.*.%3E%3B2</acceptor>
<addresses>
<address name="VirtualTopic.Orders">
<multicast/>
</address>
</addresses>
If I copy the code from the virtual topic example into my project and run it
the test fails.
The message sent to VirtualTopic.Orders is not delivered to the consumer of
the Consumer.A.VirtualTopic.Orders destination.
The destination Consumer.A.VirtualTopic.Orders is created as a queue and is
visible as a separate address and not visible under the topic in the console.
In the log I found this message:
DEBUG o.a.activemq.artemis.core.client - The queue
Consumer.A.VirtualTopic.Orders was created automatically.
To make the example work I changed the configuration in the broker.xml to:
<address name="VirtualTopic.Orders">
<multicast>
<queue name="Consumer.A.VirtualTopic.Orders" />
</multicast>
</address>
The log statement then disappears, and the behaviour is as expected.
I'm trying to figure out where this difference in behaviour comes from.
Is there something in the maven plugin used to bootstrap the broker for the
test that does some additional configuration that would change this behaviour?
In my use case we need to get this configuration working with the <multicast/>
tag so we can add additional queues that will receive the messages from the
topic
Without having to predefine them all in the configuration.
Anyone have any ideas or suggestions that would greatly be appreciated.
Regards,
Filip