Class ThroughputInterceptor
- java.lang.Object
-
- org.apache.catalina.tribes.group.ChannelInterceptorBase
-
- org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor
-
- All Implemented Interfaces:
ChannelInterceptor
,ThroughputInterceptorMBean
,Heartbeat
,MembershipListener
public class ThroughputInterceptor extends ChannelInterceptorBase implements ThroughputInterceptorMBean
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptor
ChannelInterceptor.InterceptorEvent
-
-
Field Summary
Fields Modifier and Type Field Description protected static StringManager
sm
-
Fields inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
optionFlag
-
-
Constructor Summary
Constructors Constructor Description ThroughputInterceptor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getInterval()
double
getLastCnt()
double
getMbAppTx()
double
getMbRx()
double
getMbTx()
java.util.concurrent.atomic.AtomicLong
getMsgRxCnt()
java.util.concurrent.atomic.AtomicLong
getMsgTxCnt()
java.util.concurrent.atomic.AtomicLong
getMsgTxErr()
long
getRxStart()
double
getTimeTx()
long
getTxStart()
void
messageReceived(ChannelMessage msg)
themessageReceived
is invoked when a message is received.void
report(double timeTx)
void
sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload)
ThesendMessage
method is called when a message is being sent to one more destinations.void
setInterval(int interval)
-
Methods inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
fireInterceptorEvent, getChannel, getLocalMember, getMember, getMembers, getNext, getOptionFlag, getPrevious, hasMembers, heartbeat, memberAdded, memberDisappeared, okToProcess, setChannel, setNext, setOptionFlag, setPrevious, start, stop
-
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.group.interceptors.ThroughputInterceptorMBean
getOptionFlag
-
-
-
-
Field Detail
-
sm
protected static final StringManager sm
-
-
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
-
report
public void report(double timeTx)
- Specified by:
report
in interfaceThroughputInterceptorMBean
-
setInterval
public void setInterval(int interval)
- Specified by:
setInterval
in interfaceThroughputInterceptorMBean
-
getInterval
public int getInterval()
- Specified by:
getInterval
in interfaceThroughputInterceptorMBean
-
getLastCnt
public double getLastCnt()
- Specified by:
getLastCnt
in interfaceThroughputInterceptorMBean
-
getMbAppTx
public double getMbAppTx()
- Specified by:
getMbAppTx
in interfaceThroughputInterceptorMBean
-
getMbRx
public double getMbRx()
- Specified by:
getMbRx
in interfaceThroughputInterceptorMBean
-
getMbTx
public double getMbTx()
- Specified by:
getMbTx
in interfaceThroughputInterceptorMBean
-
getMsgRxCnt
public java.util.concurrent.atomic.AtomicLong getMsgRxCnt()
- Specified by:
getMsgRxCnt
in interfaceThroughputInterceptorMBean
-
getMsgTxCnt
public java.util.concurrent.atomic.AtomicLong getMsgTxCnt()
- Specified by:
getMsgTxCnt
in interfaceThroughputInterceptorMBean
-
getMsgTxErr
public java.util.concurrent.atomic.AtomicLong getMsgTxErr()
- Specified by:
getMsgTxErr
in interfaceThroughputInterceptorMBean
-
getRxStart
public long getRxStart()
- Specified by:
getRxStart
in interfaceThroughputInterceptorMBean
-
getTimeTx
public double getTimeTx()
- Specified by:
getTimeTx
in interfaceThroughputInterceptorMBean
-
getTxStart
public long getTxStart()
- Specified by:
getTxStart
in interfaceThroughputInterceptorMBean
-
-