activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hiram Chirino" <hi...@hiramchirino.com>
Subject Re: Master-slave client reconnection
Date Wed, 05 Jul 2006 13:30:35 GMT
Hi Dejan,

Thanks for figuring that out.  I've open an JIRA issue to trace the
resolution of the problem.
http://issues.apache.org/activemq/browse/AMQ-796

On 7/5/06, Dejan Bosanac <dejan@nighttale.net> wrote:
>
> Hi,
>
> after some experiments I found that this problem only exists if there are
> no
> other threads in the application. It seems like connection thread dies
> before it manages to reconnect. By starting another thread in the
> application, it succeeds to recover from master failure and reconnect to
> the
> slave broker. So I have a workaround for now, but it would be nice to make
> this work even for simple (single-threaded) clients.
>
> Regards,
> Dejan
>
> On 7/3/06, Dejan Bosanac <dejan@nighttale.net> wrote:
> >
> > Yes,
> >
> > here's the URL (with replaced server names)
> >
> >
> >
> failover://(tcp://master_host:61616,tcp://slave_host:61616)?randomize=false&amp;maxReconnectAttempts=3
> >
> > I've added maxReconnectAttempts parameter later, so it doesn't really
> > makes any difference.
> >
> > If you need any additional details, please let me know.
> >
> > Thanks,
> > Dejan
> >
> >
> > On 7/3/06, James Strachan < james.strachan@gmail.com> wrote:
> > >
> > > From your mail I couldn't see the brokerUrl you were using to connect
> > > using failover to the master and slave. Are you using something like
> > > the following?
> > >
> > > failover:tcp://master:61616,tcp://slave:61616
> > >
> > >
> > >
> > > On 7/3/06, Dejan Bosanac < dejan@nighttale.net> wrote:
> > > > Hi,
> > > >
> > > > I'm evaluating ActiveMQ's master-slave configuration in order to
> make
> > > my
> > > > system more robust.
> > > > I have noted that when I'm using message listeners client does not
> > > reconnect
> > > > to slave broker properly (when master broker goes down).
> > > > Here's the example code:
> > > >
> > > >             Queue dest = sess.createQueue("test");
> > > >             MessageConsumer consumer = sess.createConsumer(dest);
> > > >
> > > >             consumer.setMessageListener(new ClientReceiver());
> > > >             con.start();
> > > >
> > > > When I stop my master broker, my client dies with the following log
> > > excerpt:
> > > >
> > > > 2006-07-03 12:18:08,262 [7.199.103:61616] DEBUG
> > > > FailoverTransport              - Transport failed, starting up
> > > reconnect
> > > > task
> > > > java.io.EOFException
> > > >     at java.io.DataInputStream.readInt (Unknown Source)
> > > >     at org.apache.activemq.openwire.OpenWireFormat.unmarshal(
> > > > OpenWireFormat.java:274)
> > > >     at org.apache.activemq.transport.tcp.TcpTransport.run(
> > > TcpTransport.java
> > > > :142)
> > > >     at java.lang.Thread.run(Unknown Source)
> > > > 2006-07-03 12:18:08,262 [ActiveMQ Task  ] DEBUG
> > > > FailoverTransport              - Attempting connect to:
> > > > tcp://master_host:61616
> > > >
> > > > If I change the above example to consume messages directly, like
> this
> > > >
> > > >             Queue dest = sess.createQueue("test");
> > > >             MessageConsumer consumer = sess.createConsumer(dest);
> > > >
> > > >             con.start();
> > > >             Message msg = consumer.receive();
> > > >
> > > > everything seems to be working fine:
> > > >
> > > > 2006-07-03 12:33:56,335 [7.199.103:61616] DEBUG
> > > > FailoverTransport              - Transport failed, starting up
> > > reconnect
> > > > task
> > > > java.io.EOFException
> > > >     at java.io.DataInputStream.readInt(Unknown Source)
> > > >     at org.apache.activemq.openwire.OpenWireFormat.unmarshal(
> > > > OpenWireFormat.java:274)
> > > >     at org.apache.activemq.transport.tcp.TcpTransport.run (
> > > TcpTransport.java
> > > > :142)
> > > >     at java.lang.Thread.run(Unknown Source)
> > > > 2006-07-03 12:33:56,335 [ActiveMQ Task  ] DEBUG
> > > > FailoverTransport              - Attempting connect to:
> > > > tcp://master_host:61616
> > > > 2006-07-03 12:33:57,356 [ActiveMQ Task  ] DEBUG
> > > > FailoverTransport              - Connect fail to:
> > > tcp://master_host:61616,
> > > > reason: java.net.ConnectException: Connection refused: connect
> > > > 2006-07-03 12:33:57,356 [ActiveMQ Task  ] DEBUG
> > > > FailoverTransport              - Attempting connect to:
> > > > tcp://slave_host:61616
> > > > 2006-07-03 12:33:57,366 [ActiveMQ Task  ] DEBUG
> > > > WireFormatNegotiator           - Sending: WireFormatInfo {
> version=1,
> > > > properties={TightEncodingEnabled=true, TcpNoDelayEnabled=true,
> > > > SizePrefixDisabled=false, StackTraceEnabled=true,
> > > > MaxInactivityDuration=30000, CacheEnabled=true},
> > > magic=[A,c,t,i,v,e,M,Q]}
> > > > 2006-07-03 12:33:57,366 [ 47.199.98:61616] DEBUG
> > > > TcpTransport                   - TCP consumer thread starting
> > > > 2006-07-03 12:33:57,386 [47.199.98:61616] DEBUG
> > > > WireFormatNegotiator           - Received WireFormat: WireFormatInfo
> {
> > >
> > > > version=1, properties={StackTraceEnabled=true,
> > > TightEncodingEnabled=true,
> > > > TcpNoDelayEnabled=true, SizePrefixDisabled=false,
> > > > MaxInactivityDuration=30000, CacheEnabled=true},
> > > magic=[A,c,t,i,v,e,M,Q]}
> > > > 2006-07-03 12:33:57,386 [47.199.98:61616] DEBUG
> > > > WireFormatNegotiator           - tcp://slave_host/slave_ip:61616
> > > before
> > > > negotiation: OpenWireFormat{version=1, cacheEnabled=false,
> > > > stackTraceEnabled=false, tightEncodingEnabled=false,
> > > > sizePrefixDisabled=false}
> > > > 2006-07-03 12:33:57,386 [47.199.98:61616] DEBUG
> > > > WireFormatNegotiator           - tcp://slave_host/slave_ip:61616
> after
> > > > negotiation: OpenWireFormat{version=1, cacheEnabled=true,
> > > > stackTraceEnabled=true, tightEncodingEnabled=true,
> > > sizePrefixDisabled=false}
> > > > 2006-07-03 12:33:57,396 [ActiveMQ Task  ] DEBUG
> > > > FailoverTransport              - Connection established
> > > > 2006-07-03 12:33:57,396 [ 47.199.98:61616] DEBUG
> > > > FailoverTransport              - Waking up reconnect task
> > > > 2006-07-03 12:33:57,396 [47.199.98:61616] DEBUG
> > > > ResponseCorrelator             - Received unexpected response for
> > > command
> > > > id: 1
> > > > 2006-07-03 12:33:57,406 [47.199.98:61616] DEBUG
> > > > ResponseCorrelator             - Received unexpected response for
> > > command
> > > > id: 4
> > > > 2006-07-03 12:33:57,547 [47.199.98:61616] DEBUG
> > > > ResponseCorrelator             - Received unexpected response for
> > > command
> > > > id: 2
> > > >
> > > > Has anyone else had such experiences and do you know any
> workarounds?
> > > >
> > > > Regards,
> > > > Dejan
> > > >
> > > >
> > >
> > >
> > > --
> > >
> > > James
> > > -------
> > > http://radio.weblogs.com/0112098/
> > >
> >
> >
>
>


-- 
Regards,
Hiram

Blog: http://hiramchirino.com

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message