|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ReplicationManager
The ReplicationManager
interface describes the methods
that a management client can invoke on the replication manager to
create and remove object groups within the distributed system.
Note that all methods in this interface has no declared invocation
semantics. The invocation semantics depends on the implementation
of this interface, and the ReplicaManagerImpl
class
provides one such implementation in which all methods are defined
to have @Multicast
invocation semantics. However, in
this implementation of this interface only the leader replica
actually perform the create and remove replica operations on the
execution service, while the follower replicas just keeps
track of the state by updating its own group table.
The above semantics require the replica distribution scheme to
perform deterministic replica placements.
The ReplicationManager
interface also describe the
methods that ARM components, such as the RecoveryLayer
and ExecDaemon
can invoke on the replication manager
to notify it of certain events.
Nested Class Summary | |
---|---|
static interface |
ReplicationManager.ManagementCallback
Callback interface for monitoring installed applications. |
Method Summary | |
---|---|
int |
createGroup(AppConfig app)
Create a group for the specified application, with the applications required redundancy. |
void |
notifyEvent(ARMEvent event)
The notifyEvent method is used by components external
to the replication manager to notify it of important events, such
as the presence of a new host (ExecDaemon ) or view
change events from the RecoveryLayer . |
void |
removeGroup(AppConfig app)
Remove the group for the given application. |
void |
subscribe(ReplicationManager.ManagementCallback callback,
int group)
Register to receive notifications for the given group. |
void |
unsubscribe(int group)
Unregister to receive notifications for the given group. |
void |
updateGroup(AppConfig app)
Update the replication policy for the group for the given application. |
Method Detail |
---|
void notifyEvent(ARMEvent event) throws java.rmi.RemoteException, java.lang.Exception
notifyEvent
method is used by components external
to the replication manager to notify it of important events, such
as the presence of a new host (ExecDaemon
) or view
change events from the RecoveryLayer
.
The method takes arbitrary event types as long as they implement
the interface ARMEvent
.
event
- An event notification for the replication manager.
java.rmi.RemoteException
- Raised if the remote operation failed.
java.lang.Exception
int createGroup(AppConfig app) throws java.rmi.RemoteException, RedundancyException, GroupExistsException
app
- The application details required to create a group for it.
java.rmi.RemoteException
- Raised if there was communication problems; only when invoked remotely.
ConfigurationException
- Raised if the specified application recovery strategy could not be initialized.
RedundancyException
- Raised if the specified redundancy could not be satisfied.
GroupExistsException
- Raised if the specified group already exists.void removeGroup(AppConfig app) throws java.rmi.RemoteException, UnknownGroupException
app
- The application group to remove.
java.rmi.RemoteException
- Raised if there was communication problems; only when invoked remotely.
UnknownGroupException
- Raised if the specified application has no group in the system.void updateGroup(AppConfig app) throws java.rmi.RemoteException, UnknownGroupException
app
- The application group to remove.
java.rmi.RemoteException
- Raised if there was communication problems; only when invoked remotely.
UnknownGroupException
- Raised if the specified application has no group in the system.void subscribe(ReplicationManager.ManagementCallback callback, int group) throws java.rmi.RemoteException, UnknownGroupException
callback
- The callback server (typically a management client)group
- The group for which notifications are desired
java.rmi.RemoteException
- Raised if there was communication problems; only when invoked remotely.
UnknownGroupException
- Raised if the specified application has no group in the system.void unsubscribe(int group) throws java.rmi.RemoteException, UnknownGroupException
group
- The group for which notifications are no longer desired
java.rmi.RemoteException
- Raised if there was communication problems; only when invoked remotely.
UnknownGroupException
- Raised if the specified application has no group in the system.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |