Apache Tomcat 6.0.51

## org.apache.catalina.tribes.group
Class ChannelCoordinator

    java.lang.Object
      org.apache.catalina.tribes.group.ChannelInterceptorBase
          org.apache.catalina.tribes.group.ChannelCoordinator

All Implemented Interfaces:
  ChannelInterceptor, Heartbeat, MembershipListener, MessageListener

    public class ChannelCoordinator

extends ChannelInterceptorBase
implements MessageListener

The channel coordinator object coordinates the membership service, the sender and the receiver. This is the last interceptor in the chain.

Author:
  Filip Hanik

Nested Class Summary

Nested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptor
`ChannelInterceptor.InterceptorEvent`

Field Summary
`protected int` | `optionFlag`

Fields inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
`log`

Constructor Summary
`ChannelCoordinator()`
`ChannelCoordinator(ChannelReceiver receiver, ChannelSender sender, MembershipService service)`

Method Summary
`ChannelReceiver` | `getClusterReceiver()`
`ChannelSender` | `getClusterSender()`
`Member` | `getLocalMember(boolean incAlive)` Return the member that represents this node.
`Member` | `getMember(Member mbr)` Intercepts the code>Channel.getMember(Member) method
`Member[]` | `getMembers()` Get all current cluster members
`MembershipService` | `getMembershipService()`
`int` | `getOptionFlag()` An interceptor can react to a message based on a set bit on the message options.
`boolean` | `hasMembers()` has members
`void` | `heartbeat()` The `heartbeat()` method gets invoked periodically to allow interceptors to clean up resources, time out object and perform actions that are unrelated to sending/receiving data.
`protected void` | `internalStart(int svc)` Starts up the channel.
`protected void` | `internalStop(int svc)` Shuts down the channel.
`void` | `memberAdded(Member member)` A member was added to the group
`void` | `memberDisappeared(Member member)` A member was removed from the group If the member left voluntarily, the Member.getCommand will contain the Member.SHUTDOWN_PAYLOAD data
`void` | `messageReceived(ChannelMessage msg)` the `messageReceived` is invoked when a message is received.
`void` | `sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload)` Send a message to one or more members in the cluster
`void` | `setClusterReceiver(ChannelReceiver clusterReceiver)`
`void` | `setClusterSender(ChannelSender clusterSender)`
`void` | `setMembershipService(MembershipService membershipService)`
`void` | `setOptionFlag(int flag)` Sets the option flag
`void` | `start(int svc)` Starts up the channel.
`void` | `stop(int svc)` Shuts down the channel.

Methods inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
`accept, fireInterceptorEvent, getNext, getPrevious, okToProcess, setNext, setPrevious`

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.MessageListener
`accept, equals, hashCode`

Field Detail

### optionFlag

    protected int optionFlag

Constructor Detail

### ChannelCoordinator

    public ChannelCoordinator()

### ChannelCoordinator

    public ChannelCoordinator(ChannelReceiver receiver,
                              ChannelSender sender,
                              MembershipService service)

Method Detail

### getOptionFlag

    public int getOptionFlag()

  Description copied from interface: `ChannelInterceptor`
  An interceptor can react to a message based on a set bit on the message options.
  When a message is sent, the options can be retrieved from ChannelMessage.getOptions() and if the bit is set, this interceptor will react to it.
  A simple evaluation if an interceptor should react to the message would be:
  `boolean react = (getOptionFlag() == (getOptionFlag() & ChannelMessage.getOptions()));`
  The default option is 0, meaning there is no way for the application to trigger the interceptor. The interceptor itself will decide.

  Specified by:
    `getOptionFlag` in interface `ChannelInterceptor`
  Overrides:
    `getOptionFlag` in class `ChannelInterceptorBase`
  Returns:
    int
  See Also:
    `ChannelMessage.getOptions()`

### setOptionFlag

    public void setOptionFlag(int flag)

  Description copied from interface: `ChannelInterceptor`
  Sets the option flag

  Specified by:
    `setOptionFlag` in interface `ChannelInterceptor`
  Overrides:
    `setOptionFlag` in class `ChannelInterceptorBase`
  Parameters:
    `flag` - int
  See Also:
    `ChannelInterceptor.getOptionFlag()`

