Hi Filip,
I think I am seeing the message, it was just hidden amongst other log messages
I guess I missed it.
However I do see something else when I added the TcpFailureDetector to the
interceptor list, I see two DISAPPEARED messages?
Without TcpFailureDetector:
1) Start Server #1, then #2
2) Unplug #2 network
3) On #1 - #2 DISAPPEARED, on #2 - #1 DISAPPEARED
4) Reconnect #2 to network, on #1 - #2 SHUTDOWN;#2 ADDED, on #2 - #1
ADDED
Add TcpFailureDetector
1) Start Server #1, #2
2) Unplug #2 network
3) On #1 - #2 DISAPPEARED;#2 DISAPPEARED, on #2 - #1 DISAPPEARED;#1
DISAPPEARED
4) Reconnect #2 to network, on #1 - #2 SHUTDOWN;#2 ADDED, on #2 - #1
ADDED
I take it I get the 2 DISAPPEARED messages because I have another interceptor,
but is this the correct behaviour?
TIA
Mike
-----Original Message-----
From: Filip Hanik - Dev Lists [mailto:[EMAIL PROTECTED]
Sent: October 6, 2008 11:28 AM
To: Tomcat Users List
Subject: Re: Basic Tribes Questions
there are getters and setters for everything
and they are all documented here
http://tomcat.apache.org/tomcat-6.0-doc/config/cluster-channel.html
each component has getters/setters, for example, the multicast address
setAddress
getAddress
breakpoints might not work very well, since you are stopping one thread,
and not really emulating a real scenario.
again, sounds like you have a simple test case, if you can share that, I
can get more understanding, and help you further.
Filip
Mike Wannamaker wrote:
> Hi Filip
>
> Thanks for the info. However, I don't see the documentation for the
> setters/getters you mention below?
> Also I'm having issues while debugging. When I hit a breakpoint in my code
> and while stepping thru code, I get DISAPPEARED/ADDED messages over and over
> on the other server? I would think the heartbeat is running in a separate
> thread for both send/receive? How to solve this, bump the heartbeat timeout?
>
> TIA
> Mike
>
> -----Original Message-----
> From: Filip Hanik - Dev Lists [mailto:[EMAIL PROTECTED]
> Sent: October 3, 2008 2:51 PM
> To: Tomcat Users List
> Subject: Re: Basic Tribes Questions
>
> answers inline
>
> Mike Wannamaker wrote:
>
>> Hi, I am currently trying to use Tribes as the clustering layer on our
>> server.
>>
>> My startup code looks like this.
>>
>> if(_tribesChannel == null)
>> { // nothing to do if already running
>> try
>> {
>> _tribesChannel = new GroupChannel();
>> // must be done before start:
>>
>>
> no need to use any properties, there are getters and setters for everything
> and they are all documented here
> http://tomcat.apache.org/tomcat-6.0-doc/config/cluster-channel.html
>
>>
>> _tribesChannel.getMembershipService().getProperties().put("mcastPort",
>> String.valueOf(_mainPort));
>>
>> _tribesChannel.getMembershipService().getProperties().put("mcastAddress",
>> _multicastIPAddr);
>>
>>
> not sure what you are trying to do in the code below. if you wanna set
> the port, then simply do it.
> the membership will pick it up automatically
>
>> if(_ancillaryPort > 0)
>> {
>>
>> _tribesChannel.getMembershipService().getProperties().put("tcpListenPort",
>> String.valueOf(_ancillaryPort));
>> // hack alert: Default Tribes instantiation (Tomcat
>> 6.0.16) does not read value for "tcpListenPort" from properties.
>> // Therefore, set it directly
>> ChannelReceiver receiver =
>> _tribesChannel.getChannelReceiver();
>> if(receiver.getPort() != _ancillaryPort)
>> {
>> if(receiver instanceof ReceiverBase)
>> {
>> ((ReceiverBase)receiver).setPort(_ancillaryPort);
>> }
>> }
>> }
>>
>>
>> _tribesChannel.addMembershipListener(_tribesMembershipListener);
>> _tribesChannel.addChannelListener(_tribesChannelListener);
>> _tribesChannel.start(CHANNEL_COMPONENTS);
>> }
>> catch(ChannelException ex)
>> {
>> try { _tribesChannel.stop(CHANNEL_COMPONENTS); }
>> catch(Throwable t) { /*gulp*/}
>> _tribesChannel = null;
>> throw new RuntimeException(ex); // todo, exception handling?
>> }
>> }
>>
>> My Question is that when I start Server #1, then Server #2, then unplug
>> Server #2 network cable, Server #1 gets the DISAPPEARED message but Server
>> #2 just keeps logging the message below. As I write this it's at attempt
>> #120. How do I get this to notify on Server #2 that Server #1 has
>> DISAPPEARED or can I set the number of attempts to a maximum number before
>> notifying?
>>
>>
> the message you are getting is cause the membership tries to recover.
> you can limit this, by doing
> setRecoveryEnabled(true|false);
> setRecoveryCounter(nr-of-times-to-try-recover)
>
> also, you haven't added in the TCP failure detector, which adds one more
> layer of protection
> see it in this default configuration
> http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html
>
> you should still get the member disappeared error (eventually after the
> timeout), if you can supply a simple test case, I can try it out over here.
>
> best
> Filip
>
>
>> Also is there any other documentation for tribes, other than the limited
>> docs on the apache site?
>>
>> INFO: Done sleeping, membership established, start level:8
>> Oct 3, 2008 1:12:44 PM
>> org.apache.catalina.tribes.transport.nio.NioReplicationTask run
>> WARNING: IOException in replication worker, unable to drain channel.
>> Probable cause: Keep alive socket closed[An existing connection was
>> forcibly closed by the remote host].
>> Oct 3, 2008 1:12:44 PM
>> org.apache.catalina.tribes.membership.McastServiceImpl$SenderThread run
>> WARNING: Unable to send mcast message.
>> java.net.NoRouteToHostException: No route to host: Datagram send failed
>> at java.net.PlainDatagramSocketImpl.send(Native Method)
>> at java.net.DatagramSocket.send(DatagramSocket.java:612)
>> at
>> org.apache.catalina.tribes.membership.McastServiceImpl.send(McastServiceImpl.java:385)
>> at
>> org.apache.catalina.tribes.membership.McastServiceImpl$SenderThread.run(McastServiceImpl.java:445)
>> Oct 3, 2008 1:12:49 PM
>> org.apache.catalina.tribes.membership.McastServiceImpl$RecoveryThread run
>> INFO: Tribes membership, running recovery thread, multicasting is not
>> functional.
>> Oct 3, 2008 1:12:49 PM
>> org.apache.catalina.tribes.membership.McastServiceImpl$RecoveryThread
>> stopService
>> WARNING: Recovery thread failed to stop membership service.
>> java.net.NoRouteToHostException: No route to host: Datagram send failed
>> at java.net.PlainDatagramSocketImpl.send(Native Method)
>> at java.net.DatagramSocket.send(DatagramSocket.java:612)
>> at
>> org.apache.catalina.tribes.membership.McastServiceImpl.send(McastServiceImpl.java:385)
>> at
>> org.apache.catalina.tribes.membership.McastServiceImpl.stop(McastServiceImpl.java:299)
>> at
>> org.apache.catalina.tribes.membership.McastServiceImpl$RecoveryThread.stopService(McastServiceImpl.java:480)
>> at
>> org.apache.catalina.tribes.membership.McastServiceImpl$RecoveryThread.run(McastServiceImpl.java:504)
>> Oct 3, 2008 1:12:49 PM
>> org.apache.catalina.tribes.membership.McastServiceImpl setupSocket
>> INFO: Setting cluster mcast soTimeout to 500
>> Oct 3, 2008 1:12:49 PM
>> org.apache.catalina.tribes.membership.McastServiceImpl$RecoveryThread
>> startService
>> WARNING: Recovery thread failed to start membership service.
>> java.net.SocketException: error setting options
>> at java.net.PlainDatagramSocketImpl.join(Native Method)
>> at
>> java.net.PlainDatagramSocketImpl.join(PlainDatagramSocketImpl.java:172)
>> at java.net.MulticastSocket.joinGroup(MulticastSocket.java:276)
>> at
>> org.apache.catalina.tribes.membership.McastServiceImpl.start(McastServiceImpl.java:233)
>> at
>> org.apache.catalina.tribes.membership.McastServiceImpl$RecoveryThread.startService(McastServiceImpl.java:490)
>> at
>> org.apache.catalina.tribes.membership.McastServiceImpl$RecoveryThread.run(McastServiceImpl.java:504)
>> Oct 3, 2008 1:12:49 PM
>> org.apache.catalina.tribes.membership.McastServiceImpl$RecoveryThread run
>> INFO: Recovery attempt 1 failed, trying again in 5000 seconds
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: [email protected]
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]