Class MessageDispatchInterceptor

    • Field Detail

      • maxQueueSize

        protected long maxQueueSize
      • run

        protected volatile boolean run
      • useDeepClone

        protected boolean useDeepClone
      • alwaysSend

        protected boolean alwaysSend
      • currentSize

        protected final java.util.concurrent.atomic.AtomicLong currentSize
      • executor

        protected java.util.concurrent.ExecutorService executor
      • maxThreads

        protected int maxThreads
      • maxSpareThreads

        protected int maxSpareThreads
      • keepAliveTime

        protected long keepAliveTime
    • Constructor Detail

      • MessageDispatchInterceptor

        public MessageDispatchInterceptor()
    • Method Detail

      • 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
      • startQueue

        public void startQueue()
      • stopQueue

        public void stopQueue()
      • setMaxQueueSize

        public void setMaxQueueSize​(long maxQueueSize)
      • setUseDeepClone

        public void setUseDeepClone​(boolean useDeepClone)
      • getUseDeepClone

        public boolean getUseDeepClone()
      • addAndGetCurrentSize

        public long addAndGetCurrentSize​(long inc)
      • setAndGetCurrentSize

        public long setAndGetCurrentSize​(long value)
      • setKeepAliveTime

        public void setKeepAliveTime​(long keepAliveTime)
      • setMaxSpareThreads

        public void setMaxSpareThreads​(int maxSpareThreads)
      • setMaxThreads

        public void setMaxThreads​(int maxThreads)
      • start

        public void start​(int svc)
                   throws ChannelException
        Description copied from class: ChannelInterceptorBase
        Starts up the channel. This can be called multiple times for individual services to start The svc parameter can be the logical or value of any constants
        Specified by:
        start in interface ChannelInterceptor
        Overrides:
        start in class ChannelInterceptorBase
        Parameters:
        svc - int value of
        DEFAULT - will start all services
        MBR_RX_SEQ - starts the membership receiver
        MBR_TX_SEQ - starts the membership broadcaster
        SND_TX_SEQ - starts the replication transmitter
        SND_RX_SEQ - starts the replication receiver
        Throws:
        ChannelException - if a startup error occurs or the service is already started.
        See Also:
        Channel
      • stop

        public void stop​(int svc)
                  throws ChannelException
        Description copied from class: ChannelInterceptorBase
        Shuts down the channel. This can be called multiple times for individual services to shutdown The svc parameter can be the logical or value of any constants
        Specified by:
        stop in interface ChannelInterceptor
        Overrides:
        stop in class ChannelInterceptorBase
        Parameters:
        svc - int value of
        DEFAULT - will shutdown all services
        MBR_RX_SEQ - stops the membership receiver
        MBR_TX_SEQ - stops the membership broadcaster
        SND_TX_SEQ - stops the replication transmitter
        SND_RX_SEQ - stops the replication receiver
        Throws:
        ChannelException - if a startup error occurs or the service is already started.
        See Also:
        Channel
      • getPoolSize

        public int getPoolSize()
        Return the current number of threads that are managed by the pool.
        Specified by:
        getPoolSize in interface MessageDispatchInterceptorMBean
        Returns:
        the current number of threads that are managed by the pool
      • getActiveCount

        public int getActiveCount()
        Return the current number of threads that are in use.
        Specified by:
        getActiveCount in interface MessageDispatchInterceptorMBean
        Returns:
        the current number of threads that are in use
      • getTaskCount

        public long getTaskCount()
        Return the total number of tasks that have ever been scheduled for execution by the pool.
        Specified by:
        getTaskCount in interface MessageDispatchInterceptorMBean
        Returns:
        the total number of tasks that have ever been scheduled for execution by the pool
      • getCompletedTaskCount

        public long getCompletedTaskCount()
        Return the total number of tasks that have completed execution by the pool.
        Specified by:
        getCompletedTaskCount in interface MessageDispatchInterceptorMBean
        Returns:
        the total number of tasks that have completed execution by the pool