Class McastService
- java.lang.Object
- 
- org.apache.catalina.tribes.membership.McastService
 
- 
- All Implemented Interfaces:
- McastServiceMBean,- MembershipListener,- MembershipService,- MessageListener
 
 public class McastService extends java.lang.Object implements MembershipService, MembershipListener, 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 SummaryFields Modifier and Type Field Description protected byte[]domainprotected static Member[]EMPTY_MEMBERSReturn all the membersprotected McastServiceImplimplA handle to the actual low level implementationprotected MembershipListenerlistenerA membership listener delegate (should be the cluster :)protected MemberImpllocalMemberThe local memberprotected MessageListenermsglistenerA message listener delegate for broadcastsprotected byte[]payloadprotected java.util.PropertiespropertiesThe implementation specific propertiesprotected static StringManagersmThe string manager for this package.- 
Fields inherited from interface org.apache.catalina.tribes.MembershipServiceMBR_RX, MBR_TX
 
- 
 - 
Constructor SummaryConstructors Constructor Description McastService()Create a membership service.
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaccept(ChannelMessage msg)voidbroadcast(ChannelMessage message)Broadcasts a message to all members.MemberfindMemberByName(java.lang.String name)Return the member by namejava.lang.StringgetAddress()java.lang.StringgetBind()ChannelgetChannel()Return the channel that is related to this MembershipServicebyte[]getDomain()longgetDropTime()longgetFrequency()booleangetLocalLoopbackDisabled()MembergetLocalMember(boolean alive)Get the local member.java.lang.StringgetLocalMemberName()MembergetMember(Member mbr)Retrieve the specified member from the membership.Member[]getMembers()java.lang.String[]getMembersByName()Return all the members by namebyte[]getPayload()intgetPort()java.util.PropertiesgetProperties()intgetRecoveryCounter()booleangetRecoveryEnabled()longgetRecoverySleepTime()intgetSoTimeout()intgetTtl()booleanhasMembers()has members?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 programvoidmemberAdded(Member member)A member was added to the groupvoidmemberDisappeared(Member member)Callback from the impl when a new member has been receivedvoidmessageReceived(ChannelMessage msg)Receive a message from the IO components in the Channel stackvoidremoveMembershipListener()Remove the membership listenervoidremoveMessageListener()voidsetAddress(java.lang.String addr)voidsetBind(java.lang.String bindaddr)voidsetChannel(Channel channel)Set the channel that is related to this MembershipServiceprotected 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)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.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()Start broadcasting and listening to membership pingsvoidstart(int level)Starts the membership service.voidstop(int svc)Stop broadcasting and listening to membership pings
 
- 
- 
- 
Field Detail- 
smprotected static final StringManager sm The string manager for this package.
 - 
propertiesprotected java.util.Properties properties The implementation specific properties
 - 
implprotected McastServiceImpl impl A handle to the actual low level implementation
 - 
listenerprotected volatile MembershipListener listener A membership listener delegate (should be the cluster :)
 - 
msglistenerprotected MessageListener msglistener A message listener delegate for broadcasts
 - 
localMemberprotected MemberImpl localMember The local member
 - 
payloadprotected byte[] payload 
 - 
domainprotected byte[] domain 
 - 
EMPTY_MEMBERSprotected static final Member[] EMPTY_MEMBERS Return all the members
 
- 
 - 
Method Detail- 
setPropertiespublic void setProperties(java.util.Properties properties) Sets the properties for the membership service.- Specified by:
- setPropertiesin 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.
 
 - 
getPropertiespublic java.util.Properties getProperties() - Specified by:
- getPropertiesin interface- McastServiceMBean
- Specified by:
- getPropertiesin interface- MembershipService
- Returns:
- the properties for the configuration used.
 
 - 
getLocalMemberNamepublic java.lang.String getLocalMemberName() - Specified by:
- getLocalMemberNamein interface- McastServiceMBean
- Returns:
- the local member name
 
 - 
