[ 
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)

Reply via email to