public interface ActivationMonitor
一个 ActivationMonitor 特定于一个 ActivationGroup,当一个组通过对 ActivationSystem.activeGroup 的调用(这是内部完成的)被报告为活动时,获得一个 ActivationMonitor。在以下任一情况下,一个激活组负责通知其 ActivationMonitor:它的对象成为活动的或者不活动的,或者整个组成为不活动的。
Activator,
ActivationSystem,
ActivationGroup
| 方法摘要 | |
|---|---|
void |
activeObject(ActivationID id, MarshalledObject<? extends Remote> obj) 通知某个对象现在是活动的。 |
void |
inactiveGroup(ActivationGroupID id, long incarnation) 通知该组现在是不活动的。 |
void |
inactiveObject(ActivationID id) 当组中的一个对象成为不活动(取消激活)时,一个激活组调用其监视器的 inactiveObject 方法。 |
| 方法详细信息 |
|---|
void inactiveObject(ActivationID id) throws UnknownObjectException, RemoteException
inactiveObject 方法。通过调用激活组的
inactiveObject 方法,激活组发现其所参与激活的某个对象在其 VM 中不再为活动的。
inactiveObject 调用通知 ActivationMonitor,它为具有激活标识符 id 的对象所保持的远程对象引用不再有效。监视器把与 id 关联的引用当作一个旧引用。因为该引用被认为是陈旧的,对相同激活标识符的后续 activate 调用将导致重新激活该远程对象。
id - 对象的激活标识符
UnknownObjectException - 如果对象未知
RemoteException - 如果远程调用失败
void activeObject(ActivationID id, MarshalledObject<? extends Remote> obj) throws UnknownObjectException, RemoteException
ActivationGroup 组中的对象通过其他方式而不是被直接激活(即对象被注册并且“激活”其自身),则
ActivationGroup 将通知其监视器。
id - 激活对象的 id
obj - 编组形式的对象 stub
UnknownObjectException - 如果对象未知
RemoteException - 如果远程调用失败
void inactiveGroup(ActivationGroupID id, long incarnation) throws UnknownGroupException, RemoteException
id - 组 id
incarnation - 组的代号
UnknownGroupException - 如果组未知
RemoteException - 如果远程调用失败