getLocalMemberpublic Member getLocalMember(boolean alive) Get the local member.- Specified by:
- getLocalMemberin interface- MembershipService
- Parameters:
- alive-- trueto set the alive time on the local member
- Returns:
- the member object that defines this member
 
 - 
setLocalMemberPropertiespublic void setLocalMemberProperties(java.lang.String listenHost, int listenPort, int securePort, int udpPort)Sets the local member properties for broadcasting.- Specified by:
- setLocalMemberPropertiesin interface- MembershipService
- Parameters:
- listenHost- Listen to host
- listenPort- Listen to port
- securePort- Use a secure port
- udpPort- Use UDP
 
 - 
setAddresspublic void setAddress(java.lang.String addr) 
 - 
getAddresspublic java.lang.String getAddress() - Specified by:
- getAddressin interface- McastServiceMBean
 
 - 
setMcastBindAddresspublic void setMcastBindAddress(java.lang.String bindaddr) 
 - 
setBindpublic void setBind(java.lang.String bindaddr) 
 - 
getBindpublic java.lang.String getBind() - Specified by:
- getBindin interface- McastServiceMBean
 
 - 
setPortpublic void setPort(int port) 
 - 
setRecoveryCounterpublic void setRecoveryCounter(int recoveryCounter) 
 - 
getRecoveryCounterpublic int getRecoveryCounter() - Specified by:
- getRecoveryCounterin interface- McastServiceMBean
 
 - 
setRecoveryEnabledpublic void setRecoveryEnabled(boolean recoveryEnabled) 
 - 
getRecoveryEnabledpublic boolean getRecoveryEnabled() - Specified by:
- getRecoveryEnabledin interface- McastServiceMBean
 
 - 
setRecoverySleepTimepublic void setRecoverySleepTime(long recoverySleepTime) 
 - 
getRecoverySleepTimepublic long getRecoverySleepTime() - Specified by:
- getRecoverySleepTimein interface- McastServiceMBean
 
 - 
setLocalLoopbackDisabledpublic void setLocalLoopbackDisabled(boolean localLoopbackDisabled) 
 - 
getLocalLoopbackDisabledpublic boolean getLocalLoopbackDisabled() - Specified by:
- getLocalLoopbackDisabledin interface- McastServiceMBean
 
 - 
getPortpublic int getPort() - Specified by:
- getPortin interface- McastServiceMBean
 
 - 
setFrequencypublic void setFrequency(long time) 
 - 
getFrequencypublic long getFrequency() - Specified by:
- getFrequencyin interface- McastServiceMBean
 
 - 
setMcastDropTimepublic void setMcastDropTime(long time) 
 - 
setDropTimepublic void setDropTime(long time) 
 - 
getDropTimepublic long getDropTime() - Specified by:
- getDropTimein interface- McastServiceMBean
 
 - 
hasPropertyprotected 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
 
 - 
startpublic void start() throws java.lang.ExceptionStart broadcasting and listening to membership pings- Specified by:
- startin interface- MembershipService
- Throws:
- java.lang.Exception- if a IO error occurs
 
 - 
startpublic 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 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.
 
 - 
stoppublic void stop(int svc) Stop broadcasting and listening to membership pings- Specified by:
- stopin interface- MembershipService
- Parameters:
- svc- - level MBR_RX stops listening for members, level MBR_TX stops broad casting the server
 
 - 
getMembersByNamepublic java.lang.String[] getMembersByName() Return all the members by name- Specified by:
- getMembersByNamein interface- McastServiceMBean
- Specified by:
- getMembersByNamein interface- MembershipService
- Returns:
- all members by name
 
 - 
findMemberByNamepublic Member findMemberByName(java.lang.String name) Return the member by name- Specified by:
- findMemberByNamein interface- McastServiceMBean
- Specified by:
- findMemberByNamein interface- MembershipService
- Parameters:
- name- The member name
- Returns:
- the member
 
 - 
