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

Details

    • +
    • 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)

    Description

      • "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 "));
                 }
        

      Attachments

        Activity

          People

            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

            Dates

              Created:
              Updated:
              Resolved: