JavaTM 2 Platform
Standard Ed. 6

java.rmi.activation
介面 Activator

所有父級介面:
Remote

public interface Activator
extends Remote

Activator 方便了遠端物件啟動。“失效的”遠端參考調用啟動器 (activator) 的 activate 方法來獲得到“可啟動的”遠端物件的“活”參考。接收到啟動的請求後,啟動器為啟動標識符 id 尋找啟動描述符,確定應當啟動的物件所在的組通過組的 ActivationInstantiator 來初始化物件重創建(通過調用 newInstance 方法)。啟動器在必要時才初始化啟動組的執行。例如,如果針對某個特定組標識符的啟動組尚未執行,則啟動器為該組初始化 VM 的執行。

ActivatorActivationSystemActivationMonitor 緊密協作,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 為 false,則立即向調用方返回具有一個“活”參考的 stub;否則,如果啟動器不知道對應的遠端物件是否為活動的,則啟動器使用啟動描述符資訊(前面已註冊)來確定應當被啟動的物件所在的組 (VM)。如果與物件組描述符相對應的 ActivationInstantiator 已經存在,則啟動器調用啟動組的 newInstance 方法來傳遞物件的 id 和描述符。

如果針對該物件的組描述符的啟動組尚未存在,則啟動器啟動一次 ActivationInstantiator 執行(例如,通過產生一個子進程)。當啟動器接收到啟動組的指定該啟動組參考的回調(通過 ActivationSystemactiveGroup 方法)時,然後啟動器可以調用該啟動初始化程序的 newInstance 方法來轉發每一個掛起的啟動請求給啟動組,並且向調用方返回結果(一個編組的遠端物件參考,一個 stub)。

注意,啟動器接收一個“編組”的物件,而不是一個遠端物件,以便啟動器無需為該物件載入程式碼或者參與針對該物件的分佈式垃圾收集。如果啟動器保持對該遠端物件的一個強參考,則在正常的分佈式垃圾收集機制下,啟動器可能阻止物件被垃圾回收。

參數:
id - 正被啟動的物件的啟動標識符
force - 如果為 true,啟動器聯絡該組來獲得該遠端物件的參考;如果為 false,返回允許的快取記憶體值。
返回:
以一種編組形式返回遠端物件(一個 stub)
拋出:
ActivationException - 如果物件啟動失敗
UnknownObjectException - 如果物件未知(未註冊)
RemoteException - 如果遠端調用失敗
從以下版本開始:
1.2

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only