Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-3328

"FQQN support is limited to Anycast queues where the queue name equals the address." error occurs

XMLWordPrintable

    • +
    • Hide
      In prior releases, if a client specified a fully-qualified queue name (FQQN) when it used the `artemis producer` command to send messages to a queue with the `anycast` routing type, the broker connection returned an error if the queue and its address had different names, for example, `fqqn://exampleaddress::examplequeue`. This issue is now resolved.
      Show
      In prior releases, if a client specified a fully-qualified queue name (FQQN) when it used the `artemis producer` command to send messages to a queue with the `anycast` routing type, the broker connection returned an error if the queue and its address had different names, for example, ` fqqn://exampleaddress::examplequeue `. This issue is now resolved.
    • Documented as Resolved Issue
    • Verified in a release
    • Hide
      1. add address/queue in broker.xml
                 <address name=“exampleaddress”>
                    <anycast>
                       <queue name=“examplequeue”/>
                    </anycast>
                 </address>
        
      2. send messages to "exampleaddress::examplequeue"
        ./bin/artemis producer --destination fqqn://exampleaddress::examplequeue --message-count 100 --url tcp://localhost:61616
        
      3. => the following error will occur
        Exception in thread "main" ActiveMQException[errorType=GENERIC_EXCEPTION message=FQQN support is limited to Anycast queues where the queue name equals the address.]
                at org.apache.activemq.artemis.cli.commands.messages.Producer.lookupDestination(Producer.java:159)
                at org.apache.activemq.artemis.cli.commands.messages.Producer.execute(Producer.java:123)
                at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:150)
                at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:98)
                at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:125)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:129)
                at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:49)
        
      Show
      add address/queue in broker.xml          <address name=“exampleaddress”>             <anycast>                <queue name=“examplequeue”/>             </anycast>          </address> send messages to "exampleaddress::examplequeue" ./bin/artemis producer --destination fqqn: //exampleaddress::examplequeue --message-count 100 --url tcp://localhost:61616 => the following error will occur Exception in thread "main" ActiveMQException[errorType=GENERIC_EXCEPTION message=FQQN support is limited to Anycast queues where the queue name equals the address.] at org.apache.activemq.artemis.cli.commands.messages.Producer.lookupDestination(Producer.java:159) at org.apache.activemq.artemis.cli.commands.messages.Producer.execute(Producer.java:123) at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:150) at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:98) at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:125) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:129) at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:49)

      • "FQQN support is limited to Anycast queues where the queue name equals the address." error occurs. However, when using FQQN, the producer command should be able to send messages even if the address and queue have a different name.
      • Enforcing "the address-and-queue-with-the-same-name requirement" when using FQQN doesn't make sense. Because FQQN is often used exactly for use-cases where one doesn't want to send messages to the queue with the same name.
      • FYI, JMS can send messages even if the address and queue have a different name.
                 Destination queue = session.createQueue("exampleaddress::examplequeue");
                 MessageProducer sender = session.createProducer(queue);
                 for (int i=0;i<100;i++) {
                     sender.send(session.createTextMessage("Hello world "));
                 }
        

              rh-ee-ataylor Andy Taylor
              rhn-support-tyamashi Tomonari Yamashita
              Tiago Bueno Tiago Bueno
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: