You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Charles Anthony <ch...@hpdsoftware.com> on 2006/10/03 16:37:38 UTC

Failover Advice

I'm looking for some advice, please, on possible failover approaches.
 
We have a single standalone ActiveMQ Broker, and both application
clients and an application servers connective to the broker via tcp.
The messages are non-persistent, and we have persitence turned off on
the ActiveMQ Broker.
 
The application server actually resides on the same server as the
ActiveMQ server; the clients are coming in over a VPN connection.
 
We have two internet lines coming in - and sometimes we need to swap
lines, due to routing problems. Our IT chaps tinker away with some
VPN/router settings, and hey presto, the TCP traffic is rerouted over
the other line.
 
Sometimes, though not always, it seems this causes the TCP Connections
to ActiveMQ to hang (sometimes they go to TCP_WAIT states). 
 
Now, obviously I'd rather the connections didn't go belly up - but
anecodotally (i.e. through observation, not through proof) they do
occasionally do this.
 
How can I set up a fail over scenario here ? Our broker, and all the
clietns and servers are configured using URLs; the Broker currently
listens on 
 
tcp://localhost:61616

The application server connections to the same url
(tcp://localhost:61616)
The clients connect using a dns-resolved name,
(tcp://examplemachine.host.com:61616)
 
I'm actually not bothered if existing messages get lost - what I don't
want to do is restart my application server, because we have some
lengthy initialisation logic which can take up to half an hour.
 
Would this work (yes, I know I should just try it - but SHOULD this
work) : 
 
configure two separate ActiveMQ Brokers on the same machine 
 
Broker 1 tcp://localhost:61616
Broker 2 tcp://localhost:61700
 
Configure the clients/application server to use a  failover URL :
failover://(tcp://examplemachine.host.com:61616,tcp://examplemachine.hos
t.com:61616)?randomize=false

Would that make any sense ?

We're using a snapshopt of ActiveMQ 4.0 from May.

Excuse the hurried email that probably doesn't make a great deal of
sense; disgruntled clients are applying pressure...

Cheers,

Charles.

Re: Failover Advice

Posted by James Strachan <ja...@gmail.com>.
:)

So yes the URL you use at the end sounds line to me. Run 2 brokers if
you like, otherwise just use failver: on the one broker (so that
bad/hung TCP connections get recreated).

On 10/3/06, Charles Anthony <ch...@hpdsoftware.com> wrote:
> I'm looking for some advice, please, on possible failover approaches.
>
> We have a single standalone ActiveMQ Broker, and both application
> clients and an application servers connective to the broker via tcp.
> The messages are non-persistent, and we have persitence turned off on
> the ActiveMQ Broker.
>
> The application server actually resides on the same server as the
> ActiveMQ server; the clients are coming in over a VPN connection.
>
> We have two internet lines coming in - and sometimes we need to swap
> lines, due to routing problems. Our IT chaps tinker away with some
> VPN/router settings, and hey presto, the TCP traffic is rerouted over
> the other line.
>
> Sometimes, though not always, it seems this causes the TCP Connections
> to ActiveMQ to hang (sometimes they go to TCP_WAIT states).
>
> Now, obviously I'd rather the connections didn't go belly up - but
> anecodotally (i.e. through observation, not through proof) they do
> occasionally do this.
>
> How can I set up a fail over scenario here ? Our broker, and all the
> clietns and servers are configured using URLs; the Broker currently
> listens on
>
> tcp://localhost:61616
>
> The application server connections to the same url
> (tcp://localhost:61616)
> The clients connect using a dns-resolved name,
> (tcp://examplemachine.host.com:61616)
>
> I'm actually not bothered if existing messages get lost - what I don't
> want to do is restart my application server, because we have some
> lengthy initialisation logic which can take up to half an hour.
>
> Would this work (yes, I know I should just try it - but SHOULD this
> work) :
>
> configure two separate ActiveMQ Brokers on the same machine
>
> Broker 1 tcp://localhost:61616
> Broker 2 tcp://localhost:61700
>
> Configure the clients/application server to use a  failover URL :
> failover://(tcp://examplemachine.host.com:61616,tcp://examplemachine.hos
> t.com:61616)?randomize=false
>
> Would that make any sense ?
>
> We're using a snapshopt of ActiveMQ 4.0 from May.
>
> Excuse the hurried email that probably doesn't make a great deal of
> sense; disgruntled clients are applying pressure...
>
> Cheers,
>
> Charles.
>


-- 

James
-------
http://radio.weblogs.com/0112098/