-
- All Superinterfaces:
-
Remote
public interface Activator extends Remote
Activator
有助于远程对象激活。 “故障”远程引用调用激活器的activate
方法来获取对“可激活”远程对象的“实时”引用。 在接收到激活请求时,激活器查找激活标识符的激活描述符,id
确定应激活对象的组,通过组ActivationInstantiator
(通过调用newInstance
方法)来启动对象重新创建。 激活器根据需要启动激活组的执行。 例如,如果特定组标识符的激活组尚未执行,则激活程序启动该组的VM的执行。Activator
与ActivationSystem
紧密合作,它提供了注册组和对象在这些组中的方法,以及ActivationMonitor
,它接收有关活动和非活动对象和非活动组的信息。激活器负责监视和检测激活组何时失败,以便它可以删除对这些组中的组和活动对象的陈旧的远程引用。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ActivationInstantiator
,ActivationGroupDesc
,ActivationGroupID
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 MarshalledObject<? extends Remote>
activate(ActivationID id, boolean force)
激活与激活标识符相关联的对象,id
。
-
-
-
方法详细信息
-
activate
MarshalledObject<? extends Remote> activate(ActivationID id, boolean force) throws ActivationException, UnknownObjectException, RemoteException
激活与激活标识符相关联的对象,id
。 如果激活器知道该对象已经被激活,并且force
为假,则具有“活动”引用的存根立即返回给调用者; 否则,如果激活器不知道对应的远程对象是活动的,则激活器使用激活描述符信息(先前注册的)来确定应该激活对象的组(VM)。 如果对象的组描述符对应的ActivationInstantiator
已经存在,则激活程序将调用激活组的newInstance
方法传递对象的id和描述符。如果对象的组描述符的激活组不存在,则激活器启动
ActivationInstantiator
执行(例如通过生成子进程)。 当激活器接收到激活组的回叫(通过ActivationSystem
的activeGroup
方法)指定激活组的引用时,激活器然后可以调用激活实例化器的newInstance
方法将每个待处理的激活请求转发到激活组并返回结果(a编组的远程对象引用,存根)到调用者。请注意,激活程序接收“编组”对象而不是Remote对象,以便激活程序不需要加载该对象的代码,也可以参与该对象的分布式垃圾回收。 如果激活器保持对远程对象的强烈引用,则激活器将防止对象在正常分布式垃圾收集机制下被垃圾收集。
- 参数
-
id
- 正在激活的对象的激活标识符 -
force
- 如果为真,则激活器接触组以获得远程对象的引用; 如果为false,则返回缓存值是允许的。 - 结果
- 远程对象(一个存根)以编组形式存在
- 异常
-
ActivationException
- 如果对象激活失败 -
UnknownObjectException
- 如果对象未知(未注册) -
RemoteException
- 如果远程调用失败 - 从以下版本开始:
- 1.2
-
-