|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface HAPartition
HAPartition is an abstraction of the communication framework, providing access to clustered services such as Distributed State, Distributed Replicant Manager and RPC.
Revisions:
28.07.2002 - Sacha Labourey:
Nested Class Summary | |
---|---|
static interface |
HAPartition.AsynchHAMembershipExtendedListener
A tagging interface for HAMembershipExtendedListener callbacks that will be performed in a thread separate from the JG protocol handler thread. |
static interface |
HAPartition.AsynchHAMembershipListener
A tagging interface for HAMembershipListener callbacks that will be performed in a thread separate from the JG protocol handler thread. |
static interface |
HAPartition.HAMembershipExtendedListener
Extends HAMembershipListener to receive notification when a network-partition merge occurs. |
static interface |
HAPartition.HAMembershipListener
When a new node joins the cluster or an existing node leaves the cluster (or simply dies), membership events are raised. |
static interface |
HAPartition.HAPartitionStateTransfer
State management is highly important for clustered services. |
Method Summary | |
---|---|
void |
callAsynchMethodOnCluster(String serviceName,
String methodName,
Object[] args,
Class[] types,
boolean excludeSelf)
Invoke a asynchronous RPC call on all nodes of the partition/cluster. |
void |
callAsyncMethodOnNode(String serviceName,
String methodName,
Object[] args,
Class[] types,
long methodTimeout,
ClusterNode targetNode)
Calls method on target node only. |
ArrayList |
callMethodOnCluster(String serviceName,
String methodName,
Object[] args,
Class[] types,
boolean excludeSelf)
Invoke a synchronous RPC call on all nodes of the partition/cluster |
ArrayList |
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 which can be terminated early based on response filter implementation passed. |
ArrayList |
callMethodOnCoordinatorNode(String serviceName,
String methodName,
Object[] args,
Class[] types,
boolean excludeSelf)
Calls method on Cluster coordinator node only. |
Object |
callMethodOnNode(String serviceName,
String methodName,
Object[] args,
Class[] types,
long methodTimeout,
ClusterNode targetNode)
Calls method synchronously on target node only. |
boolean |
getAllowSynchronousMembershipNotifications()
Returns whether this partition will synchronously notify any HAMembershipListeners of membership changes using the calling thread from the underlying ClusterPartition . |
ClusterNode |
getClusterNode()
Return member node for the current cluster node. |
ClusterNode[] |
getClusterNodes()
Return the member nodes that built the current view i.e., the current partition. |
Vector |
getCurrentView()
Return the list of member nodes that built the current view i.e., the current partition. |
long |
getCurrentViewId()
Each time the partition topology changes, a new view is computed. |
DistributedReplicantManager |
getDistributedReplicantManager()
Accessor to the DistributedReplicantManager (DRM) that is linked to this partition. |
DistributedState |
getDistributedStateService()
Deprecated. Use JBoss Cache for distributed caching |
String |
getNodeName()
Return the name of this node in the current partition. |
String |
getPartitionName()
The name of the partition. |
void |
registerMembershipListener(HAPartition.HAMembershipListener listener)
Subscribes to receive HAPartition.HAMembershipListener events. |
void |
registerRPCHandler(String serviceName,
Object handler)
The partition receives RPC calls from other nodes in the cluster and demultiplexes them, according to a service name, to a particular service. |
void |
registerRPCHandler(String serviceName,
Object handler,
ClassLoader classloader)
The partition receives RPC calls from other nodes in the cluster and demultiplexes them, according to a service name, to a particular service. |
void |
setAllowSynchronousMembershipNotifications(boolean allowSync)
Sets whether this partition will synchronously notify any HAMembershipListeners of membership changes using the calling thread from the underlying ClusterPartition . |
void |
subscribeToStateTransferEvents(String serviceName,
HAPartition.HAPartitionStateTransfer subscriber)
Register a service that will participate in state transfer protocol and receive callbacks |
void |
unregisterMembershipListener(HAPartition.HAMembershipListener listener)
Unsubscribes from receiving HAPartition.HAMembershipListener events. |
void |
unregisterRPCHandler(String serviceName,
Object subscriber)
Unregister the service from the partition |
void |
unsubscribeFromStateTransferEvents(String serviceName,
HAPartition.HAPartitionStateTransfer subscriber)
Unregister a service from state transfer callbacks. |
Method Detail |
---|
String getNodeName()
getClusterNode().getName()
.
getClusterNode()
String getPartitionName()
DistributedReplicantManager getDistributedReplicantManager()
DistributedState getDistributedStateService()
void registerRPCHandler(String serviceName, Object handler)
serviceName
- Name of the subscribing service (demultiplexing key)handler
- object to be called when receiving a RPC for its key.void registerRPCHandler(String serviceName, Object handler, ClassLoader classloader)
serviceName
- Name of the subscribing service (demultiplexing key)handler
- object to be called when receiving a RPC for its key.classloader
- ClassLoader to be used when marshalling and unmarshalling RPC requests and responses.void unregisterRPCHandler(String serviceName, Object subscriber)
serviceName
- Name of the service key (on which the demultiplexing occurs)subscriber
- The target object that unsubscribesArrayList callMethodOnCluster(String serviceName, String methodName, Object[] args, Class[] types, boolean excludeSelf) throws Exception
serviceName
- Name of the target service name on which calls are de-multiplexedmethodName
- 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
- The types of the parametersexcludeSelf
- indicates if the RPC must also be made on the current
node of the partition or only on remote nodes
Exception
- Throws if a communication exception occursArrayList callMethodOnCluster(String serviceName, String methodName, Object[] args, Class[] types, boolean excludeSelf, ResponseFilter filter) throws Exception
serviceName
- Name of the target service name on which calls are de-multiplexedmethodName
- 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
- The types of the parametersexcludeSelf
- Indicates if the RPC must also be made on the current
node of the partition or only on remote nodesfilter
- Response filter instance which allows for early termination
of the synchronous RCP call.
Exception
- Throws if a communication exception occursvoid callAsynchMethodOnCluster(String serviceName, String methodName, Object[] args, Class[] types, boolean excludeSelf) throws Exception
serviceName
- Name of the target service name on which calls are de-multiplexedmethodName
- 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
- The types of the parametersexcludeSelf
- indicates if the RPC must also be made on the current
node of the partition or only on remote nodes
Exception
- Throws if a communication exception occursArrayList callMethodOnCoordinatorNode(String serviceName, String methodName, Object[] args, Class[] types, boolean excludeSelf) throws Exception
serviceName
- Name of the target service name on which calls are de-multiplexedmethodName
- 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
- The types of the parametersexcludeSelf
- indicates if the RPC will be made on the current node even if the current node
is the coordinator
Exception
- Throws if a communication exception occursObject callMethodOnNode(String serviceName, String methodName, Object[] args, Class[] types, long methodTimeout, ClusterNode targetNode) throws Throwable
serviceName
- Name of the target service name on which calls are de-multiplexedmethodName
- 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
- The types of the parameters
node of the partition or only on remote nodestargetNode
- is the target of the call
Exception
- Throws if a communication exception occurs
Throwable
void callAsyncMethodOnNode(String serviceName, String methodName, Object[] args, Class[] types, long methodTimeout, ClusterNode targetNode) throws Throwable
serviceName
- Name of the target service name on which calls are de-multiplexedmethodName
- 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
- The types of the parameters
node of the partition or only on remote nodestargetNode
- is the target of the call
Exception
- Throws if a communication exception occurs
Throwable
void subscribeToStateTransferEvents(String serviceName, HAPartition.HAPartitionStateTransfer subscriber)
serviceName
- Name of the service that subscribes for state transfer events. This name must be identical for all identical services in the cluster.subscriber
- Object implementing HAPartition.HAPartitionStateTransfer
and providing or receiving state transfer callbacksvoid unsubscribeFromStateTransferEvents(String serviceName, HAPartition.HAPartitionStateTransfer subscriber)
serviceName
- Name of the service that participates in the state transfer protocolsubscriber
- Service implementing the state transfer callback methodsvoid registerMembershipListener(HAPartition.HAMembershipListener listener)
HAPartition.HAMembershipListener
events.
listener
- The membership listener objectvoid unregisterMembershipListener(HAPartition.HAMembershipListener listener)
HAPartition.HAMembershipListener
events.
listener
- The listener wishing to unsubscribeboolean getAllowSynchronousMembershipNotifications()
ClusterPartition
.
true
if registered listeners that don't implement
AsynchHAMembershipExtendedListener
or
AsynchHAMembershipListener
will be notified
synchronously of membership changes; false
if
those listeners will be notified asynchronously. Default
is false
.void setAllowSynchronousMembershipNotifications(boolean allowSync)
ClusterPartition
.
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
.long getCurrentViewId()
Vector getCurrentView()
ClusterNode[] getClusterNodes()
ClusterNode getClusterNode()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |