peek at the schema: https://activemq.apache.org/schema/core/activemq-core.xsd - consumerPriorityBase is what you need
<xs:attribute name="consumerPriorityBase" type="xs:integer"/> <xs:attribute name="consumerTTL" type="xs:integer"/> <xs:attribute name="decreaseNetworkConsumerPriority" type="xs:boolean"/> On Wed, 3 Nov 2021 at 15:40, Paul Burgess <pburg...@peersoftware.com> wrote: > > Hi Tim, > > Don't be sorry! Thank you so much for your help, that worked a treat! > > Is there a way that I can set the base consumer priority in the xml config? > So that messages prefer to travel through certain brokers? > > Thanks again, big help. > > ________________________________ > From: Tim Bain <tb...@alumni.duke.edu> > Sent: 03 November 2021 11:40 > To: ActiveMQ Users <users@activemq.apache.org> > Subject: Re: Network of brokers and priority network links > > Use static:(failover:(stuff))?maxReconnectAttempts=0. > > Sorry for not remembering that it needed to be wrapped in static:(), the > masterslave transport has mostly eliminated direct use of the failover > transport in NoB configuration, so my memory is rusty. > > Tim > > On Tue, Nov 2, 2021, 6:58 AM Paul Burgess <pburg...@peersoftware.com> wrote: > > > Hi Tim, > > > > Thank for the additional info. I actually use the failover transport > > regularly for clients, so am aware of the priorityBackup option - thanks > > all the same. > > > > To be honest, I'm not surprised about the failover transport being > > unavailable, it's not listed anywhere in the network of brokers > > documentation. As I understand it, network connectors and transport > > connectors are treated very differently. Also, it's something that I have > > tried in the past in a desperate attempt to get this going. Below is a log > > snippet of the exception, confirming that the DiscoveryAgent is not > > recognised. > > > > > > WARN | Exception encountered during context initialization - cancelling > > refresh attempt: org.springframework.beans.factory.BeanCreationException: > > Error creating bean with name > > 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class path > > resource [activemq.xml]: Cannot create inner bean > > 'networkConnector#6ee660fb' of type > > [org.apache.activemq.network.DiscoveryNetworkConnector] while setting bean > > property 'networkConnectors' with key [0]; nested exception is > > org.springframework.beans.factory.BeanCreationException: Error creating > > bean with name 'networkConnector#6ee660fb' defined in class path resource > > [activemq.xml]: Error setting property values; nested exception is > > org.springframework.beans.PropertyBatchUpdateException; nested > > PropertyAccessExceptions (1) are: > > PropertyAccessException 1: > > org.springframework.beans.MethodInvocationException: Property 'uri' threw > > exception; nested exception is java.io.IOException: DiscoveryAgent scheme > > NOT recognized: [failover] > > ERROR | Failed to load: class path resource [activemq.xml], reason: Error > > creating bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' > > defined in class path resource [activemq.xml]: Cannot create inner bean > > 'networkConnector#6ee660fb' of type > > [org.apache.activemq.network.DiscoveryNetworkConnector] while setting bean > > property 'networkConnectors' with key [0]; nested exception is > > org.springframework.beans.factory.BeanCreationException: Error creating > > bean with name 'networkConnector#6ee660fb' defined in class path resource > > [activemq.xml]: Error setting property values; nested exception is > > org.springframework.beans.PropertyBatchUpdateException; nested > > PropertyAccessExceptions (1) are: > > PropertyAccessException 1: > > org.springframework.beans.MethodInvocationException: Property 'uri' threw > > exception; nested exception is java.io.IOException: DiscoveryAgent scheme > > NOT recognized: [failover] > > org.springframework.beans.factory.BeanCreationException: Error creating > > bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in > > class path resource [activemq.xml]: Cannot create inner bean > > 'networkConnector#6ee660fb' of type > > [org.apache.activemq.network.DiscoveryNetworkConnector] while setting bean > > property 'networkConnectors' with key [0]; nested exception is > > org.springframework.beans.factory.BeanCreationException: Error creating > > bean with name 'networkConnector#6ee660fb' defined in class path resource > > [activemq.xml]: Error setting property values; nested exception is > > org.springframework.beans.PropertyBatchUpdateException; nested > > PropertyAccessExceptions (1) are: > > PropertyAccessException 1: > > org.springframework.beans.MethodInvocationException: Property 'uri' threw > > exception; nested exception is java.io.IOException: DiscoveryAgent scheme > > NOT recognized: [failover] > > > > > > As said before, all help is very much appreciated. > > > > > > ________________________________ > > From: Tim Bain <tb...@alumni.duke.edu> > > Sent: 02 November 2021 11:55 > > To: ActiveMQ Users <users@activemq.apache.org> > > Subject: Re: Network of brokers and priority network links > > > > For the second option, I think you'll also want to set the priorityBackup > > option (see the Priority Backup section of > > https://activemq.apache.org/failover-transport-reference.html) to get the > > behavior of failing back to the fast link when it becomes available once > > again. > > > > I'm very surprised to hear that the masterslave transport is available but > > the failover transport is not. Can you provide the error message? > > > > Tim > > > > On Tue, Nov 2, 2021, 4:56 AM Paul Burgess <pburg...@peersoftware.com> > > wrote: > > > > > Hi Gary, > > > > > > Thank you for the reply, both solutions would be perfect for what I need. > > > > > > With the first suggestion, I am unaware how to set the consumer base > > > priority. I'm not running an integrated broker, standalone where all my > > > configurations are withing the activemq.xml. I do apologise if I'm > > missing > > > something obvious. If this is something that can be done it would > > > definitely be useful to me. > > > > > > As for the second suggestion, I would love for the failover transport to > > > be available on network connectors, but it isn't. The closest thing is > > the > > > masterslave transport, which does not have fail-back (priority URI) > > > capabilities. If you try to use the failover transport (discovery agent) > > > then an exception will be thrown. > > > > > > Thanks again for the help, it's very much appreciated. > > > > > > > > > ________________________________ > > > From: Gary Tully <gary.tu...@gmail.com> > > > Sent: 02 November 2021 10:04 > > > To: users@activemq.apache.org <users@activemq.apache.org> > > > Subject: Re: Network of brokers and priority network links > > > > > > there is one tweak with > > > > > > > > org.apache.activemq.network.NetworkBridgeConfiguration#setConsumerPriorityBase > > > which could be used to bias the fast links, set that to -1 for the > > > fast links and the others will default to -5, so even with more > > > brokers the fast links will have "higher" priority. > > > > > > the other option is to use a single bridge with two urls > > > failover:(fast-link,slow-link)?randomize=false and the slow link will > > > only be used on failure of the fast link. > > > > > > hope this helps! > > > > > > On Mon, 1 Nov 2021 at 16:57, Paul Burgess <pburg...@peersoftware.com> > > > wrote: > > > > > > > > Hi JB, > > > > > > > > Thanks for the reply but no. I do use that option but in fact, if I > > used > > > this in this scenario it would have the opposite effect as the super-fast > > > links go through more brokers than the slow one. > > > > > > > > To simplify the problem, just imagine 2 brokers connected to each other > > > over 2 network links, one fast (primary) and the other slow > > > (backup/failover). I only want to use the failover link when the primary > > is > > > in a failed state, meaning that I want to go back to the fast link on > > > recovery. > > > > > > > > I feel like I have looked at every option but just want to confirm > > > whether this can be done. > > > > > > > > Thanks again > > > > > > > > ________________________________ > > > > From: Jean-Baptiste Onofre <j...@nanthrax.net> > > > > Sent: 01 November 2021 16:46 > > > > To: users@activemq.apache.org <users@activemq.apache.org> > > > > Subject: Re: Network of brokers and priority network links > > > > > > > > Hi Paul, > > > > > > > > If you are using ActiveMQ 5.x, you can decrease network priority to > > > allow local consumers first and fallback to remote brokers else. > > > > > > > > Is it what you are looking for ? > > > > > > > > Regards > > > > JB > > > > > > > > > Le 1 nov. 2021 à 17:37, Paul Burgess <pburg...@peersoftware.com> a > > > écrit : > > > > > > > > > > Hi, > > > > > > > > > > I'm trying to configure a network of brokers, where links between the > > > brokers work as a 'Primary' and 'Secondary/Failover' pair, much like > > > failover transport connections and priority URIs. > > > > > > > > > > I have links between sites that are fast and stable, that I want to > > be > > > used as a priority, with a backup link to be used only when there is a > > > failure. After a failure, when the primary link becomes active, I need > > > traffic to fail-back to that primary link. > > > > > > > > > > Is there a way I can achieve this? I have tried using the masterslave > > > feature (although I know it's not really designed for this > > functionality), > > > which works under failure, but does not fail-back to the primary link. > > > > > > > > > > I have read somewhere about setting consumer priorities for a > > specific > > > broker, which I think would work, but I can't see anywhere how to set > > this > > > in configuration files. > > > > > > > > > > Maybe I missed something in the documentation? Perhaps there's a way > > > to set a desire route? Any help is greatly appreciated. > > > > > > > > > > Many thanks > > > > > > > > > > Paul > > > > > > > > >