Class McastService
- java.lang.Object
-
- org.apache.catalina.tribes.membership.MembershipServiceBase
-
- org.apache.catalina.tribes.membership.McastService
-
- All Implemented Interfaces:
McastServiceMBean,MembershipListener,MembershipService,MessageListener
public class McastService extends MembershipServiceBase implements MessageListener, McastServiceMBean
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.
-
-
Field Summary
Fields Modifier and Type Field Description protected byte[]domainprotected McastServiceImplimplA handle to the actual low level implementationprotected MemberImpllocalMemberThe local memberprotected MessageListenermsglistenerA message listener delegate for broadcastsprotected byte[]payloadprotected static StringManagersmThe string manager for this package.-
Fields inherited from class org.apache.catalina.tribes.membership.MembershipServiceBase
channel, listener, properties
-
Fields inherited from interface org.apache.catalina.tribes.MembershipService
MBR_RX, MBR_TX
-
-
Constructor Summary
Constructors Constructor Description McastService()Create a membership service.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaccept(ChannelMessage msg)voidbroadcast(ChannelMessage message)Broadcasts a message to all members.java.lang.StringgetAddress()java.lang.StringgetBind()byte[]getDomain()longgetDropTime()longgetFrequency()booleangetLocalLoopbackDisabled()MembergetLocalMember(boolean alive)Get the local member.java.lang.StringgetLocalMemberName()MembershipProvidergetMembershipProvider()Get the MembershipProviderbyte[]getPayload()intgetPort()intgetRecoveryCounter()booleangetRecoveryEnabled()longgetRecoverySleepTime()intgetSoTimeout()intgetTtl()protected voidhasProperty(java.util.Properties properties, java.lang.String name)Check if a required property is available.static voidmain(java.lang.String[] args)Simple test programvoidmessageReceived(ChannelMessage msg)Receive a message from the IO components in the Channel stackvoidremoveMessageListener()voidsetAddress(java.lang.String addr)voidsetBind(java.lang.String bindaddr)protected voidsetDefaults(java.util.Properties properties)voidsetDomain(byte[] domain)voidsetDomain(java.lang.String domain)voidsetDropTime(long time)voidsetFrequency(long time)voidsetLocalLoopbackDisabled(boolean localLoopbackDisabled)voidsetLocalMemberProperties(java.lang.String listenHost, int listenPort, int securePort, int udpPort)Sets the local member properties for broadcasting.voidsetMcastBindAddress(java.lang.String bindaddr)voidsetMcastDropTime(long time)voidsetMessageListener(MessageListener listener)voidsetPayload(byte[] payload)Set a payload to be broadcasted with each membership broadcast.voidsetPort(int port)voidsetProperties(java.util.Properties properties)Sets the properties for the membership service.voidsetRecoveryCounter(int recoveryCounter)voidsetRecoveryEnabled(boolean recoveryEnabled)voidsetRecoverySleepTime(long recoverySleepTime)voidsetSoTimeout(int mcastSoTimeout)voidsetTtl(int mcastTTL)voidstart(int level)Starts the membership service.voidstop(int svc)Stop broadcasting and listening to membership pings-
Methods inherited from class org.apache.catalina.tribes.membership.MembershipServiceBase
findMemberByName, getChannel, getMember, getMembers, getMembersByName, getProperties, hasMembers, memberAdded, memberDisappeared, removeMembershipListener, setChannel, setMembershipListener, start
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.catalina.tribes.membership.McastServiceMBean
findMemberByName, getMembersByName, getProperties, hasMembers
-
-
-
-
Field Detail
-
sm
protected static final StringManager sm
The string manager for this package.
-
impl
protected McastServiceImpl impl
A handle to the actual low level implementation
-
msglistener
protected MessageListener msglistener
A message listener delegate for broadcasts
-
localMember
protected MemberImpl localMember
The local member
-
payload
protected byte[] payload
-
domain
protected byte[] domain
-
-
Method Detail
-
setProperties
public void setProperties(java.util.Properties properties)
Sets the properties for the membership service.- Specified by:
setPropertiesin interfaceMembershipService- Overrides:
setPropertiesin classMembershipServiceBase- 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.
-
getLocalMemberName
public java.lang.String getLocalMemberName()
- Specified by:
getLocalMemberNamein interfaceMcastServiceMBean- Returns:
- the local member name
-
getLocalMember
public Member getLocalMember(boolean alive)
Description copied from interface:MembershipServiceGet the local member.- Specified by:
getLocalMemberin interfaceMembershipService- Parameters:
alive-trueto set the alive time on the local member- Returns:
- the member object that defines this member
-
setLocalMemberProperties
public void setLocalMemberProperties(java.lang.String listenHost, int listenPort, int securePort, int udpPort)Description copied from interface:MembershipServiceSets the local member properties for broadcasting.- Specified by:
setLocalMemberPropertiesin interfaceMembershipService- Parameters:
listenHost- Listen to hostlistenPort- Listen to portsecurePort- Use a secure portudpPort- Use UDP
-
setAddress
public void setAddress(java.lang.String addr)
-
getAddress
public java.lang.String getAddress()
- Specified by:
getAddressin interfaceMcastServiceMBean
-
setMcastBindAddress
public void setMcastBindAddress(java.lang.String bindaddr)
-
setBind
public void setBind(java.lang.String bindaddr)
-
getBind
public java.lang.String getBind()
- Specified by:
getBindin interfaceMcastServiceMBean
-
setPort
public void setPort(int port)
-
setRecoveryCounter
public void setRecoveryCounter(int recoveryCounter)
-
getRecoveryCounter
public int getRecoveryCounter()
- Specified by:
getRecoveryCounterin interfaceMcastServiceMBean
-
setRecoveryEnabled
public void setRecoveryEnabled(boolean recoveryEnabled)
-
getRecoveryEnabled
public boolean getRecoveryEnabled()
- Specified by:
getRecoveryEnabledin interfaceMcastServiceMBean
-
setRecoverySleepTime
public void setRecoverySleepTime(long recoverySleepTime)
-
getRecoverySleepTime
public long getRecoverySleepTime()
- Specified by:
getRecoverySleepTimein interfaceMcastServiceMBean
-
setLocalLoopbackDisabled
public void setLocalLoopbackDisabled(boolean localLoopbackDisabled)
-
getLocalLoopbackDisabled
public boolean getLocalLoopbackDisabled()
- Specified by:
getLocalLoopbackDisabledin interfaceMcastServiceMBean
-
getPort
public int getPort()
- Specified by:
getPortin interfaceMcastServiceMBean
-
setFrequency
public void setFrequency(long time)
-
getFrequency
public long getFrequency()
- Specified by:
getFrequencyin interfaceMcastServiceMBean
-
setMcastDropTime
public void setMcastDropTime(long time)
-
setDropTime
public void setDropTime(long time)
-
getDropTime
public long getDropTime()
- Specified by:
getDropTimein interfaceMcastServiceMBean
-
hasProperty
protected void hasProperty(java.util.Properties properties, java.lang.String name)Check if a required property is available.- Parameters:
properties- The set of propertiesname- The property to check for
-
start
public void start(int level) throws java.lang.ExceptionDescription copied from interface:MembershipServiceStarts the membership service. If a membership listeners is added the listener will start to receive membership events.- Specified by:
startin interfaceMembershipService- 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:
stopin interfaceMembershipService- Parameters:
svc- - level MBR_RX stops listening for members, level MBR_TX stops broad casting the server
-
setMessageListener
public void setMessageListener(MessageListener listener)
-
removeMessageListener
public void removeMessageListener()
-
messageReceived
public void messageReceived(ChannelMessage msg)
Description copied from interface:MessageListenerReceive a message from the IO components in the Channel stack- Specified by:
messageReceivedin interfaceMessageListener- Parameters:
msg- ChannelMessage
-
accept
public boolean accept(ChannelMessage msg)
- Specified by:
acceptin interfaceMessageListener
-
broadcast
public void broadcast(ChannelMessage message) throws ChannelException
Description copied from interface:MembershipServiceBroadcasts a message to all members.- Specified by:
broadcastin interfaceMembershipService- Overrides:
broadcastin classMembershipServiceBase- Parameters:
message- The message to broadcast- Throws:
ChannelException- Message broadcast failed
-
getSoTimeout
public int getSoTimeout()
- Specified by:
getSoTimeoutin interfaceMcastServiceMBean
-
setSoTimeout
public void setSoTimeout(int mcastSoTimeout)
-
getTtl
public int getTtl()
- Specified by:
getTtlin interfaceMcastServiceMBean
-
getPayload
public byte[] getPayload()
-
getDomain
public byte[] getDomain()
- Specified by:
getDomainin interfaceMcastServiceMBean
-
setTtl
public void setTtl(int mcastTTL)
-
setPayload
public void setPayload(byte[] payload)
Description copied from interface:MembershipServiceSet a payload to be broadcasted with each membership broadcast.- Specified by:
setPayloadin interfaceMembershipService- Parameters:
payload- byte[]
-
setDomain
public void setDomain(byte[] domain)
- Specified by:
setDomainin interfaceMembershipService
-
setDomain
public void setDomain(java.lang.String domain)
-
getMembershipProvider
public MembershipProvider getMembershipProvider()
Description copied from interface:MembershipServiceGet the MembershipProvider- Specified by:
getMembershipProviderin interfaceMembershipService- Returns:
- MembershipProvider
-
setDefaults
protected void setDefaults(java.util.Properties properties)
-
main
public static void main(java.lang.String[] args) throws java.lang.ExceptionSimple test program- Parameters:
args- Command-line arguments- Throws:
java.lang.Exception- If an error occurs
-
-