Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.2.0
-
None
-
None
Description
I have downloaded the latest Artemis 2.2.0 and testing it with Qpid AMQP client 0.23.0 and sending message through a Topic. Here is my config in broker.xml (Basically, it is default from the box):
<security-settings>
<security-setting match="#">
<permission type="createNonDurableQueue" roles="amq"/>
<permission type="deleteNonDurableQueue" roles="amq"/>
<permission type="createDurableQueue" roles="amq"/>
<permission type="deleteDurableQueue" roles="amq"/>
<permission type="createAddress" roles="amq"/>
<permission type="deleteAddress" roles="amq"/>
<permission type="consume" roles="amq"/>
<permission type="browse" roles="amq"/>
<permission type="send" roles="amq"/>
<permission type="manage" roles="amq"/>
</security-setting>
</security-settings>
<address-setting match="#">
<dead-letter-address>DLQ</dead-letter-address>
<expiry-address>ExpiryQueue</expiry-address>
<redelivery-delay>0</redelivery-delay>
<max-size-bytes>-1</max-size-bytes>
<message-counter-history-day-limit>10</message-counter-history-day-limit>
<address-full-policy>PAGE</address-full-policy>
<auto-create-queues>true</auto-create-queues>
<auto-create-addresses>true</auto-create-addresses>
<auto-create-jms-queues>true</auto-create-jms-queues>
<auto-create-jms-topics>true</auto-create-jms-topics>
</address-setting>
Here is my sender side code:
String connectionUrl = "amqp://localhost:5672";
ConnectionFactory connectionFactory = new JmsConnectionFactory(connectionUrl);
connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topicQueue = session.createTopic("SpyTopic9");
MessageProducer topicSender = session.createProducer(topicQueue);
and receiver side:
Topic topicQueue = session.createTopic("SpyTopic9");
MessageConsumer topicConsumer = session.createConsumer(topicQueue);
my sender and receiver code is a 2 separate program which located on 2 different machine. I noticed that if I start sender side program first without receiver side code running, the artemis created a anycast instead of multicast. And if at this time, I start the receiver side, it shows me the following message :
Exception:Address SpyTopic9 is not configured for topic support [condition = amqp:illegal-state]
And if I started receiver first and then start sender, then everything looks fine.
I wonder if the topic should be created as a multicast when auto-created address is configured. Thanks.