-
- All Superinterfaces:
-
Remote
public interface Activator extends Remote
Activator
有助于远程对象激活。 “故障”远程引用调用激活器的activate
方法以获得对“可激活”远程对象的“实时”引用。 在接收到激活请求时,激活器查找激活描述符以获得激活标识符id
,确定应该激活对象的组通过组ActivationInstantiator
(通过调用newInstance
方法)启动对象重新创建。 激活器根据需要启动激活组的执行。 例如,如果特定组标识符的激活组尚未执行,则激活器启动组的VM的执行。Activator
与ActivationSystem
密切配合,ActivationSystem
提供了在这些组中注册组和对象的方法,以及ActivationMonitor
,它接收有关活动和非活动对象以及非活动组的信息。激活器负责监视和检测激活组何时失败,以便它可以删除对这些组中的组和活动对象的陈旧远程引用。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ActivationInstantiator
,ActivationGroupDesc
,ActivationGroupID
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 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
方法,newInstance
传递对象的id和描述符。如果对象的组描述符的激活组尚不存在,则激活器启动
ActivationInstantiator
执行(例如,通过生成子进程)。 当激活器接收到激活组的回调(通过ActivationSystem
的activeGroup
方法)指定激活组的引用时,激活器可以调用该激活实例化器的newInstance
方法将每个待处理的激活请求转发给激活组并返回结果(a编组远程对象引用,存根(stub)到调用者。请注意,激活器接收“编组”对象而不是远程对象,以便激活器不需要加载该对象的代码,或参与该对象的分布式垃圾收集。 如果激活器保持对远程对象的强引用,则激活器将阻止对象在正常分布式垃圾收集机制下被垃圾收集。
- 参数
-
id
- 正在激活的对象的激活标识符 -
force
- 如果为true,则激活器联系组以获取远程对象的引用; 如果为false,则允许返回缓存的值。 - 结果
- 处于编组形式的远程对象(存根)
- 异常
-
ActivationException
- 如果对象激活失败 -
UnknownObjectException
- 如果对象未知(未注册) -
RemoteException
- 如果远程呼叫失败 - 从以下版本开始:
- 1.2
-
-