JavaTM 2 Platform
Standard Ed. 6

java.rmi.dgc
介面 DGC

所有父級介面:
Remote

public interface DGC
extends Remote

DGC 抽象用於分佈式垃圾回收演算法的伺服器端。此介面包含了兩個方法:dirty 和 clean。當一個遠端參考在客戶機(客戶機由其 VMID 表示)被解組時,則進行一次髒 (dirty) 調用。當客戶機上不存任何針對遠端參考的更多參考時,則進行一次相應的潔 (clean) 調用。一次失敗的髒調用必須安排一次強潔調用,這樣調用的序列號才能保持,以檢測未來由分佈式垃圾回收器接收的無序調用。針對遠端物件的參考由保持該參考的客戶機租借一段時間。租借期從接收到髒調用時開始。對租借進行續期是客戶機的職責,其方式是:在租借期滿之前,在客戶機保持的遠端參考上進行附加的髒調用。如果客戶機在期滿之前沒有對租借進行續期,則分式布垃圾回收器假定遠端物件已不再為該客戶機所保持。


方法摘要
 void clean(ObjID[] ids, long sequenceNum, VMID vmid, boolean strong)
          潔調用從 'ids' 指示的每個遠端物件的參考列表中移除 'vmid'。
 Lease dirty(ObjID[] ids, long sequenceNum, Lease lease)
          髒調用為(與包含在陣列 'ids' 中的物件標識符關聯的)遠端物件參考請求租借。
 

方法詳細資訊

dirty

Lease dirty(ObjID[] ids,
            long sequenceNum,
            Lease lease)
            throws RemoteException
髒調用為(與包含在陣列 'ids' 中的物件標識符關聯的)遠端物件參考請求租借。該 'lease' 套件含了客戶機的唯一 VM 標識符 (VMID) 和一個請求的租期。針對從本地 VM 中導出的每個遠端物件,垃圾回收器維護了一個參考列表 - 保持對其參考的客戶機列表。如果授予租期,垃圾回收器則為 'ids' 指示的每個遠端物件添加客戶機 VMID 到參考列表。'sequenceNum' 參數是一個用於檢測和丟棄對垃圾回收器最近調用的序號。針對垃圾回收器的每次後續調用,該序號應該總是增加的。有些客戶機不能產生 VMID,因為 VMID 是一個套件含主機位址的通用唯一標識符,而有些客戶機由於安全限制無法獲取主機位址。在這種情況下,客戶機可以使用一個為 null 的 VMID,並且分佈式垃圾回收器為客戶機賦予一個 VMID。髒調用返回一個套件含所使用 VMID 和授予遠端參考租期(伺服器可能決定授予一個比客戶機所請求更小的租期)的 Lease 物件。客戶機必須使用垃圾回收器所使用的 VMID,以便當客戶機刪除遠端物件參考時進行相應的潔調用。 客戶機 VM 僅需為每個在 VM 中參考的遠端參考進行一次初始髒調用(即使它對同一個遠端物件持有多個參考)。客戶機還必須在租借過期之前進行一次髒調用,以便對遠端伺服器上的租借進行續期。當客戶機不再具有對特定遠端物件的任何參考時,它必須為與此參考關聯的物件 ID 安排一次潔調用。

參數:
ids - 調用客戶機進行參考時要標記的物件 ID
sequenceNum - 序號
lease - 請求的租期
返回:
授予的租期
拋出:
RemoteException - 如果髒調用失敗

clean

void clean(ObjID[] ids,
           long sequenceNum,
           VMID vmid,
           boolean strong)
           throws RemoteException
潔調用從 'ids' 指示的每個遠端物件的參考列表中移除 'vmid'。序號用於檢測最近的潔調用。如果參數 'strong' 為 true,則潔調用是一次失敗的髒調用的結果,因此,應該記住客戶機 'vmid' 的序號。

參數:
ids - 調用客戶機取消參考時要標記的物件 ID
sequenceNum - 序號
vmid - 客戶機 VMID
strong - 進行“強”潔調用
拋出:
RemoteException - 如果潔調用失敗

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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