ThroughputInterceptor (Apache Tomcat 9.0.120 API Documentation)
Description: declaration: package: org.apache.catalina.tribes.group.interceptors, class: ThroughputInterceptor

# 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

  Fields
  Modifier and Type
  Field
  Description
  `protected static final StringManager`
  `sm`
  The string manager for this package.

  ### Fields inherited from class ChannelInterceptorBase

  `optionFlag`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ThroughputInterceptor()`
  Constructs a new ThroughputInterceptor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getInterval()`
  Returns the reporting interval in milliseconds.
  `double`
  `getLastCnt()`
  Returns the last message count.
  `double`
  `getMbAppTx()`
  Returns the application-layer transmit rate in MB/s.
  `double`
  `getMbRx()`
  Returns the receive rate in MB/s.
  `double`
  `getMbTx()`
  Returns the transmit rate in MB/s.
  `AtomicLong`
  `getMsgRxCnt()`
  Returns the received message count.
  `AtomicLong`
  `getMsgTxCnt()`
  Returns the transmitted message count.
  `AtomicLong`
  `getMsgTxErr()`
  Returns the transmit error count.
  `long`
  `getRxStart()`
  Returns the receive start timestamp.
  `double`
  `getTimeTx()`
  Returns the last transmit time.
  `long`
  `getTxStart()`
  Returns the transmit start timestamp.
  `void`
  `messageReceived(ChannelMessage msg)`
  The `messageReceived` is invoked when a message is received.
  `void`
  `report(double timeTx)`
  Reports throughput statistics.
  `void`
  `sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload)`
  The `sendMessage` method is called when a message is being sent to one more destinations.
  `void`
  `setInterval(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, stop`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface ThroughputInterceptorMBean

  `getOptionFlag`

- ## Field Details

  - ### sm

    protected static final StringManager 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: `ChannelInterceptor`
    The `sendMessage` 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 invoking `getNext().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:
      `sendMessage` in interface `ChannelInterceptor`
    Overrides:
      `sendMessage` in 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`

  - ### messageReceived

    public void messageReceived(ChannelMessage msg)
    Description copied from interface: `ChannelInterceptor`
    The `messageReceived` 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 interface `ChannelInterceptor`
    Overrides:
      `messageReceived` in class `ChannelInterceptorBase`
    Parameters:
      `msg` - ChannelMessage

  - ### report

    public void report(double timeTx)
    Description copied from interface: `ThroughputInterceptorMBean`
    Reports throughput statistics.
    Specified by:
      `report` in interface `ThroughputInterceptorMBean`
    Parameters:
      `timeTx` - the transmit time

  - ### setInterval

    public void setInterval(int interval)
    Description copied from interface: `ThroughputInterceptorMBean`
    Sets the reporting interval in milliseconds.
    Specified by:
      `setInterval` in interface `ThroughputInterceptorMBean`
    Parameters:
      `interval` - the interval

  - ### getInterval

    public int getInterval()
    Description copied from interface: `ThroughputInterceptorMBean`
    Returns the reporting interval in milliseconds.
    Specified by:
      `getInterval` in interface `ThroughputInterceptorMBean`
    Returns:
      the interval

  - ### getLastCnt

    public double getLastCnt()
    Description copied from interface: `ThroughputInterceptorMBean`
    Returns the last message count.
    Specified by:
      `getLastCnt` in interface `ThroughputInterceptorMBean`
    Returns:
      the last count

  - ### getMbAppTx

    public double getMbAppTx()
    Description copied from interface: `ThroughputInterceptorMBean`
    Returns the application-layer transmit rate in MB/s.
    Specified by:
      `getMbAppTx` in interface `ThroughputInterceptorMBean`
    Returns:
      the MB/s rate

  - ### getMbRx

    public double getMbRx()
    Description copied from interface: `ThroughputInterceptorMBean`
    Returns the receive rate in MB/s.
    Specified by:
      `getMbRx` in interface `ThroughputInterceptorMBean`
    Returns:
      the MB/s rate

  - ### getMbTx

    public double getMbTx()
    Description copied from interface: `ThroughputInterceptorMBean`
    Returns the transmit rate in MB/s.
    Specified by:
      `getMbTx` in interface `ThroughputInterceptorMBean`
    Returns:
      the MB/s rate

  - ### getMsgRxCnt

    public AtomicLong getMsgRxCnt()
    Description copied from interface: `ThroughputInterceptorMBean`
    Returns the received message count.
    Specified by:
      `getMsgRxCnt` in interface `ThroughputInterceptorMBean`
    Returns:
      the count

  - ### getMsgTxCnt

    public AtomicLong getMsgTxCnt()
    Description copied from interface: `ThroughputInterceptorMBean`
    Returns the transmitted message count.
    Specified by:
      `getMsgTxCnt` in interface `ThroughputInterceptorMBean`
    Returns:
      the count

  - ### getMsgTxErr

    public AtomicLong getMsgTxErr()
    Description copied from interface: `ThroughputInterceptorMBean`
    Returns the transmit error count.
    Specified by:
      `getMsgTxErr` in interface `ThroughputInterceptorMBean`
    Returns:
      the count

  - ### getRxStart

    public long getRxStart()
    Description copied from interface: `ThroughputInterceptorMBean`
    Returns the receive start timestamp.
    Specified by:
      `getRxStart` in interface `ThroughputInterceptorMBean`
    Returns:
      the timestamp

  - ### getTimeTx

    public double getTimeTx()
    Description copied from interface: `ThroughputInterceptorMBean`
    Returns the last transmit time.
    Specified by:
      `getTimeTx` in interface `ThroughputInterceptorMBean`
    Returns:
      the time

  - ### getTxStart

    public long getTxStart()
    Description copied from interface: `ThroughputInterceptorMBean`
    Returns the transmit start timestamp.
    Specified by:
      `getTxStart` in interface `ThroughputInterceptorMBean`
    Returns:
      the timestamp