Apache Tomcat 6.0.39

org.apache.catalina.tribes.membership
Class McastService

java.lang.Object
  extended by org.apache.catalina.tribes.membership.McastService
All Implemented Interfaces:
MembershipListener, MembershipService

public class McastService
extends java.lang.Object
implements MembershipService, MembershipListener

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.

Version:
$Id: McastService.java 939515 2010-04-29 23:59:49Z kkolinko $
Author:
Filip Hanik

Field Summary
protected  byte[] domain
           
protected static Member[] EMPTY_MEMBERS
          Return all the members
protected  McastServiceImpl impl
          A handle to the actual low level implementation
protected  MembershipListener listener
          A membership listener delegate (should be the cluster :)
protected  MemberImpl localMember
          The local member
protected  byte[] payload
           
protected  java.util.Properties properties
          The implementation specific properties
protected  StringManager sm
          The string manager for this package.
 
Fields inherited from interface org.apache.catalina.tribes.MembershipService
MBR_RX, MBR_TX
 
Constructor Summary
McastService()
          Create a membership service.
 
Method Summary
 Member findMemberByName(java.lang.String name)
          Return the member by name
 java.lang.String getAddress()
           
 java.lang.String getBind()
           
 byte[] getDomain()
           
 long getDropTime()
           
 long getFrequency()
           
 java.lang.String getInfo()
          Return descriptive information about this implementation and the corresponding version number, in the format <description>/<version>.
 Member getLocalMember(boolean alive)
          Return the local member
 java.lang.String getLocalMemberName()
          Return the local member name
 java.lang.String getMcastAddr()
          Deprecated. use getAddress
 java.lang.String getMcastBindAddress()
          Deprecated. use getBind
 long getMcastDropTime()
          Deprecated. use getDropTime
 long getMcastFrequency()
          Deprecated. use getFrequency
 int getMcastPort()
          Deprecated. use getPort()
 int getMcastSoTimeout()
          Deprecated. use getSoTimeout
 int getMcastTTL()
          Deprecated. use getTtl
 Member getMember(Member mbr)
           
 Member[] getMembers()
          Returns a list of all the members in the cluster.
 java.lang.String[] getMembersByName()
          Return all the members by name
 byte[] getPayload()
           
 int getPort()
           
 java.util.Properties getProperties()
          Return the properties, see setProperties
 int getSoTimeout()
           
 int getTtl()
           
 boolean hasMembers()
          has members?
protected  void hasProperty(java.util.Properties properties, java.lang.String name)
          Check if a required property is available.
static void main(java.lang.String[] args)
          Simple test program
 void memberAdded(Member member)
          A member was added to the group
 void memberDisappeared(Member member)
          Callback from the impl when a new member has been received
 void removeMembershipListener()
          Remove the membership listener
 void setAddress(java.lang.String addr)
           
 void setBind(java.lang.String bindaddr)
           
 void setDomain(byte[] domain)
           
 void setDomain(java.lang.String domain)
           
 void setDropTime(long time)
           
 void setFrequency(long time)
           
 void setLocalMemberProperties(java.lang.String listenHost, int listenPort)
          Sets the local member properties for broadcasting
 void setMcastAddr(java.lang.String addr)
          Deprecated. use setAddress
 void setMcastBindAddress(java.lang.String bindaddr)
           
 void setMcastDropTime(long time)
           
 void setMcastFrequency(long time)
          Deprecated. use setFrequency
 void setMcastPort(int port)
          Deprecated. use setPort
 void setMcastSoTimeout(int mcastSoTimeout)
          Deprecated. use setSoTimeout
 void setMcastTTL(int mcastTTL)
          Deprecated. use setTtl
 void setMembershipListener(MembershipListener listener)
          Add a membership listener, this version only supports one listener per service, so calling this method twice will result in only the second listener being active.
 void setPayload(byte[] payload)
          Set a payload to be broadcasted with each membership broadcast.
 void setPort(int port)
           
 void setProperties(java.util.Properties properties)
          Sets the properties for the membership service.
 void setRecoveryCounter(int recoveryCounter)
           
 void setRecoveryEnabled(boolean recoveryEnabled)
           
 void setRecoverySleepTime(long recoverySleepTime)
           
 void setSoTimeout(int mcastSoTimeout)
           
 void setTtl(int mcastTTL)
           
 void start()
          Start broadcasting and listening to membership pings
 void start(int level)
          Starts the membership service.
 void stop(int svc)
          Stop broadcasting and listening to membership pings
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sm

