public class CoreGroupCommunicationService extends AsynchronousService<CoreGroupCommunicationService> implements GroupRpcDispatcher, GroupMembershipNotifier, GroupStateTransferService
GroupCommunicationService
interface and its direct subinterfaces based on a JGroups MuxRpcDispatcher
and a JChannel
.
TODO: look into decomposing this class: the RPC stuff, the membership stuff and the state transfer stuff could be handled by
separate components with this class used to integrate the pieces and expose a common API. The separate components could then
be separately testable.Modifier and Type | Class and Description |
---|---|
protected static class |
CoreGroupCommunicationService.GroupView
A simple data class containing the current view information as well as change information needed to notify the
GroupMembershipListeners about the event that led to this view.
|
static class |
CoreGroupCommunicationService.NoHandlerForRPC
Returned when an RPC call arrives for a service that isn't registered.
|
Modifier and Type | Field and Description |
---|---|
protected ClusteringImplLogger |
log
The cluster instance log category
|
Constructor and Description |
---|
CoreGroupCommunicationService(short scope) |
Modifier and Type | Method and Description |
---|---|
org.jboss.msc.service.ServiceBuilder<CoreGroupCommunicationService> |
build(org.jboss.msc.service.ServiceTarget target,
String name) |
void |
callAsynchMethodOnCluster(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
boolean excludeSelf)
Invoke an RPC call on all nodes of the partition/cluster without waiting for any responses.
|
void |
callAsynchMethodOnCluster(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
boolean excludeSelf,
boolean unordered)
Invoke an RPC call on all nodes of the partition/cluster without waiting for any responses.
|
void |
callAsyncMethodOnCoordinatorNode(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
boolean excludeSelf)
Calls method on Cluster coordinator node only.
|
void |
callAsyncMethodOnCoordinatorNode(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
boolean excludeSelf,
boolean unordered)
Calls method on Cluster coordinator node only.
|
void |
callAsyncMethodOnNode(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
ClusterNode targetNode)
Calls method on target node only.
|
void |
callAsyncMethodOnNode(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
ClusterNode targetNode,
boolean unordered)
Calls method on target node only.
|
<T> List<T> |
callMethodOnCluster(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
boolean excludeSelf)
Invoke an RPC call on all nodes of the partition/cluster and return their response values as a list.
|
<T> List<T> |
callMethodOnCluster(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
boolean excludeSelf,
ResponseFilter filter)
Invoke a synchronous RPC call on all nodes of the partition/cluster and return their response values as a list.
|
<T> List<T> |
callMethodOnCluster(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
boolean excludeSelf,
ResponseFilter filter,
long methodTimeout,
boolean unordered)
Invoke an RPC call on all nodes of the partition/cluster and return their response values as a list.
|
<T> T |
callMethodOnCoordinatorNode(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
boolean excludeSelf)
Calls method on Cluster coordinator node only.
|
<T> T |
callMethodOnCoordinatorNode(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
boolean excludeSelf,
long methodTimeout,
boolean unordered)
Calls method on Cluster coordinator node only.
|
<T> T |
callMethodOnNode(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
ClusterNode targetNode)
Calls method on target node only.
|
<T> T |
callMethodOnNode(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
long methodTimeout,
ClusterNode targetNode)
Calls method on target node only.
|
<T> T |
callMethodOnNode(String serviceName,
String methodName,
Object[] args,
Class<?>[] types,
long methodTimeout,
ClusterNode targetNode,
boolean unordered)
Calls method synchronously on target node only.
|
void |
create() |
protected org.jgroups.Channel |
createChannel() |
protected void |
createService() |
void |
destroy() |
protected void |
destroyService() |
boolean |
getAllowSynchronousMembershipNotifications() |
protected org.jgroups.Channel |
getChannel() |
ChannelFactory |
getChannelFactory() |
String |
getChannelStackName() |
ClusterNode |
getClusterNode()
Gets the object that represents this node in the current group.
|
List<ClusterNode> |
getClusterNodes()
Gets the member nodes that comprise the current group membership.
|
List<String> |
getCurrentView() |
long |
getCurrentViewId()
Identifier for the current group topology.
|
String |
getGroupName()
The name of the group with which communication occurs.
|
String |
getJGroupsVersion() |
int |
getMaxHistoryLength() |
long |
getMethodCallTimeout()
Gets the default period, in ms, that the various
callMethodOnXXX methods that don't specify a
methodTimeout parameter will wait for a response. |
String |
getNodeName()
Return the name of this node in the current group.
|
static org.jboss.msc.service.ServiceName |
getServiceName(String name) |
Future<SerializableStateTransferResult> |
getServiceState(String serviceName)
Gets the current service state from an existing member of the group.
|
Future<SerializableStateTransferResult> |
getServiceState(String serviceName,
ClassLoader classloader)
Gets the current service state from an existing member of the group, using the given classloader to deserialize it.
|
Future<StreamStateTransferResult> |
getServiceStateAsStream(String serviceName)
Gets an input stream from which can be read the current service state from an existing member of the group.
|
org.jboss.as.clustering.impl.CoreGroupCommunicationService.State |
getState() |
long |
getStateTransferTimeout() |
Executor |
getThreadPool() |
CoreGroupCommunicationService |
getValue() |
boolean |
isConsistentWith(GroupCommunicationService other)
Gets whether this GroupCommunicationService is logically consistent with another service; e.g.
|
boolean |
isCoordinator()
Indicates whether this node is the group coordinator.
|
protected void |
logHistory(String pattern,
Object... args) |
void |
registerGroupMembershipListener(GroupMembershipListener listener)
Subscribes to receive
GroupMembershipListener events. |
protected void |
registerGroupMembershipListener(GroupMembershipListener listener,
boolean sync) |
void |
registerRPCHandler(String objName,
Object subscriber)
Register an object upon which RPCs associated with the given serviceName will be invoked.
|
void |
registerRPCHandler(String serviceName,
Object handler,
ClassLoader classLoader)
|
void |
registerRPCHandler(String objName,
Object subscriber,
org.jboss.marshalling.ClassResolver resolver)
Register an object upon which RPCs associated with the given serviceName will be invoked.
|
void |
registerStateTransferProvider(String serviceName,
StateTransferProvider provider)
Registers the object that can provide state for the service when newly joining group members request it.
|
void |
setAllowSynchronousMembershipNotifications(boolean allowSync)
Sets whether this partition will synchronously notify any HAPartition.HAMembershipListener of membership changes using
the calling thread from the underlying group communications layer (e.g.
|
void |
setChannel(org.jgroups.Channel channel) |
void |
setChannelFactory(ChannelFactory factory) |
void |
setChannelStackName(String stackName) |
void |
setGroupName(String groupName) |
void |
setMaxHistoryLength(int maxHistoryLength) |
void |
setMethodCallTimeout(long timeout) |
void |
setStateTransferTimeout(long timeout) |
void |
setThreadPool(Executor threadPool) |
String |
showHistory() |
String |
showHistoryAsXML() |
void |
start() |
void |
start(org.jboss.msc.service.StartContext context) |
protected void |
startService() |
void |
stop() |
void |
stop(org.jboss.msc.service.StopContext context) |
protected void |
stopService() |
void |
unregisterGroupMembershipListener(GroupMembershipListener listener)
Unsubscribes from receiving
GroupMembershipListener events. |
protected void |
unregisterGroupMembershipListener(GroupMembershipListener listener,
boolean sync) |
void |
unregisterRPCHandler(String objName,
Object subscriber)
Unregister the service from the partition
|
void |
unregisterStateTransferProvider(String serviceName)
Unregisters the object that can provide state for the service.
|
protected ClusteringImplLogger log
public static org.jboss.msc.service.ServiceName getServiceName(String name)
public org.jboss.msc.service.ServiceBuilder<CoreGroupCommunicationService> build(org.jboss.msc.service.ServiceTarget target, String name)
public CoreGroupCommunicationService getValue()
getValue
in interface org.jboss.msc.value.Value<CoreGroupCommunicationService>
Value.getValue()
public void start(org.jboss.msc.service.StartContext context) throws org.jboss.msc.service.StartException
start
in interface org.jboss.msc.service.Service<CoreGroupCommunicationService>
start
in class AsynchronousService<CoreGroupCommunicationService>
org.jboss.msc.service.StartException
Service.start(org.jboss.msc.service.StartContext)
public void stop(org.jboss.msc.service.StopContext context)
stop
in interface org.jboss.msc.service.Service<CoreGroupCommunicationService>
stop
in class AsynchronousService<CoreGroupCommunicationService>
Service.stop(org.jboss.msc.service.StopContext)
public boolean isConsistentWith(GroupCommunicationService other)
GroupCommunicationService
isConsistentWith
in interface GroupCommunicationService
other
- the other GroupCommunicationService. Cannot be null
.true
if an application can use this service and other
together to interact with the
same set of nodes.public String getNodeName()
GroupCommunicationService
getClusterNode().getName()
.getNodeName
in interface GroupCommunicationService
GroupCommunicationService.getClusterNode()
public String getGroupName()
GroupCommunicationService
getGroupName
in interface GroupCommunicationService
public long getCurrentViewId()
GroupCommunicationService
getCurrentViewId
in interface GroupCommunicationService
public List<ClusterNode> getClusterNodes()
GroupCommunicationService
getClusterNodes
in interface GroupCommunicationService
public ClusterNode getClusterNode()
GroupCommunicationService
getClusterNode
in interface GroupCommunicationService
public boolean isCoordinator()
GroupCommunicationService
isCoordinator
in interface GroupCommunicationService
public void registerRPCHandler(String objName, Object subscriber)
registerRPCHandler
in interface GroupRpcDispatcher
objName
- Name of the subscribing service (demultiplexing key)subscriber
- object to be called when receiving a RPC for its key.public void registerRPCHandler(String objName, Object subscriber, org.jboss.marshalling.ClassResolver resolver)
registerRPCHandler
in interface GroupRpcDispatcher
objName
- Name of the subscribing service (demultiplexing key)subscriber
- object to be called when receiving a RPC for its key.resolver
- ClassResolver to be used when marshalling and unmarshalling RPC requests and responses.public void registerRPCHandler(String serviceName, Object handler, ClassLoader classLoader)
GroupRpcDispatcher
registerRPCHandler
in interface GroupRpcDispatcher
serviceName
- Name of the subscribing service (demultiplexing key)handler
- object to be called when receiving a RPC for its key.public void unregisterRPCHandler(String objName, Object subscriber)
unregisterRPCHandler
in interface GroupRpcDispatcher
objName
- Name of the service key (on which the demultiplexing occurs)subscriber
- The target object that unsubscribespublic <T> List<T> callMethodOnCluster(String serviceName, String methodName, Object[] args, Class<?>[] types, boolean excludeSelf) throws InterruptedException
GroupRpcDispatcher.callMethodOnCluster(String, String, Object[], Class[], boolean, ResponseFilter, long, boolean)
callAsynchMethodOnCluster(serviceName, methodName, args, types, Object.class, excludeSelf, null, methodTimeout, false)}
where methodTimeout
is the value returned by GroupRpcDispatcher.getMethodCallTimeout()
.callMethodOnCluster
in interface GroupRpcDispatcher
serviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parametersexcludeSelf
- false
if the RPC must also be made on the current node of the partition,
true
if only on remote nodesInterruptedException
public <T> List<T> callMethodOnCluster(String serviceName, String methodName, Object[] args, Class<?>[] types, boolean excludeSelf, ResponseFilter filter) throws InterruptedException
GroupRpcDispatcher.callMethodOnCluster(String, String, Object[], Class[], boolean, ResponseFilter, long, boolean)
callAsynchMethodOnCluster(serviceName, methodName, args, types, Object.class, excludeSelf, filter, methodTimeout, false)}
where methodTimeout
is the value returned by GroupRpcDispatcher.getMethodCallTimeout()
.callMethodOnCluster
in interface GroupRpcDispatcher
serviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parametersexcludeSelf
- false
if the RPC must also be made on the current node of the partition,
true
if only on remote nodesfilter
- response filter instance which allows for early termination of the synchronous RPC call. Can be
null
.InterruptedException
public <T> List<T> callMethodOnCluster(String serviceName, String methodName, Object[] args, Class<?>[] types, boolean excludeSelf, ResponseFilter filter, long methodTimeout, boolean unordered) throws InterruptedException
callMethodOnCluster
in interface GroupRpcDispatcher
T
- the expected type of the return valuesserviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parametersexcludeSelf
- false
if the RPC must also be made on the current node of the partition,
true
if only on remote nodesfilter
- response filter instance which allows for early termination of the RPC call once acceptable responses are
received. Can be null
, in which the call will not return until all nodes have responded.methodTimeout
- max number of ms to wait for response to arrive before returningunordered
- true
if the HAPartition isn't required to ensure that this RPC is invoked on all nodes in a
consistent order with respect to other RPCs originated by the same nodeInterruptedException
public <T> T callMethodOnCoordinatorNode(String serviceName, String methodName, Object[] args, Class<?>[] types, boolean excludeSelf) throws Exception
GroupRpcDispatcher.callMethodOnCoordinatorNode(String, String, Object[], Class[], boolean, long, boolean)
callMethodOnCoordinatorNode(serviceName, methodName, args, types, Object.class, excludeSelf, methodTimeout, false)} where
methodTimeout
is the value returned by GroupRpcDispatcher.getMethodCallTimeout()
.callMethodOnCoordinatorNode
in interface GroupRpcDispatcher
serviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parametersexcludeSelf
- true
if the RPC should not be made on the current node even if the current node is the
coordinatorException
public <T> T callMethodOnCoordinatorNode(String serviceName, String methodName, Object[] args, Class<?>[] types, boolean excludeSelf, long methodTimeout, boolean unordered) throws Exception
callMethodOnCoordinatorNode
in interface GroupRpcDispatcher
T
- the expected type of the return valueserviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parametersexcludeSelf
- true
if the RPC should not be made on the current node even if the current node is the
coordinatormethodTimeout
- max number of ms to wait for response to arrive before returningunordered
- true
if the HAPartition isn't required to ensure that this RPC is invoked on all nodes in a
consistent order with respect to other RPCs originated by the same nodeException
public <T> T callMethodOnNode(String serviceName, String methodName, Object[] args, Class<?>[] types, ClusterNode targetNode) throws Exception
GroupRpcDispatcher.callMethodOnNode(String, String, Object[], Class[], long, ClusterNode, boolean)
callMethodOnNode(serviceName, methodName, args, types, Object.class, methodTimeout, targetNode, false)} where
methodTimeout
is the value returned by GroupRpcDispatcher.getMethodCallTimeout()
.callMethodOnNode
in interface GroupRpcDispatcher
serviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parameterstargetNode
- is the target of the callException
public <T> T callMethodOnNode(String serviceName, String methodName, Object[] args, Class<?>[] types, long methodTimeout, ClusterNode targetNode) throws Exception
GroupRpcDispatcher.callMethodOnNode(String, String, Object[], Class[], long, ClusterNode, boolean)
callMethodOnNode(serviceName, methodName, args, types, Object.class, methodTimeout, targetNode, false)}.callMethodOnNode
in interface GroupRpcDispatcher
serviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parametersmethodTimeout
- max number of ms to wait for response to arrive before returningtargetNode
- is the target of the callException
public <T> T callMethodOnNode(String serviceName, String methodName, Object[] args, Class<?>[] types, long methodTimeout, ClusterNode targetNode, boolean unordered) throws Exception
callMethodOnNode
in interface GroupRpcDispatcher
T
- the expected type of the return valueserviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parametersmethodTimeout
- max number of ms to wait for response to arrive before returningtargetNode
- is the target of the callunordered
- true
if the HAPartition isn't required to ensure that this RPC is invoked on all nodes in a
consistent order with respect to other RPCs originated by the same nodeException
public void callAsyncMethodOnNode(String serviceName, String methodName, Object[] args, Class<?>[] types, ClusterNode targetNode) throws Exception
GroupRpcDispatcher.callAsyncMethodOnNode(String, String, Object[], Class[], ClusterNode, boolean)
callAsynchMethodOnCluster(serviceName, methodName, args, types, methodTimeout, targetNode, false)}.callAsyncMethodOnNode
in interface GroupRpcDispatcher
serviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parameterstargetNode
- is the target of the callException
public void callAsyncMethodOnNode(String serviceName, String methodName, Object[] args, Class<?>[] types, ClusterNode targetNode, boolean unordered) throws Exception
callAsyncMethodOnNode
in interface GroupRpcDispatcher
serviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parameterstargetNode
- is the target of the callunordered
- true
if the HAPartition isn't required to ensure that this RPC is invoked on all nodes in a
consistent order with respect to other RPCs originated by the same nodeException
public void callAsynchMethodOnCluster(String serviceName, String methodName, Object[] args, Class<?>[] types, boolean excludeSelf) throws InterruptedException
callAsynchMethodOnCluster(serviceName, methodName, args, types, excludeSelf, false)
.callAsynchMethodOnCluster
in interface GroupRpcDispatcher
serviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parametersexcludeSelf
- false
if the RPC must also be made on the current node of the partition,
true
if only on remote nodesInterruptedException
public void callAsynchMethodOnCluster(String serviceName, String methodName, Object[] args, Class<?>[] types, boolean excludeSelf, boolean unordered) throws InterruptedException
callAsynchMethodOnCluster
in interface GroupRpcDispatcher
serviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parametersexcludeSelf
- false
if the RPC must also be made on the current node of the partition,
true
if only on remote nodesunordered
- true
if the HAPartition isn't required to ensure that this RPC is invoked on all nodes in a
consistent order with respect to other RPCs originated by the same nodeInterruptedException
public void callAsyncMethodOnCoordinatorNode(String serviceName, String methodName, Object[] args, Class<?>[] types, boolean excludeSelf) throws Exception
GroupRpcDispatcher
callMethodOnCoordinatorNode(serviceName, methodName, args, types, excludeSelf, false)
.callAsyncMethodOnCoordinatorNode
in interface GroupRpcDispatcher
serviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parametersexcludeSelf
- true
if the RPC should not be made on the current node even if the current node is the
coordinatorException
public void callAsyncMethodOnCoordinatorNode(String serviceName, String methodName, Object[] args, Class<?>[] types, boolean excludeSelf, boolean unordered) throws Exception
GroupRpcDispatcher
callAsyncMethodOnCoordinatorNode
in interface GroupRpcDispatcher
serviceName
- name of the target service name on which calls are invokedmethodName
- name of the Java method to be called on remote servicesargs
- array of Java Object representing the set of parameters to be given to the remote methodtypes
- types of the parametersexcludeSelf
- true
if the RPC should not be made on the current node even if the current node is the
coordinatorunordered
- true
if the HAPartition isn't required to ensure that this RPC is invoked on all nodes in a
consistent order with respect to other RPCs originated by the same nodeException
public boolean getAllowSynchronousMembershipNotifications()
public void setAllowSynchronousMembershipNotifications(boolean allowSync)
allowSync
- true
if registered listeners that don't implement
AsynchHAMembershipExtendedListener
or AsynchHAMembershipListener
should be notified
synchronously of membership changes; false
if those listeners can be notified asynchronously. Default
is false
.public void registerGroupMembershipListener(GroupMembershipListener listener)
GroupMembershipNotifier
GroupMembershipListener
events.registerGroupMembershipListener
in interface GroupMembershipNotifier
listener
- The membership listener objectpublic void unregisterGroupMembershipListener(GroupMembershipListener listener)
GroupMembershipNotifier
GroupMembershipListener
events.unregisterGroupMembershipListener
in interface GroupMembershipNotifier
listener
- The listener wishing to unsubscribepublic long getStateTransferTimeout()
public void setStateTransferTimeout(long timeout)
public Future<SerializableStateTransferResult> getServiceState(String serviceName, ClassLoader classloader)
GroupStateTransferService
getServiceState
in interface GroupStateTransferService
serviceName
- the name of the serviceclassloader
- the ClassLoader to use to deserialize the state when it becomes available. May be null
in
which case the GroupStateTransferService implementation class' classloader will be used.Future
whose get()
method will return the service state when it becomes
available.public Future<SerializableStateTransferResult> getServiceState(String serviceName)
GroupStateTransferService
Equivalent to getServiceState(serviceName, null)
.
getServiceState
in interface GroupStateTransferService
serviceName
- the name of the serviceFuture
whose get()
method will return the service state when it becomes
available.public Future<StreamStateTransferResult> getServiceStateAsStream(String serviceName)
GroupStateTransferService
Equivalent to getServiceState(serviceName, null)
.
getServiceStateAsStream
in interface GroupStateTransferService
serviceName
- the name of the serviceFuture
whose get()
method will return the service state when it becomes
available.public void registerStateTransferProvider(String serviceName, StateTransferProvider provider)
GroupStateTransferService
registerStateTransferProvider
in interface GroupStateTransferService
serviceName
- the name of the serviceprovider
- the state providerpublic void unregisterStateTransferProvider(String serviceName)
GroupStateTransferService
unregisterStateTransferProvider
in interface GroupStateTransferService
serviceName
- the name of the servicepublic String showHistory()
public String showHistoryAsXML()
public int getMaxHistoryLength()
public void setMaxHistoryLength(int maxHistoryLength)
public Executor getThreadPool()
public void setThreadPool(Executor threadPool)
public String getJGroupsVersion()
public ChannelFactory getChannelFactory()
public void setChannelFactory(ChannelFactory factory)
public String getChannelStackName()
public void setChannelStackName(String stackName)
public long getMethodCallTimeout()
GroupRpcDispatcher
callMethodOnXXX
methods that don't specify a
methodTimeout
parameter will wait for a response.getMethodCallTimeout
in interface GroupRpcDispatcher
public void setMethodCallTimeout(long timeout)
public void setGroupName(String groupName)
public void setChannel(org.jgroups.Channel channel)
public void start() throws Exception
start
in class AsynchronousService<CoreGroupCommunicationService>
Exception
public void stop()
stop
in class AsynchronousService<CoreGroupCommunicationService>
public void destroy()
public org.jboss.as.clustering.impl.CoreGroupCommunicationService.State getState()
protected void destroyService()
protected org.jgroups.Channel createChannel()
protected org.jgroups.Channel getChannel()
protected void registerGroupMembershipListener(GroupMembershipListener listener, boolean sync)
protected void unregisterGroupMembershipListener(GroupMembershipListener listener, boolean sync)
Copyright © 2012 JBoss, a division of Red Hat, Inc.. All Rights Reserved.