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

Reply via email to