Module java.rmi
Package java.rmi.activation

# Interface ActivationMonitor

All Superinterfaces:
  `Remote`

    public interface ActivationMonitor
    extends Remote

An `ActivationMonitor` is specific to an `ActivationGroup` and is obtained when a group is reported active via a call to `ActivationSystem.activeGroup` (this is done internally). An activation group is responsible for informing its `ActivationMonitor` when either: its objects become active or inactive, or the group as a whole becomes inactive.

Since:
  1.2
See Also:
  `Activator`, `ActivationSystem`, `ActivationGroup`

## Method Summary

Modifier and Type | Method | Description
--- | --- | ---
`void` | `activeObject​(ActivationID id, MarshalledObject<? extends Remote> obj)` | Informs that an object is now active.
`void` | `inactiveGroup​(ActivationGroupID id, long incarnation)` | Informs that the group is now inactive.
`void` | `inactiveObject​(ActivationID id)` | An activation group calls its monitor's `inactiveObject` method when an object in its group becomes inactive (deactivates).

## Method Details

### inactiveObject

void inactiveObject​(ActivationID id) throws UnknownObjectException, RemoteException
An activation group calls its monitor's `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 calls to the activation group's `inactiveObject` 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 subsequent `activate` call for the same activation identifier results in re-activating the remote object.

Parameters:
  `id` - the object's activation identifier
Throws:
  `UnknownObjectException` - if object is unknown
  `RemoteException` - if remote call fails
Since:
  1.2

### activeObject

void activeObject​(ActivationID id, MarshalledObject<? extends Remote> obj) throws UnknownObjectException, RemoteException
Informs that an object is now active. An `ActivationGroup` informs its monitor if an object in its group becomes active by other means than being activated directly (i.e., the object is registered and "activated" itself).

Parameters:
  `id` - the active object's id
  `obj` - the marshalled form of the object's stub
Throws:
  `UnknownObjectException` - if object is unknown
  `RemoteException` - if remote call fails
Since:
  1.2

### inactiveGroup

void inactiveGroup​(ActivationGroupID id, long incarnation) throws UnknownGroupException, RemoteException
Informs that the group is now inactive. The group will be recreated 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.

Parameters:
  `id` - the group's id
  `incarnation` - the group's incarnation number
Throws:
  `UnknownGroupException` - if group is unknown
  `RemoteException` - if remote call fails
Since:
  1.2