CONTENTS | PREV | NEXT | Java Remote Method Invocation |
package java.rmi.server; public interface Unreferenced { public void unreferenced(); }
The java.rmi.server.Unreferenced interface allows a server object to receive notification that there are no clients holding remote references to it. The distributed garbage collection mechanism maintains for each remote object, the set of client virtual machines that hold references that remote object. As long as some client holds a remote reference to the remote object, the RMI runtime keeps a local reference to the remote object. When the "reference" set becomes empty, theUnreferenced.unreferenced
method is invoked (if the server implements the Unreferenced interface). A remote object is not required to support the Unreferenced interface.As long as some local reference to the remote object exists it may be passed in remote calls or returned to clients. The process that receives the reference is added to the reference set for the remote object. When the reference set becomes empty, the remote object's
unreferenced
method will be invoked. As such, theUnreferenced
method can be called more than once (each time the set is newly emptied). Remote objects are only collected when no more references, either local references or those held by clients, still exist.