protected StringManager sm
The string manager for this package.


properties

protected java.util.Properties properties
The implementation specific properties


impl

protected McastServiceImpl impl
A handle to the actual low level implementation


listener

protected MembershipListener listener
A membership listener delegate (should be the cluster :)


localMember

protected MemberImpl localMember
The local member


payload

protected byte[] payload

domain

protected byte[] domain

EMPTY_MEMBERS

protected static final Member[] EMPTY_MEMBERS
Return all the members

Constructor Detail

McastService

public McastService()
Create a membership service.

Method Detail

getInfo

public java.lang.String getInfo()
Return descriptive information about this implementation and the corresponding version number, in the format <description>/<version>.


setProperties

public void setProperties(java.util.Properties properties)
Description copied from interface: MembershipService
Sets the properties for the membership service. This must be called before the start() method is called. The properties are implementation specific.

Specified by:
setProperties in interface MembershipService
Parameters:
properties -
All are required
1. mcastPort - the port to listen to
2. mcastAddress - the mcast group address
4. bindAddress - the bind address if any - only one that can be null
5. memberDropTime - the time a member is gone before it is considered gone.
6. mcastFrequency - the frequency of sending messages
7. tcpListenPort - the port this member listens to
8. tcpListenHost - the bind address of this member
Throws:
java.lang.IllegalArgumentException - if a property is missing.

getProperties

public java.util.Properties getProperties()
Return the properties, see setProperties

Specified by:
getProperties in interface MembershipService

getLocalMemberName

public java.lang.String getLocalMemberName()
Return the local member name


getLocalMember

public Member getLocalMember(boolean alive)
Return the local member

Specified by:
getLocalMember in interface MembershipService

setLocalMemberProperties

public void setLocalMemberProperties(java.lang.String listenHost,
                                     int listenPort)
Sets the local member properties for broadcasting

Specified by:
setLocalMemberProperties in interface MembershipService

setAddress

public void setAddress(java.lang.String addr)

setMcastAddr

public void setMcastAddr(java.lang.String addr)
Deprecated. use setAddress

Parameters:
addr - String

getAddress

public java.lang.String getAddress()

getMcastAddr

public java.lang.String getMcastAddr()
Deprecated. use getAddress

Returns:
String

setMcastBindAddress

public void setMcastBindAddress(java.lang.String bindaddr)

setBind

public void setBind(java.lang.String bindaddr)

getMcastBindAddress

public java.lang.String getMcastBindAddress()
Deprecated. use getBind

Returns:
String

getBind

public java.lang.String getBind()

setMcastPort

public void setMcastPort(int port)
Deprecated. use setPort

Parameters:
port - int

setPort

public void setPort(int port)

setRecoveryCounter

public void setRecoveryCounter(int recoveryCounter)

setRecoveryEnabled

public void setRecoveryEnabled(boolean recoveryEnabled)

setRecoverySleepTime

public void setRecoverySleepTime(long recoverySleepTime)

getMcastPort

public int getMcastPort()
Deprecated. use getPort()

Returns:
int

getPort

public int getPort()

setMcastFrequency

public void setMcastFrequency(long time)
Deprecated. use setFrequency

Parameters:
time - long

setFrequency

public void setFrequency(long time)

getMcastFrequency

public long getMcastFrequency()
Deprecated. use getFrequency

Returns:
long

getFrequency

public long getFrequency()

setMcastDropTime

public void setMcastDropTime(long time)

setDropTime

public void setDropTime(long time)

getMcastDropTime

