org.apache.catalina.tribes.membership

Class McastService

public class McastService extends 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: $Revision: 892864 $, $Date: 2009-12-21 17:26:07 +0100 (Mon, 21 Dec 2009) $

Author: Filip Hanik

Field Summary
protected byte[]domain
protected static Member[]EMPTY_MEMBERS
Return all the members
protected McastServiceImplimpl
A handle to the actual low level implementation
protected MembershipListenerlistener
A membership listener delegate (should be the cluster :)
protected MemberImpllocalMember
The local member
protected byte[]payload
protected Propertiesproperties
The implementation specific properties
protected StringManagersm
The string manager for this package.
Constructor Summary
McastService()
Create a membership service.
Method Summary
MemberfindMemberByName(String name)
Return the member by name
StringgetAddress()
StringgetBind()
byte[]getDomain()
longgetDropTime()
longgetFrequency()
StringgetInfo()
Return descriptive information about this implementation and the corresponding version number, in the format <description>/<version>.
MembergetLocalMember(boolean alive)
Return the local member
StringgetLocalMemberName()
Return the local member name
StringgetMcastAddr()
StringgetMcastBindAddress()
longgetMcastDropTime()
longgetMcastFrequency()
intgetMcastPort()
intgetMcastSoTimeout()
intgetMcastTTL()
MembergetMember(Member mbr)
Member[]getMembers()
String[]getMembersByName()
Return all the members by name
byte[]getPayload()
intgetPort()
PropertiesgetProperties()
Return the properties, see setProperties
intgetSoTimeout()
intgetTtl()
booleanhasMembers()
has members?
protected voidhasProperty(Properties properties, String name)
Check if a required property is available.
static voidmain(String[] args)
Simple test program
voidmemberAdded(Member member)
voidmemberDisappeared(Member member)
Callback from the impl when a new member has been received
voidremoveMembershipListener()
Remove the membership listener
voidsetAddress(String addr)
voidsetBind(String bindaddr)
voidsetDomain(byte[] domain)
voidsetDomain(String domain)
voidsetDropTime(long time)
voidsetFrequency(long time)
voidsetLocalMemberProperties(String listenHost, int listenPort)
Sets the local member properties for broadcasting
voidsetMcastAddr(String addr)
voidsetMcastBindAddress(String bindaddr)
voidsetMcastDropTime(long time)
voidsetMcastFrequency(long time)
voidsetMcastPort(int port)
voidsetMcastSoTimeout(int mcastSoTimeout)
voidsetMcastTTL(int mcastTTL)
voidsetMembershipListener(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.
voidsetPayload(byte[] payload)
voidsetPort(int port)
voidsetProperties(Properties properties)
voidsetRecoveryCounter(int recoveryCounter)
voidsetRecoveryEnabled(boolean recoveryEnabled)
voidsetRecoverySleepTime(long recoverySleepTime)
voidsetSoTimeout(int mcastSoTimeout)
voidsetTtl(int mcastTTL)
voidstart()
Start broadcasting and listening to membership pings
voidstart(int level)
voidstop(int svc)
Stop broadcasting and listening to membership pings

Field Detail

domain

protected byte[] domain

EMPTY_MEMBERS

protected static final Member[] EMPTY_MEMBERS
Return all the members

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

properties

protected Properties properties
The implementation specific properties

sm

protected StringManager sm
The string manager for this package.

Constructor Detail

McastService

public McastService()
Create a membership service.

Method Detail

findMemberByName

public Member findMemberByName(String name)
Return the member by name

getAddress

public String getAddress()

getBind

public String getBind()

getDomain

public byte[] getDomain()

getDropTime

public long getDropTime()

getFrequency

public long getFrequency()

getInfo

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

getLocalMember

public Member getLocalMember(boolean alive)
Return the local member

getLocalMemberName

public String getLocalMemberName()
Return the local member name

getMcastAddr

public String getMcastAddr()

Deprecated: use getAddress

Returns: String

getMcastBindAddress

public String getMcastBindAddress()

Deprecated: use getBind

Returns: String

getMcastDropTime

public long getMcastDropTime()

Deprecated: use getDropTime

Returns: long

getMcastFrequency

public long getMcastFrequency()

Deprecated: use getFrequency

Returns: long

getMcastPort

public int getMcastPort()

Deprecated: use getPort()

Returns: int

getMcastSoTimeout

public int getMcastSoTimeout()

Deprecated: use getSoTimeout

Returns: int

getMcastTTL

public int getMcastTTL()

Deprecated: use getTtl

Returns: int

getMember

public Member getMember(Member mbr)

getMembers

public Member[] getMembers()

getMembersByName

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

getPayload

public byte[] getPayload()

getPort

public int getPort()

getProperties

public Properties getProperties()
Return the properties, see setProperties

getSoTimeout

public int getSoTimeout()

getTtl

public int getTtl()

hasMembers

public boolean hasMembers()
has members?

hasProperty

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

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

main

public static void main(String[] args)
Simple test program

Parameters: args Command-line arguments

Throws: Exception If an error occurs

memberAdded

public void memberAdded(Member member)

memberDisappeared

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

Parameters: member The member

removeMembershipListener

public void removeMembershipListener()
Remove the membership listener

setAddress

public void setAddress(String addr)

setBind

public void setBind(String bindaddr)

setDomain

public void setDomain(byte[] domain)

setDomain

public void setDomain(String domain)

setDropTime

public void setDropTime(long time)

setFrequency

public void setFrequency(long time)

setLocalMemberProperties

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

setMcastAddr

public void setMcastAddr(String addr)

Deprecated: use setAddress

Parameters: addr String

setMcastBindAddress

public void setMcastBindAddress(String bindaddr)

setMcastDropTime

public void setMcastDropTime(long time)

setMcastFrequency

public void setMcastFrequency(long time)

Deprecated: use setFrequency

Parameters: time long

setMcastPort

public void setMcastPort(int port)

Deprecated: use setPort

Parameters: port int

setMcastSoTimeout

public void setMcastSoTimeout(int mcastSoTimeout)

Deprecated: use setSoTimeout

Parameters: mcastSoTimeout int

setMcastTTL

public void setMcastTTL(int mcastTTL)

Deprecated: use setTtl

Parameters: mcastTTL int

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.

Parameters: listener The listener

setPayload

public void setPayload(byte[] payload)

setPort

public void setPort(int port)

setProperties

public void setProperties(Properties properties)

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.

setRecoveryCounter

public void setRecoveryCounter(int recoveryCounter)

setRecoveryEnabled

public void setRecoveryEnabled(boolean recoveryEnabled)

setRecoverySleepTime

public void setRecoverySleepTime(long recoverySleepTime)

setSoTimeout

public void setSoTimeout(int mcastSoTimeout)

setTtl

public void setTtl(int mcastTTL)

start

public void start()
Start broadcasting and listening to membership pings

Throws: java.lang.Exception if a IO error occurs

start

public void start(int level)

stop

public void stop(int svc)
Stop broadcasting and listening to membership pings
Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.