### sendMessage

    public void sendMessage(Member[] destination,
                            ChannelMessage msg,
                            InterceptorPayload payload)
                     throws ChannelException

  Send a message to one or more members in the cluster

  Specified by:
    `sendMessage` in interface `ChannelInterceptor`
  Overrides:
    `sendMessage` in class `ChannelInterceptorBase`
  Parameters:
    `destination` - Member[] - the destinations, null or zero length means all
    `msg` - ClusterMessage - the message to send
    `payload` - InterceptorPayload - the payload, carrying an error handler and future useful data, can be null
  Throws:
    `ChannelException`
  See Also:
    `ErrorHandler`, `InterceptorPayload`

### start

    public void start(int svc)
               throws ChannelException

  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

  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`

### internalStart

    protected void internalStart(int svc)
                          throws ChannelException

  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

  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.

### internalStop

    protected void internalStop(int svc)
                         throws ChannelException

  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

  Parameters:
    `svc` - int value of
    DEFAULT - will shutdown 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.

### memberAdded

    public void memberAdded(Member member)

  Description copied from interface: `MembershipListener`
  A member was added to the group

  Specified by:
    `memberAdded` in interface `MembershipListener`
  Overrides:
    `memberAdded` in class `ChannelInterceptorBase`
  Parameters:
    `member` - Member - the member that was added

### memberDisappeared

    public void memberDisappeared(Member member)

  Description copied from interface: `MembershipListener`
  A member was removed from the group
  If the member left voluntarily, the Member.getCommand will contain the Member.SHUTDOWN_PAYLOAD data

  Specified by:
    `memberDisappeared` in interface `MembershipListener`
  Overrides:
    `memberDisappeared` in class `ChannelInterceptorBase`
  Parameters:
    `member` - Member
  See Also:
    `Member.SHUTDOWN_PAYLOAD`

### 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`
  Specified by:
    `messageReceived` in interface `MessageListener`
  Overrides:
    `messageReceived` in class `ChannelInterceptorBase`
  Parameters:
    `msg` - ChannelMessage

### getClusterReceiver

    public ChannelReceiver getClusterReceiver()

### getClusterSender

    public ChannelSender getClusterSender()

### getMembershipService

    public MembershipService getMembershipService()

### setClusterReceiver

    public void setClusterReceiver(ChannelReceiver clusterReceiver)

### setClusterSender

    public void setClusterSender(ChannelSender clusterSender)

### setMembershipService

    public void setMembershipService(MembershipService membershipService)

### heartbeat

    public void heartbeat()

  Description copied from interface: `ChannelInterceptor`
  The `heartbeat()` 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:
    `heartbeat` in interface `ChannelInterceptor`
  Specified by:
    `heartbeat` in interface `Heartbeat`
  Overrides:
    `heartbeat` in class `ChannelInterceptorBase`

### hasMembers

    public boolean hasMembers()

  has members

  Specified by:
    `hasMembers` in interface `ChannelInterceptor`
  Overrides:
    `hasMembers` in class `ChannelInterceptorBase`
  Returns:
    boolean - if the channel has members in its membership group
  See Also:
    `Channel.hasMembers()`

### getMembers

    public Member[] getMembers()

  Get all current cluster members

  Specified by:
    `getMembers` in interface `ChannelInterceptor`
  Overrides:
    `getMembers` in class `ChannelInterceptorBase`
  Returns:
    all members or empty array
  See Also:
    `Channel.getMembers()`

### getMember

    public Member getMember(Member mbr)

  Description copied from interface: `ChannelInterceptor`
  Intercepts the code>Channel.getMember(Member) method

  Specified by:
    `getMember` in interface `ChannelInterceptor`
  Overrides:
    `getMember` in class `ChannelInterceptorBase`
  Parameters:
    `mbr` - Member
  Returns:
    Member
  See Also:
    `Channel.getMember(Member)`

### getLocalMember

    public Member getLocalMember(boolean incAlive)

  Return the member that represents this node.

  Specified by:
    `getLocalMember` in interface `ChannelInterceptor`
  Overrides:
    `getLocalMember` in class `ChannelInterceptorBase`
  Parameters:
    `incAlive` - boolean
  Returns:
    Member
  See Also:
    `Channel.getLocalMember(boolean)`

Apache Tomcat 6.0.51

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.