| java.lang.Object org.apache.catalina.tribes.membership.McastServiceImpl
McastServiceImpl | public class McastServiceImpl (Code) | | A membership implementation using simple multicast.
This is the representation of a multicast membership service.
This class is responsible for maintaining a list of active cluster nodes in the cluster.
If a node fails to send out a heartbeat, the node will be dismissed.
This is the low level implementation that handles the multicasting sockets.
Need to fix this, could use java.nio and only need one thread to send and receive, or
just use a timeout on the receive
author: Filip Hanik version: $Revision: 467222 $, $Date: 2006-10-24 05:17:11 +0200 (mar., 24 oct. 2006) $ |
Inner Class :public class ReceiverThread extends Thread | |
Inner Class :public class SenderThread extends Thread | |
MAX_PACKET_SIZE | protected static int MAX_PACKET_SIZE(Code) | | |
doRunReceiver | protected boolean doRunReceiver(Code) | | |
doRunSender | protected boolean doRunSender(Code) | | Internal flag used for the listen thread that listens to the multicasting socket.
|
mcastSoTimeout | protected int mcastSoTimeout(Code) | | Read timeout on the mcast socket
|
mcastTTL | protected int mcastTTL(Code) | | Time to live for the multicast packets that are being sent out
|
member | protected MemberImpl member(Code) | | The local member that we intend to broad cast over and over again
|
membership | protected Membership membership(Code) | | The membership, used so that we calculate memberships when they arrive or don't arrive
|
port | protected int port(Code) | | The multicast port
|
receivePacket | protected DatagramPacket receivePacket(Code) | | Reuse the receivePacket, no need to create a new one everytime
|
receiver | protected ReceiverThread receiver(Code) | | Thread to listen for pings
|
sendFrequency | protected long sendFrequency(Code) | | How often to we send out a broadcast saying we are alive, must be smaller than timeToExpiration
|
sendPacket | protected DatagramPacket sendPacket(Code) | | Reuse the sendPacket, no need to create a new one everytime
|
sender | protected SenderThread sender(Code) | | Thread to send pings
|
serviceStartTime | protected long serviceStartTime(Code) | | When was the service started
|
startLevel | protected int startLevel(Code) | | |
timeToExpiration | protected long timeToExpiration(Code) | | The time it takes for a member to expire.
|
McastServiceImpl | public McastServiceImpl(MemberImpl member, long sendFrequency, long expireTime, int port, InetAddress bind, InetAddress mcastAddress, int ttl, int soTimeout, MembershipListener service) throws IOException(Code) | | Create a new mcast service impl
Parameters: member - - the local member Parameters: sendFrequency - - the time (ms) in between pings sent out Parameters: expireTime - - the time (ms) for a member to expire Parameters: port - - the mcast port Parameters: bind - - the bind address (not sure this is used yet) Parameters: mcastAddress - - the mcast address Parameters: service - - the callback service throws: IOException - |
checkExpired | protected void checkExpired()(Code) | | |
getServiceStartTime | public long getServiceStartTime()(Code) | | |
start | public synchronized void start(int level) throws IOException(Code) | | Start the service
Parameters: level - 1 starts the receiver, level 2 starts the sender throws: IOException - if the service fails to start throws: IllegalStateException - if the service is already started |
stop | public synchronized boolean stop(int level) throws IOException(Code) | | Stops the service
throws: IOException - if the service fails to disconnect from the sockets |
|
|