hasMemberspublic boolean hasMembers() has members?- Specified by:
- hasMembersin interface- McastServiceMBean
- Specified by:
- hasMembersin interface- MembershipService
- Returns:
- true if the the group contains members
 
 - 
getMemberpublic Member getMember(Member mbr) Description copied from interface:MembershipServiceRetrieve the specified member from the membership.- Specified by:
- getMemberin interface- MembershipService
- Parameters:
- mbr- The member to retrieve
- Returns:
- the member
 
 - 
getMemberspublic Member[] getMembers() - Specified by:
- getMembersin interface- MembershipService
- Returns:
- a list of all the members in the cluster.
 
 - 
setMembershipListenerpublic 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:
- setMembershipListenerin interface- MembershipService
- Parameters:
- listener- The listener
 
 - 
setMessageListenerpublic void setMessageListener(MessageListener listener) 
 - 
removeMessageListenerpublic void removeMessageListener() 
 - 
removeMembershipListenerpublic void removeMembershipListener() Remove the membership listener- Specified by:
- removeMembershipListenerin interface- MembershipService
 
 - 
memberAddedpublic void memberAdded(Member member) Description copied from interface:MembershipListenerA member was added to the group- Specified by:
- memberAddedin interface- MembershipListener
- Parameters:
- member- Member - the member that was added
 
 - 
memberDisappearedpublic void memberDisappeared(Member member) Callback from the impl when a new member has been received- Specified by:
- memberDisappearedin interface- MembershipListener
- Parameters:
- member- The member
- See Also:
- Member.SHUTDOWN_PAYLOAD
 
 - 
messageReceivedpublic void messageReceived(ChannelMessage msg) Description copied from interface:MessageListenerReceive a message from the IO components in the Channel stack- Specified by:
- messageReceivedin interface- MessageListener
- Parameters:
- msg- ChannelMessage
 
 - 
acceptpublic boolean accept(ChannelMessage msg) - Specified by:
- acceptin interface- MessageListener
 
 - 
broadcastpublic void broadcast(ChannelMessage message) throws ChannelException Description copied from interface:MembershipServiceBroadcasts a message to all members.- Specified by:
- broadcastin interface- MembershipService
- Parameters:
- message- The message to broadcast
- Throws:
- ChannelException- Message broadcast failed
 
 - 
getSoTimeoutpublic int getSoTimeout() - Specified by:
- getSoTimeoutin interface- McastServiceMBean
 
 - 
setSoTimeoutpublic void setSoTimeout(int mcastSoTimeout) 
 - 
getTtlpublic int getTtl() - Specified by:
- getTtlin interface- McastServiceMBean
 
 - 
getPayloadpublic byte[] getPayload() 
 - 
getDomainpublic byte[] getDomain() - Specified by:
- getDomainin interface- McastServiceMBean
 
 - 
setTtlpublic void setTtl(int mcastTTL) 
 - 
setPayloadpublic void setPayload(byte[] payload) Description copied from interface:MembershipServiceSet a payload to be broadcasted with each membership broadcast.- Specified by:
- setPayloadin interface- MembershipService
- Parameters:
- payload- byte[]
 
 - 
setDomainpublic void setDomain(byte[] domain) - Specified by:
- setDomainin interface- MembershipService
 
 - 
setDomainpublic void setDomain(java.lang.String domain) 
 - 
getChannelpublic Channel getChannel() Description copied from interface:MembershipServiceReturn the channel that is related to this MembershipService- Specified by:
- getChannelin interface- MembershipService
- Returns:
- Channel
 
 - 
setChannelpublic void setChannel(Channel channel) Description copied from interface:MembershipServiceSet the channel that is related to this MembershipService- Specified by:
- setChannelin interface- MembershipService
- Parameters:
- channel- The channel
 
 - 
setDefaultsprotected void setDefaults(java.util.Properties properties) 
 - 
mainpublic 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
 
 
- 
 
-