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
Interceptor that measures and reports message throughput statistics.
-
Nested Class Summary
Nested classes/interfaces inherited from interface ChannelInterceptor
ChannelInterceptor.InterceptorEvent -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final StringManagerThe string manager for this package.Fields inherited from class ChannelInterceptorBase
optionFlag -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintReturns the reporting interval in milliseconds.doubleReturns the last message count.doubleReturns the application-layer transmit rate in MB/s.doublegetMbRx()Returns the receive rate in MB/s.doublegetMbTx()Returns the transmit rate in MB/s.Returns the received message count.Returns the transmitted message count.Returns the transmit error count.longReturns the receive start timestamp.doubleReturns the last transmit time.longReturns the transmit start timestamp.voidThemessageReceivedis invoked when a message is received.voidreport(double timeTx) Reports throughput statistics.voidsendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) ThesendMessagemethod is called when a message is being sent to one more destinations.voidsetInterval(int interval) Sets the reporting interval in milliseconds.Methods inherited from class ChannelInterceptorBase
fireInterceptorEvent, getChannel, getLocalMember, getMember, getMembers, getNext, getOptionFlag, getPrevious, hasMembers, heartbeat, memberAdded, memberDisappeared, okToProcess, setChannel, setNext, setOptionFlag, setPrevious, start, stopMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ThroughputInterceptorMBean
getOptionFlag
-
Field Details
-
sm
The string manager for this package.
-
-
Constructor Details
-
ThroughputInterceptor
public ThroughputInterceptor()Constructs a new ThroughputInterceptor.
-
-
Method Details
-
sendMessage
public 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 invoking
getNext().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 interfaceChannelInterceptor- Overrides:
sendMessagein 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:
-
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
-
report
public void report(double timeTx) Description copied from interface:ThroughputInterceptorMBeanReports throughput statistics.- Specified by:
reportin interfaceThroughputInterceptorMBean- Parameters:
timeTx- the transmit time
-
setInterval
public void setInterval(int interval) Description copied from interface:ThroughputInterceptorMBeanSets the reporting interval in milliseconds.- Specified by:
setIntervalin interfaceThroughputInterceptorMBean- Parameters:
interval- the interval
-
getInterval
public int getInterval()Description copied from interface:ThroughputInterceptorMBeanReturns the reporting interval in milliseconds.- Specified by:
getIntervalin interfaceThroughputInterceptorMBean- Returns:
- the interval
-
getLastCnt
public double getLastCnt()Description copied from interface:ThroughputInterceptorMBeanReturns the last message count.- Specified by:
getLastCntin interfaceThroughputInterceptorMBean- Returns:
- the last count
-
getMbAppTx
public double getMbAppTx()Description copied from interface:ThroughputInterceptorMBeanReturns the application-layer transmit rate in MB/s.- Specified by:
getMbAppTxin interfaceThroughputInterceptorMBean- Returns:
- the MB/s rate
-
getMbRx
public double getMbRx()Description copied from interface:ThroughputInterceptorMBeanReturns the receive rate in MB/s.- Specified by:
getMbRxin interfaceThroughputInterceptorMBean- Returns:
- the MB/s rate
-
getMbTx
public double getMbTx()Description copied from interface:ThroughputInterceptorMBeanReturns the transmit rate in MB/s.- Specified by:
getMbTxin interfaceThroughputInterceptorMBean- Returns:
- the MB/s rate
-
getMsgRxCnt
Description copied from interface:ThroughputInterceptorMBeanReturns the received message count.- Specified by:
getMsgRxCntin interfaceThroughputInterceptorMBean- Returns:
- the count
-
getMsgTxCnt
Description copied from interface:ThroughputInterceptorMBeanReturns the transmitted message count.- Specified by:
getMsgTxCntin interfaceThroughputInterceptorMBean- Returns:
- the count
-
getMsgTxErr
Description copied from interface:ThroughputInterceptorMBeanReturns the transmit error count.- Specified by:
getMsgTxErrin interfaceThroughputInterceptorMBean- Returns:
- the count
-
getRxStart
public long getRxStart()Description copied from interface:ThroughputInterceptorMBeanReturns the receive start timestamp.- Specified by:
getRxStartin interfaceThroughputInterceptorMBean- Returns:
- the timestamp
-
getTimeTx
public double getTimeTx()Description copied from interface:ThroughputInterceptorMBeanReturns the last transmit time.- Specified by:
getTimeTxin interfaceThroughputInterceptorMBean- Returns:
- the time
-
getTxStart
public long getTxStart()Description copied from interface:ThroughputInterceptorMBeanReturns the transmit start timestamp.- Specified by:
getTxStartin interfaceThroughputInterceptorMBean- Returns:
- the timestamp
-