HI Mike,

tribes is part of tomcat. Yoo can find the svn repo links at

http://tomcat.apache.org/svn.html

Peter


Am 08.10.2008 um 17:18 schrieb Mike Wannamaker:

Cool,

Is there a repository to just get the tribes jar or just the tribes source without having to get all of tomcat to get it?

Like a SVN or CVS repository I could get the fix from and build myself?

Thanks
Mike

-----Original Message-----
From: Filip Hanik - Dev Lists [mailto:[EMAIL PROTECTED]
Sent: October 7, 2008 5:13 PM
To: Tomcat Users List
Subject: Re: Basic Tribes Questions

hi Mike, that's great. yes, the TCP failure detector could give multiple
"DISAPPEARED" messages, that is something I'm about to fix

Filip

Mike Wannamaker wrote:
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: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to