CONTENTS | PREV | NEXT | Java Remote Method Invocation |
An ActivationMonitor is specific to an ActivationGroup and is obtained when a group is reported via a call toActivationSystem.activeGroup
(this is done internally by theActivationGroup.createGroup
method). An activation group is responsible for informing its ActivationMonitor when either: its objects become active, inactive or the group as a whole becomes inactive.package java.rmi.activation;An activation group calls its monitor's
public interface ActivationMonitor
extends java.rmi.Remote
{
public abstract void inactiveObject(ActivationID id)
throws UnknownObjectException, RemoteException;
protected void activeObject(ActivationID id,
java.rmi.MarshalledObject mobj)
throws UnknownObjectException, java.rmi.RemoteException;
protected void inactiveGroup(ActivationGroupID id,
long incarnation)
throws UnknownGroupException, java.rmi.RemoteException;
}inactiveObject
method when an object in its group becomes inactive (deactivates). An activation group discovers that an object (that it participated in activating) in its VM is no longer active via a call to the activation group'sinactiveObject
method.The
inactiveObject
call informs the ActivationMonitor that the remote object reference it holds for the object with the activation identifier, id, is no longer valid. The monitor considers the reference associated with id as a stale reference. Since the reference is considered stale, a subsequentactivate
call for the same activation identifier results in re-activating the remote object. If the object is not known to the ActivationMonitor, the method throws UnknownObjectException. If the remote call fails, then RemoteException is thrown.The
activeObject
call informs the ActivationMonitor that the object associated with id is now active. The parameter obj is the marshalled representation of the object's stub. An ActivationGroup must inform its monitor if an object in its group becomes active by other means than being activated directly by the system (i.e., the object is registered and "activated" itself). If the object id is not previously registered, then the method throws UnknownObjectException. If the remote call fails, then RemoteException is thrown.The
inactiveGroup
call informs the monitor that the group specified by id and incarnation is now inactive. The group will be recreated with a greater incarnation number upon a subsequent request to activate an object within the group. A group becomes inactive when all objects in the group report that they are inactive. If either the group id is not registered or the incarnation number is smaller than the current incarnation for the group, then the method throws UnknownGroupException. If the remote call fails, then RemoteException is thrown.