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

ANYCAST destinations are created under certain circunstances, when emulating Virtual Topics

XMLWordPrintable

    • False
    • None
    • False
    • -
    • Workaround Exists
    • Hide

      Creating a broker plugin that does not allow creating ANYCAST destinations under certain conditions

       

      // code placeholder
      public class BrokerPlugin implements ActiveMQServerPlugin
      {
          @Override
          public void beforeCreateQueue(QueueConfiguration queueConfig) throws ActiveMQException
          {
              String queueName = queueConfig.getName().toString();
              RoutingType queueType = queueConfig.getRoutingType();
              if (queueName.startsWith("Consumer") && (queueType == RoutingType.ANYCAST))
                  throw new ActiveMQException("Creation of ANYCAST queue: '" + queueName + "' not allowed!");
          }
      } 

       

      Show
      Creating a broker plugin that does not allow creating ANYCAST destinations under certain conditions   // code placeholder public class BrokerPlugin implements ActiveMQServerPlugin { @Override public void beforeCreateQueue(QueueConfiguration queueConfig) throws ActiveMQException { String queueName = queueConfig.getName().toString(); RoutingType queueType = queueConfig.getRoutingType(); if (queueName.startsWith( "Consumer" ) && (queueType == RoutingType.ANYCAST)) throw new ActiveMQException( "Creation of ANYCAST queue: '" + queueName + "' not allowed!" ); } }  
    • Hide

      There is a script, and some files attached here 

       

      To execute the script:

      • You should have MAVEN installed, JAVA 8 , JAVA 17 and a A-MQ 7.10.1 product folder 
      • Download and unzip
      • Check and change variables in top of reproducer.sh file
        • JAVA8_HOME
        • JAVA17_HOME
        • BROKER_HOME
      • Run the script: $ ./reproducer.sh
      • It can take some tries to reproduce, the file "TEST-REPRODUCED-OUTPUT.txt" has a sample run

       

      The script executes the following steps. Note that at least one feature is left installed on Fuse, for it to happen
       
      1. Install all features
      2. Uninstall all features but one
      3. Wait for queues/address to auto delete
       
      --> here we check for ANYCAST destinations created
       
      4. Install the  uninstalled features again 
      5. Repeat steps 2-4 until the issue happens
       

       

      Show
      There is a script, and some files attached here     To execute the script: You should have MAVEN installed, JAVA 8 , JAVA 17 and a A-MQ 7.10.1 product folder  Download and unzip Check and change variables in top of reproducer.sh file JAVA8_HOME JAVA17_HOME BROKER_HOME Run the script: $ ./reproducer.sh It can take some tries to reproduce, the file "TEST-REPRODUCED-OUTPUT.txt" has a sample run   The script executes the following steps. Note that at least one feature is left installed on Fuse, for it to happen   1. Install all features 2. Uninstall all features but one 3. Wait for queues/address to auto delete   --> here we check for ANYCAST destinations created   4. Install the  uninstalled features again  5. Repeat steps 2-4 until the issue happens    
    • Important

      The customer sometimes sees multicast addresses created as anycast, when consumers connect to queues.
      This happens when some features that create consumers are deployed on a Fuse instance. They are simulating A-MQ 6 virtual topics in A-MQ 7, as seen here [1][2]

      [1] https://activemq.apache.org/components/artemis/migration-documentation/VirtualTopics.html
      [2] https://access.redhat.com/articles/3810701

      They are using Camel routes to connect. with the "queue:" prefix like
      from("amqConsumer:queue:Consumer.rec318mui.VirtualTopic.soa.topic.bsp318.get.account.details.acmanager")
      ...
      ;
       

              rhn-support-jbertram Justin Bertram
              rhn-support-anarvaez Alfredo Narvaez
              Tiago Bueno Tiago Bueno
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: