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
Modifier and TypeFieldDescriptionprotected byte[]
protected McastServiceImpl
A handle to the actual low level implementationprotected MemberImpl
The local memberprotected MessageListener
A message listener delegate for broadcastsprotected byte[]
protected static final StringManager
The 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
-
Method Summary
Modifier and TypeMethodDescriptionboolean
accept
(ChannelMessage msg) Allows skipping processing of the specified message.void
broadcast
(ChannelMessage message) Broadcasts a message to all members.getBind()
byte[]
long
long
boolean
getLocalMember
(boolean alive) Get the local member.Get the MembershipProviderbyte[]
int
getPort()
int
boolean
long
int
int
getTtl()
protected void
hasProperty
(Properties properties, String name) Check if a required property is available.static void
Simple test programvoid
Receive a message from the IO components in the Channel stackvoid
void
setAddress
(String addr) void
protected void
setDefaults
(Properties properties) void
setDomain
(byte[] domain) Set the associated domain.void
void
setDropTime
(long time) void
setFrequency
(long time) void
setLocalLoopbackDisabled
(boolean localLoopbackDisabled) void
setLocalMemberProperties
(String listenHost, int listenPort, int securePort, int udpPort) Sets the local member properties for broadcasting.void
setMcastBindAddress
(String bindaddr) void
setMcastDropTime
(long time) void
setMessageListener
(MessageListener listener) void
setPayload
(byte[] payload) Set a payload to be broadcasted with each membership broadcast.void
setPort
(int port) void
setProperties
(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
(int level) Starts the membership service.void
stop
(int svc) Stop broadcasting and listening to membership pingsMethods 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 Details
-
sm
The string manager for this package. -
impl
A handle to the actual low level implementation -
msglistener
A message listener delegate for broadcasts -
localMember
The local member -
payload
protected byte[] payload -
domain
protected byte[] domain
-
-
Constructor Details
-
McastService
public McastService()Create a membership service.
-
-
Method Details
-
setProperties
Sets the properties for the membership service.- Specified by:
setProperties
in interfaceMembershipService
- Overrides:
setProperties
in 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:
IllegalArgumentException
- if a property is missing.
-
getLocalMemberName
- Specified by:
getLocalMemberName
in interfaceMcastServiceMBean
- Returns:
- the local member name
-
getLocalMember
Description copied from interface:MembershipService
Get the local member.- Specified by:
getLocalMember
in interfaceMembershipService
- Parameters:
alive
-true
to set the alive time on the local member- Returns:
- the member object that defines this member
-
setLocalMemberProperties
public void setLocalMemberProperties(String listenHost, int listenPort, int securePort, int udpPort) Description copied from interface:MembershipService
Sets the local member properties for broadcasting.- Specified by:
setLocalMemberProperties
in interfaceMembershipService
- Parameters:
listenHost
- Listen to hostlistenPort
- Listen to portsecurePort
- Use a secure portudpPort
- Use UDP
-
setAddress
-
getAddress
- Specified by:
getAddress
in interfaceMcastServiceMBean
-
setMcastBindAddress
-
setBind
-
getBind
- Specified by:
getBind
in interfaceMcastServiceMBean
-
setPort
public void setPort(int port) -
setRecoveryCounter
public void setRecoveryCounter(int recoveryCounter) -
getRecoveryCounter
public int getRecoveryCounter()- Specified by:
getRecoveryCounter
in interfaceMcastServiceMBean
-
setRecoveryEnabled
public void setRecoveryEnabled(boolean recoveryEnabled) -
getRecoveryEnabled
public boolean getRecoveryEnabled()- Specified by:
getRecoveryEnabled
in interfaceMcastServiceMBean
-
setRecoverySleepTime
public void setRecoverySleepTime(long recoverySleepTime) -
getRecoverySleepTime
public long getRecoverySleepTime()- Specified by:
getRecoverySleepTime
in interfaceMcastServiceMBean
-
setLocalLoopbackDisabled
public void setLocalLoopbackDisabled(boolean localLoopbackDisabled) -
getLocalLoopbackDisabled
public boolean getLocalLoopbackDisabled()- Specified by:
getLocalLoopbackDisabled
in interfaceMcastServiceMBean
-
getPort
public int getPort()- Specified by:
getPort
in interfaceMcastServiceMBean
-
setFrequency
public void setFrequency(long time) -
getFrequency
public long getFrequency()- Specified by:
getFrequency
in interfaceMcastServiceMBean
-
setMcastDropTime
public void setMcastDropTime(long time) -
setDropTime
public void setDropTime(long time) -
getDropTime
public long getDropTime()- Specified by:
getDropTime
in interfaceMcastServiceMBean
-
hasProperty
Check if a required property is available.- Parameters:
properties
- The set of propertiesname
- The property to check for
-
start
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 interfaceMembershipService
- Parameters:
level
- - level MBR_RX starts listening for members, level MBR_TX starts broad casting the server- Throws:
Exception
- if the service fails to start.IllegalArgumentException
- if the level is incorrect.
-
stop
public void stop(int svc) Stop broadcasting and listening to membership pings- Specified by:
stop
in interfaceMembershipService
- Parameters:
svc
- - level MBR_RX stops listening for members, level MBR_TX stops broad casting the server
-
setMessageListener
-
removeMessageListener
public void removeMessageListener() -
messageReceived
Description copied from interface:MessageListener
Receive a message from the IO components in the Channel stack- Specified by:
messageReceived
in interfaceMessageListener
- Parameters:
msg
- the message
-
accept
Description copied from interface:MessageListener
Allows skipping processing of the specified message.- Specified by:
accept
in interfaceMessageListener
- Parameters:
msg
- the message- Returns:
true
if the message will be processed
-
broadcast
Description copied from interface:MembershipService
Broadcasts a message to all members.- Specified by:
broadcast
in interfaceMembershipService
- Overrides:
broadcast
in classMembershipServiceBase
- Parameters:
message
- The message to broadcast- Throws:
ChannelException
- Message broadcast failed
-
getSoTimeout
public int getSoTimeout()- Specified by:
getSoTimeout
in interfaceMcastServiceMBean
-
setSoTimeout
public void setSoTimeout(int mcastSoTimeout) -
getTtl
public int getTtl()- Specified by:
getTtl
in interfaceMcastServiceMBean
-
getPayload
public byte[] getPayload() -
getDomain
public byte[] getDomain()- Specified by:
getDomain
in interfaceMcastServiceMBean
-
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 interfaceMembershipService
- Parameters:
payload
- byte[]
-
setDomain
public void setDomain(byte[] domain) Description copied from interface:MembershipService
Set the associated domain.- Specified by:
setDomain
in interfaceMembershipService
- Parameters:
domain
- the domain
-
setDomain
-
getMembershipProvider
Description copied from interface:MembershipService
Get the MembershipProvider- Specified by:
getMembershipProvider
in interfaceMembershipService
- Returns:
- MembershipProvider
-
setDefaults
-
main
Simple test program- Parameters:
args
- Command-line arguments- Throws:
Exception
- If an error occurs
-