//create a channel Channel myChannel = new GroupChannel(); //create my listeners MyMessageListener msgListener = new MyMessageListener(); MyMemberListener mbrListener = new MyMemberListener(); //attach the listeners to the channel myChannel.addMembershipListener(mbrListener); myChannel.addChannelListener(msgListener); //start the channel myChannel.start(Channel.DEFAULT); //create a message to be sent, message must implement java.io.Serializable //for performance reasons you probably want them to implement java.io.Externalizable Serializable myMsg = new MyMessage(); //retrieve my current members Member group = myChannel.getMembers(); //send the message channel.send(group,myMsg,Channel.SEND_OPTIONS_DEFAULT);
Interfaces for the Application Developer
org.apache.catalina.tribes.ChannelMain component to interact with to send messages
org.apache.catalina.tribes.MembershipListenerListen to membership changes
org.apache.catalina.tribes.ChannelListenerListen to data messages
org.apache.catalina.tribes.MemberIdentifies a node, implementation specific, default is org.apache.catalina.tribes.membership.MemberImpl
Interfaces for the Tribes Component Developer
org.apache.catalina.tribes.ChannelMain component to that the application interacts with
org.apache.catalina.tribes.ChannelReceiverIO Component to receive messages over some network transport
org.apache.catalina.tribes.ChannelSenderIO Component to send messages over some network transport
org.apache.catalina.tribes.MembershipServiceIO Component that handles membership discovery and
org.apache.catalina.tribes.ChannelInterceptorinterceptors between the Channel and the IO layer
org.apache.catalina.tribes.ChannelMessageThe message that is sent through the interceptor stack down to the IO layer
org.apache.catalina.tribes.MemberIdentifies a node, implementation specific to the underlying IO logic
Interface Summary Interface Description ChannelChannel interface
A channel is a representation of a group of nodes all participating in some sort of communication with each other.
The channel is the main API class for Tribes, this is essentially the only class that an application needs to be aware of.
ChannelInterceptorA ChannelInterceptor is an interceptor that intercepts messages and membership messages in the channel stack. ChannelInterceptor.InterceptorEvent ChannelListenerAn interface to listens to incoming messages from a channel. ChannelMessageMessage that is passed through the interceptor stack after the data serialized in the Channel object and then passed down to the interceptor and eventually down to the ChannelSender component ChannelReceiverChannelReceiver Interface
ChannelReceiverinterface is the data receiver component at the bottom layer, the IO layer (for layers see the javadoc for the
ChannelSenderinterface is the data sender component at the bottom layer, the IO layer (for layers see the javadoc for the
The channel sender must support "silent" members, ie, be able to send a message to a member that is not in the membership, but is part of the destination parameter
ErrorHandlerclass is used when sending messages that are sent asynchronously and the application still needs to get confirmation when the message was sent successfully or when a message errored out.
HeartbeatCan be implemented by the ChannelListener and Membership listeners to receive heartbeat notifications from the Channel JmxChannel ManagedChannelChannel interface A managed channel interface gives you access to the components of the channels such as senders, receivers, interceptors etc for configurations purposes MemberThe Member interface, defines a member in the group. MembershipListenerThe MembershipListener interface is used as a callback to the membership service. MembershipProvider MembershipServiceMembershipService Interface
MembershipServiceinterface is the membership component at the bottom layer, the IO layer (for layers see the javadoc for the
MessageListenerThe listener to be registered with the ChannelReceiver, internal Tribes component.
Class Summary Class Description ByteMessageA byte message is not serialized and deserialized by the channel instead it is sent as a byte array
By default Tribes uses java serialization when it receives an object to be sent over the wire.
ChannelException.FaultyMemberRepresent a failure to a specific member when a message was sent to more than one member UniqueIdRepresents a globally unique Id.
Exception Summary Exception Description ChannelExceptionA channel exception is thrown when an internal error happens somewhere in the channel. RemoteProcessExceptionMessage thrown by a sender when USE_SYNC_ACK receives a FAIL_ACK_COMMAND.