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
- 如果远程调用失败