dirty
Lease dirty(ObjID[] ids,
long sequenceNum,
Lease lease)
throws RemoteException
对于与数组“ids”中包含的对象标识符相关联的远程对象引用的脏调用请求。
“租赁”包含客户端的唯一VM标识符(VMID)和请求的租期。
对于在本地VM中导出的每个远程对象,垃圾收集器维护一个引用列表 - 一个包含对它的引用的客户端列表。
如果租赁被授予,垃圾收集器将客户端的VMID添加到“ids”中指示的每个远程对象的引用列表。
'sequenceNum'参数是一个序列号,用于检测和丢弃对垃圾回收器的延迟调用。
对于垃圾回收器的每次后续调用,序列号应始终增加。
某些客户端无法生成VMID,因为VMID是一个通用唯一标识符,其中包含由于安全限制而导致某些客户端无法获取的主机地址。
在这种情况下,客户端可以使用空值为VM的VMID,分布式垃圾回收器将为客户端分配VMID。
脏调用返回一个包含所使用的VMID和为远程引用授予的租赁期的租赁对象(服务器可能决定授予比客户端请求更小的租约期)。
客户端必须使用垃圾回收器使用的VMID,以便在客户端丢弃远程对象引用时进行相应的干净调用。
客户端VM只需要为虚拟机中引用的每个远程引用创建一个初始的脏调用(即使它具有对同一个远程对象的多个引用)。
客户还必须在此类租赁期满之前,对远程引用的租约进行更换。
当客户端不再具有对特定远程对象的引用时,它必须为与引用相关联的对象ID调度一个干净的调用。
-
参数
-
ids
- 通过调用客户机引用标记的对象的ID
-
sequenceNum
- 序列号
-
lease
- 请求租赁
-
结果
-
授予租赁
-
异常
-
RemoteException
- 如果脏调用失败