|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.rmi.activation
接口 Activator
- 所有超级接口:
- Remote
-
public interface Activator
- extends Remote
Activator
方便了远程对象激活。“失效的”远程引用调用激活器 (activator) 的 activate
方法来获得到“可激活的”远程对象的“活”引用。接收到激活的请求后,激活器为激活标识符 id
查找激活描述符,确定应当激活的对象所在的组通过组的 ActivationInstantiator
来初始化对象重创建(通过调用 newInstance
方法)。激活器在必要时才初始化激活组的执行。例如,如果针对某个特定组标识符的激活组尚未执行,则激活器为该组初始化 VM 的执行。
Activator
与 ActivationSystem
和 ActivationMonitor
紧密协作,ActivationSystem
提供了一种方式来注册那些组中的组和对象,而 ActivationMonitor
接收有关活动和不活动对象以及不活动组的信息。
激活器负责监视和检测,当激活组失败时,它可以移除那些组中的组和活动对象的旧远程引用。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ActivationInstantiator
,ActivationGroupDesc
,ActivationGroupID
方法摘要 | |
---|---|
MarshalledObject |
activate(ActivationID id, boolean force) 激活与激活标识符 id 关联的对象。 |
方法详细信息 |
---|
activate
MarshalledObject activate(ActivationID id, boolean force) throws ActivationException, UnknownObjectException, RemoteException
-
激活与激活标识符
id
关联的对象。如果激活器知道对象已经是活动的,并且force
为 false,则立即向调用方返回具有一个“活”引用的 stub;否则,如果激活器不知道对应的远程对象是否为活动的,则激活器使用激活描述符信息(前面已注册)来确定应当被激活的对象所在的组 (VM)。如果与对象组描述符相对应的ActivationInstantiator
已经存在,则激活器调用激活组的newInstance
方法来传递对象的 id 和描述符。如果针对该对象的组描述符的激活组尚未存在,则激活器启动一次
ActivationInstantiator
执行(例如,通过生成一个子进程)。当激活器接收到激活组的指定该激活组引用的回调(通过ActivationSystem
的activeGroup
方法)时,然后激活器可以调用该激活初始化程序的newInstance
方法来转发每一个挂起的激活请求给激活组,并且向调用方返回结果(一个编组的远程对象引用,一个 stub)。注意,激活器接收一个“编组”的对象,而不是一个远程对象,以便激活器无需为该对象加载代码或者参与针对该对象的分布式垃圾收集。如果激活器保持对该远程对象的一个强引用,则在正常的分布式垃圾收集机制下,激活器可能阻止对象被垃圾回收。
-
-
- 参数:
-
id
- 正被激活的对象的激活标识符 -
force
- 如果为 true,激活器联络该组来获得该远程对象的引用;如果为 false,返回允许的缓存值。 - 返回:
- 以一种编组形式返回远程对象(一个 stub)
- 抛出:
-
ActivationException
- 如果对象激活失败 -
UnknownObjectException
- 如果对象未知(未注册) -
RemoteException
- 如果远程调用失败 - 从以下版本开始:
- 1.2
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |