[
https://issues.apache.org/jira/browse/ARTEMIS-2229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16755127#comment-16755127
]
Michal Toth commented on ARTEMIS-2229:
--------------------------------------
Are we sure this is a bug and not just a user configuration issue with wrong
usage of receiver client?
I have used 2.6.3 broker and it worked w/o problems for me with qpid-jms 0.26
and 0.37.
Changes in default broker.xml
{code:xml}
<acceptor
name="amqp">tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;multicastPrefix=topic://</acceptor>
(added multicastPrefix)
..
<auto-create-addresses>false</auto-create-addresses> (for # match)
...
<addresses>
<address name="DLQ">
<anycast>
<queue name="DLQ" />
</anycast>
</address>
<address name="ExpiryQueue">
<anycast>
<queue name="ExpiryQueue" />
</anycast>
</address>
<address name="publish.A">
<multicast>
<queue name="receive.1">
<durable>true</durable>
</queue>
<queue name="receive.2">
<durable>true</durable>
</queue>
</multicast>
</address>
</addresses>
{code}
Start the broker (mcast address with 2 mcast queues are created - no other
address would be created as autocreate-address is off)
Clients usage
{code}
$ cli-qpid-jms-sender --log-msgs dict --broker 10.x.x.109:61616 --address
topic://publish.A
{'address': 'publish.A', 'group-id': None, 'subject': None, 'user-id': None,
'correlation-id': None, 'content-encoding': None, 'priority': 4, 'type': None,
'ttl': 0, 'absolute-expiry-time': 0, 'content': None, 'redelivered': False,
'reply-to-group-id': None, 'durable': True, 'delivery-time': 1548766042113,
'group-sequence': 0, 'creation-time': 1548766042113, 'content-type': None,
'id': 'a8286274-1b53-4a55-95e3-dcc252935503:1:1:1-1', 'reply-to': None,
'properties': {'JMSXDeliveryCount': 1}}
$ cli-qpid-jms-receiver --log-msgs dict --broker 10.x.x.109:61616 --address
publish.A::receive.2
13:47:30,513 ERROR Exception while consuming message!
javax.jms.JMSException: Address publish.A is not configured for queue support
[condition = amqp:illegal-state]
at
org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToException(AmqpSupport.java:167)
at
org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToException(AmqpSupport.java:118)
at
org.apache.qpid.jms.provider.amqp.builders.AmqpResourceBuilder.handleClosed(AmqpResourceBuilder.java:185)
at
org.apache.qpid.jms.provider.amqp.builders.AmqpResourceBuilder.processRemoteClose(AmqpResourceBuilder.java:129)
at
org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates(AmqpProvider.java:964)
at
org.apache.qpid.jms.provider.amqp.AmqpProvider.access$1800(AmqpProvider.java:105)
at
org.apache.qpid.jms.provider.amqp.AmqpProvider$15.run(AmqpProvider.java:823)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
$ cli-qpid-jms-receiver --log-msgs dict --broker 10.x.x.109:61616 --address
topic://publish.A::receive.2
{'address': 'publish.A', 'group-id': None, 'subject': None, 'user-id': None,
'correlation-id': None, 'content-encoding': None, 'priority': 4, 'type': None,
'ttl': 0, 'absolute-expiry-time': 0, 'content': None, 'redelivered': False,
'reply-to-group-id': None, 'durable': True, 'delivery-time': 1548766042113,
'group-sequence': 0, 'creation-time': 1548766042113, 'content-type': None,
'id': 'a8286274-1b53-4a55-95e3-dcc252935503:1:1:1-1', 'reply-to': None,
'properties': {'JMSXDeliveryCount': 1}}
$ cli-qpid-jms-receiver --log-msgs dict --broker 10.x.x.109:61616 --address
topic://publish.A::receive.1
{'address': 'publish.A', 'group-id': None, 'subject': None, 'user-id': None,
'correlation-id': None, 'content-encoding': None, 'priority': 4, 'type': None,
'ttl': 0, 'absolute-expiry-time': 0, 'content': None, 'redelivered': False,
'reply-to-group-id': None, 'durable': True, 'delivery-time': 1548766042113,
'group-sequence': 0, 'creation-time': 1548766042113, 'content-type': None,
'id': 'a8286274-1b53-4a55-95e3-dcc252935503:1:1:1-1', 'reply-to': None,
'properties': {'JMSXDeliveryCount': 1}}
{code}
As one can see, the only change in receiver client is using address prefix
"topic://" - instructing it to use Topic destination type instead of a Queue.
If we omit this prefix and use Queue JMS object, we got the same error as user
above.
Thus I think this is not a bug and fix should be reverted.
> Qpid jms consumer cannot receive from multicast queue using FQQN
> ----------------------------------------------------------------
>
> Key: ARTEMIS-2229
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2229
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: AMQP
> Affects Versions: 2.6.3
> Reporter: Howard Gao
> Assignee: Howard Gao
> Priority: Major
> Fix For: 2.6.4
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> If a client sends a message to a multicast address configured as below:
> |{color:#000000} <address name="publish.A">{color}|
> |{color:#000000} <multicast>{color}|
> |{color:#000000} <queue name="receive.1">{color}|
> |{color:#000000} <durable>true</durable>{color}|
> |{color:#000000} </queue>{color}|
> |{color:#000000} <queue name="receive.2">{color}|
> |{color:#000000} <durable>true</durable>{color}|
> |{color:#000000} </queue>{color}|
> |{color:#000000} </multicast>{color}|
> |{color:#000000} </address> {color}|
> Using a qpid-jms client to receive the message from one of the queues using
> fully qualified queue name will fail with following error message:
> {color:#000000} Address publish.A is not configured for queue support
> [condition = amqp:illegal-state]{color}
> It should be able to receive the message without any error.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)