Class TwoPhaseCommitInterceptor
- java.lang.Object
-
- org.apache.catalina.tribes.group.ChannelInterceptorBase
-
- org.apache.catalina.tribes.group.interceptors.TwoPhaseCommitInterceptor
-
- All Implemented Interfaces:
ChannelInterceptor
,Heartbeat
,MembershipListener
public class TwoPhaseCommitInterceptor extends ChannelInterceptorBase
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TwoPhaseCommitInterceptor.MapEntry
-
Nested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptor
ChannelInterceptor.InterceptorEvent
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
deepclone
protected long
expire
protected java.util.HashMap<UniqueId,TwoPhaseCommitInterceptor.MapEntry>
messages
protected static StringManager
sm
-
Fields inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
optionFlag
-
-
Constructor Summary
Constructors Constructor Description TwoPhaseCommitInterceptor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
getDeepclone()
long
getExpire()
void
heartbeat()
Theheartbeat()
method gets invoked periodically to allow interceptors to clean up resources, time out object and perform actions that are unrelated to sending/receiving data.void
messageReceived(ChannelMessage msg)
themessageReceived
is invoked when a message is received.void
sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload)
ThesendMessage
method is called when a message is being sent to one more destinations.void
setDeepclone(boolean deepclone)
void
setExpire(long expire)
-
Methods inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
fireInterceptorEvent, getChannel, getLocalMember, getMember, getMembers, getNext, getOptionFlag, getPrevious, hasMembers, memberAdded, memberDisappeared, okToProcess, setChannel, setNext, setOptionFlag, setPrevious, start, stop
-
-
-
-
Field Detail
-
sm
protected static final StringManager sm
-
messages
protected final java.util.HashMap<UniqueId,TwoPhaseCommitInterceptor.MapEntry> messages
-
expire
protected long expire
-
deepclone
protected boolean deepclone
-
-
Method Detail
-
sendMessage
public void sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException
Description copied from interface:ChannelInterceptor
ThesendMessage
method is called when a message is being sent to one more destinations. The interceptor can modify any of the parameters and then pass on the message down the stack by invokinggetNext().sendMessage(destination,msg,payload)
Alternatively the interceptor can stop the message from being sent by not invokinggetNext().sendMessage(destination,msg,payload)
If the message is to be sent asynchronous the application can be notified of completion and errors by passing in an error handler attached to a payload object.
The ChannelMessage.getAddress contains Channel.getLocalMember, and can be overwritten to simulate a message sent from another node.- Specified by:
sendMessage
in interfaceChannelInterceptor
- Overrides:
sendMessage
in classChannelInterceptorBase
- Parameters:
destination
- Member[] - the destination for this messagemsg
- ChannelMessage - the message to be sentpayload
- InterceptorPayload - the payload, carrying an error handler and future useful data, can be null- Throws:
ChannelException
- if a serialization error happens.- See Also:
ErrorHandler
,InterceptorPayload
-
messageReceived
public void messageReceived(ChannelMessage msg)
Description copied from interface:ChannelInterceptor
themessageReceived
is invoked when a message is received.ChannelMessage.getAddress()
is the sender, or the reply-to address if it has been overwritten.- Specified by:
messageReceived
in interfaceChannelInterceptor
- Overrides:
messageReceived
in classChannelInterceptorBase
- Parameters:
msg
- ChannelMessage
-
getDeepclone
public boolean getDeepclone()
-
getExpire
public long getExpire()
-
setDeepclone
public void setDeepclone(boolean deepclone)
-
setExpire
public void setExpire(long expire)
-
heartbeat
public void heartbeat()
Description copied from interface:ChannelInterceptor
Theheartbeat()
method gets invoked periodically to allow interceptors to clean up resources, time out object and perform actions that are unrelated to sending/receiving data.- Specified by:
heartbeat
in interfaceChannelInterceptor
- Specified by:
heartbeat
in interfaceHeartbeat
- Overrides:
heartbeat
in classChannelInterceptorBase
-
-