Class StaticMembershipInterceptor
java.lang.Object
org.apache.catalina.tribes.group.ChannelInterceptorBase
org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor
- All Implemented Interfaces:
ChannelInterceptor, StaticMembershipInterceptorMBean, Heartbeat, MembershipListener
public class StaticMembershipInterceptor
extends ChannelInterceptorBase
implements StaticMembershipInterceptorMBean
Channel interceptor that manages static membership for a cluster.
-
Nested Class Summary
Nested classes/interfaces inherited from interface ChannelInterceptor
ChannelInterceptor.InterceptorEvent -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected MemberThe local member for this interceptor.protected static final byte[]Payload sent when a member starts.protected static final byte[]Payload sent when a member shuts down.List of static members configured for this interceptor.protected static final StringManagerString manager for this class.Fields inherited from class ChannelInterceptorBase
optionFlag -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddStaticMember(Member member) Adds a static member to the membership list.protected ChannelInterceptorReturns the first (bottom-most) interceptor in the chain.getLocalMember(boolean incAlive) Intercepts theChannel.getLocalMember(boolean)methodIntercepts theChannel.getMember(Member)methodMember[]Intercepts theChannel.getMembers()methodbooleanIntercepts theChannel.hasMembers()methodvoidThemessageReceivedis invoked when a message is received.voidremoveStaticMember(Member member) Removes a static member from the membership list.protected voidsendLocalMember(Member[] members) Sends a local member start message to the given members.protected voidsendMemberMessage(Member[] members, byte[] message) Sends a member message to the given members.protected voidsendShutdown(Member[] members) Sends a shutdown message to the given members.voidsetLocalMember(Member member) Sets the local member for this interceptor.voidstart(int svc) Starts up the channel.voidstop(int svc) Shuts down the channel.Methods inherited from class ChannelInterceptorBase
fireInterceptorEvent, getChannel, getNext, getOptionFlag, getPrevious, heartbeat, memberAdded, memberDisappeared, okToProcess, sendMessage, setChannel, setNext, setOptionFlag, setPreviousMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface StaticMembershipInterceptorMBean
getOptionFlag
-
Field Details
-
sm
String manager for this class. -
MEMBER_START
protected static final byte[] MEMBER_STARTPayload sent when a member starts. -
MEMBER_STOP
protected static final byte[] MEMBER_STOPPayload sent when a member shuts down. -
members
-
localMember
The local member for this interceptor.
-
-
Constructor Details
-
StaticMembershipInterceptor
public StaticMembershipInterceptor()Default constructor.
-
-
Method Details
-
addStaticMember
Adds a static member to the membership list.- Parameters:
member- the member to add
-
removeStaticMember
Removes a static member from the membership list.- Parameters:
member- the member to remove
-
setLocalMember
Sets the local member for this interceptor.- Parameters:
member- the local member
-
messageReceived
Description copied from interface:ChannelInterceptorThemessageReceivedis invoked when a message is received.ChannelMessage.getAddress()is the sender, or the reply-to address if it has been overwritten.- Specified by:
messageReceivedin interfaceChannelInterceptor- Overrides:
messageReceivedin classChannelInterceptorBase- Parameters:
msg- ChannelMessage
-
hasMembers
public boolean hasMembers()Description copied from interface:ChannelInterceptorIntercepts theChannel.hasMembers()method- Specified by:
hasMembersin interfaceChannelInterceptor- Overrides:
hasMembersin classChannelInterceptorBase- Returns:
- boolean - if the channel has members in its membership group
- See Also:
-
getMembers
Description copied from interface:ChannelInterceptorIntercepts theChannel.getMembers()method- Specified by:
getMembersin interfaceChannelInterceptor- Overrides:
getMembersin classChannelInterceptorBase- Returns:
- the members
- See Also:
-
getMember
Description copied from interface:ChannelInterceptorIntercepts theChannel.getMember(Member)method- Specified by:
getMemberin interfaceChannelInterceptor- Overrides:
getMemberin classChannelInterceptorBase- Parameters:
mbr- Member- Returns:
- Member - the actual member information, including stay alive
- See Also:
-
getLocalMember
Description copied from interface:ChannelInterceptorIntercepts theChannel.getLocalMember(boolean)method- Specified by:
getLocalMemberin interfaceChannelInterceptor- Specified by:
getLocalMemberin interfaceStaticMembershipInterceptorMBean- Overrides:
getLocalMemberin classChannelInterceptorBase- Parameters:
incAlive- boolean- Returns:
- the member that represents this node
- See Also:
-
start
Starts up the channel. This can be called multiple times for individual services to start The svc parameter can be the logical or value of any constantsSends notifications upwards.
- Specified by:
startin interfaceChannelInterceptor- Overrides:
startin classChannelInterceptorBase- Parameters:
svc- one of:- Channel.DEFAULT - will start all services
- Channel.MBR_RX_SEQ - starts the membership receiver
- Channel.MBR_TX_SEQ - starts the membership broadcaster
- Channel.SND_TX_SEQ - starts the replication transmitter
- Channel.SND_RX_SEQ - starts the replication receiver
- Throws:
ChannelException- if a startup error occurs or the service is already started.- See Also:
-
stop
Shuts down the channel. This can be called multiple times for individual services to shut down. The svc parameter can be the logical or value of any constantsSends local member shutdown.
- Specified by:
stopin interfaceChannelInterceptor- Overrides:
stopin classChannelInterceptorBase- Parameters:
svc- one of:- Channel.DEFAULT - will shut down all services
- Channel.MBR_RX_SEQ - stops the membership receiver
- Channel.MBR_TX_SEQ - stops the membership broadcaster
- Channel.SND_TX_SEQ - stops the replication transmitter
- Channel.SND_RX_SEQ - stops the replication receiver
- Throws:
ChannelException- if a startup error occurs or the service is already started.- See Also:
-
sendLocalMember
Sends a local member start message to the given members.- Parameters:
members- the members to notify
-
sendShutdown
Sends a shutdown message to the given members.- Parameters:
members- the members to notify
-
getfirstInterceptor
Returns the first (bottom-most) interceptor in the chain.- Returns:
- the first channel interceptor
-
sendMemberMessage
Sends a member message to the given members.- Parameters:
members- the members to send tomessage- the message payload- Throws:
ChannelException- if sending fails
-