public long getMcastDropTime()
Deprecated. use getDropTime

Returns:
long

getDropTime

public long getDropTime()

hasProperty

protected void hasProperty(java.util.Properties properties,
                           java.lang.String name)
Check if a required property is available.

Parameters:
properties - The set of properties
name - The property to check for

start

public void start()
           throws java.lang.Exception
Start broadcasting and listening to membership pings

Specified by:
start in interface MembershipService
Throws:
java.lang.Exception - if a IO error occurs

start

public void start(int level)
           throws java.lang.Exception
Description copied from interface: MembershipService
Starts the membership service. If a membership listeners is added the listener will start to receive membership events.

Specified by:
start in interface MembershipService
Parameters:
level - - level MBR_RX starts listening for members, level MBR_TX starts broad casting the server
Throws:
java.lang.Exception - if the service fails to start.
java.lang.IllegalArgumentException - if the level is incorrect.

stop

public void stop(int svc)
Stop broadcasting and listening to membership pings

Specified by:
stop in interface MembershipService
Parameters:
svc - - level MBR_RX stops listening for members, level MBR_TX stops broad casting the server

getMembersByName

public java.lang.String[] getMembersByName()
Return all the members by name

Specified by:
getMembersByName in interface MembershipService

findMemberByName

public Member findMemberByName(java.lang.String name)
Return the member by name

Specified by:
findMemberByName in interface MembershipService

hasMembers

public boolean hasMembers()
has members?

Specified by:
hasMembers in interface MembershipService
Returns:
true if the the group contains members

getMember

public Member getMember(Member mbr)
Specified by:
getMember in interface MembershipService
Parameters:
mbr - Member
Returns:
Member

getMembers

public Member[] getMembers()
Description copied from interface: MembershipService
Returns a list of all the members in the cluster.

Specified by:
getMembers in interface MembershipService

setMembershipListener

public void setMembershipListener(MembershipListener listener)
Add a membership listener, this version only supports one listener per service, so calling this method twice will result in only the second listener being active.

Specified by:
setMembershipListener in interface MembershipService
Parameters:
listener - The listener

removeMembershipListener

public void removeMembershipListener()
Remove the membership listener

Specified by:
removeMembershipListener in interface MembershipService

memberAdded

public void memberAdded(Member member)
Description copied from interface: MembershipListener
A member was added to the group

Specified by:
memberAdded in interface MembershipListener
Parameters:
member - Member - the member that was added

memberDisappeared

public void memberDisappeared(Member member)
Callback from the impl when a new member has been received

Specified by:
memberDisappeared in interface MembershipListener
Parameters:
member - The member
See Also:
Member.SHUTDOWN_PAYLOAD

getMcastSoTimeout

public int getMcastSoTimeout()
Deprecated. use getSoTimeout

Returns:
int

getSoTimeout

public int getSoTimeout()

setMcastSoTimeout

public void setMcastSoTimeout(int mcastSoTimeout)
Deprecated. use setSoTimeout

Parameters:
mcastSoTimeout - int

setSoTimeout

public void setSoTimeout(int mcastSoTimeout)

getMcastTTL

public int getMcastTTL()
Deprecated. use getTtl

Returns:
int

getTtl

public int getTtl()

getPayload

public byte[] getPayload()

getDomain

public byte[] getDomain()

setMcastTTL

public void setMcastTTL(int mcastTTL)
Deprecated. use setTtl

Parameters:
mcastTTL - int

setTtl

public void setTtl(int mcastTTL)

setPayload

public void setPayload(byte[] payload)
Description copied from interface: MembershipService
Set a payload to be broadcasted with each membership broadcast.

Specified by:
setPayload in interface MembershipService
Parameters:
payload - byte[]

setDomain

public void setDomain(byte[] domain)
Specified by:
setDomain in interface MembershipService

setDomain

public void setDomain(java.lang.String domain)

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Simple test program

Parameters:
args - Command-line arguments
Throws:
java.lang.Exception - If an error occurs

Apache Tomcat 6.0.39

Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.