Class FragmentationInterceptor
- java.lang.Object
- 
- org.apache.catalina.tribes.group.ChannelInterceptorBase
- 
- org.apache.catalina.tribes.group.interceptors.FragmentationInterceptor
 
 
- 
- All Implemented Interfaces:
- ChannelInterceptor,- FragmentationInterceptorMBean,- Heartbeat,- MembershipListener
 
 public class FragmentationInterceptor extends ChannelInterceptorBase implements FragmentationInterceptorMBean The fragmentation interceptor splits up large messages into smaller messages and assembles them on the other end. This is very useful when you don't want large messages hogging the sending sockets and smaller messages can make it through.
 Configuration Options
 FragmentationInterceptor.expire=<milliseconds> - how long do we keep the fragments in memory and wait for the rest to arrive default=60,000ms -> 60seconds This setting is useful to avoid OutOfMemoryErrors
 FragmentationInterceptor.maxSize=<max message size> - message size in bytes default=1024*100 (around a tenth of a MB)
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classFragmentationInterceptor.FragCollectionstatic classFragmentationInterceptor.FragKey- 
Nested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptorChannelInterceptor.InterceptorEvent
 
- 
 - 
Field SummaryFields Modifier and Type Field Description protected booleandeepcloneprotected java.util.HashMap<FragmentationInterceptor.FragKey,FragmentationInterceptor.FragCollection>fragpiecesprotected static StringManagersm- 
Fields inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBaseoptionFlag
 
- 
 - 
Constructor SummaryConstructors Constructor Description FragmentationInterceptor()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddefrag(ChannelMessage msg)voidfrag(Member[] destination, ChannelMessage msg, InterceptorPayload payload)longgetExpire()FragmentationInterceptor.FragCollectiongetFragCollection(FragmentationInterceptor.FragKey key, ChannelMessage msg)intgetMaxSize()voidheartbeat()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.voidmessageReceived(ChannelMessage msg)themessageReceivedis invoked when a message is received.voidremoveFragCollection(FragmentationInterceptor.FragKey key)voidsendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload)ThesendMessagemethod is called when a message is being sent to one more destinations.voidsetExpire(long expire)voidsetMaxSize(int maxSize)- 
Methods inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBasefireInterceptorEvent, getChannel, getLocalMember, getMember, getMembers, getNext, getOptionFlag, getPrevious, hasMembers, memberAdded, memberDisappeared, okToProcess, setChannel, setNext, setOptionFlag, setPrevious, start, stop
 
- 
 
- 
- 
- 
Field Detail- 
smprotected static final StringManager sm 
 - 
fragpiecesprotected final java.util.HashMap<FragmentationInterceptor.FragKey,FragmentationInterceptor.FragCollection> fragpieces 
 - 
deepcloneprotected final boolean deepclone - See Also:
- Constant Field Values
 
 
- 
 - 
Method Detail- 
sendMessagepublic void sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException Description copied from interface:ChannelInterceptorThesendMessagemethod 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:
- sendMessagein interface- ChannelInterceptor
- Overrides:
- sendMessagein class- ChannelInterceptorBase
- Parameters:
- destination- Member[] - the destination for this message
- msg- ChannelMessage - the message to be sent
- payload- 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
 
 - 
messageReceivedpublic void messageReceived(ChannelMessage msg) 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 interface- ChannelInterceptor
- Overrides:
- messageReceivedin class- ChannelInterceptorBase
- Parameters:
- msg- ChannelMessage
 
 - 
getFragCollectionpublic FragmentationInterceptor.FragCollection getFragCollection(FragmentationInterceptor.FragKey key, ChannelMessage msg) 
 - 
removeFragCollectionpublic void removeFragCollection(FragmentationInterceptor.FragKey key) 
 - 
defragpublic void defrag(ChannelMessage msg) 
 - 
fragpublic void frag(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException - Throws:
- ChannelException
 
 - 
heartbeatpublic void heartbeat() Description copied from interface:ChannelInterceptorTheheartbeat()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:
- heartbeatin interface- ChannelInterceptor
- Specified by:
- heartbeatin interface- Heartbeat
- Overrides:
- heartbeatin class- ChannelInterceptorBase
 
 - 
getMaxSizepublic int getMaxSize() - Specified by:
- getMaxSizein interface- FragmentationInterceptorMBean
 
 - 
getExpirepublic long getExpire() - Specified by:
- getExpirein interface- FragmentationInterceptorMBean
 
 - 
setMaxSizepublic void setMaxSize(int maxSize) - Specified by:
- setMaxSizein interface- FragmentationInterceptorMBean
 
 - 
setExpirepublic void setExpire(long expire) - Specified by:
- setExpirein interface- FragmentationInterceptorMBean
 
 
- 
 
-