2016-07-08 20 views
0

Ich habe mich gefragt, ob ein Remoteobjekt, das als Parameter in einem Remotemethodenaufruf übergeben wird, explizit exportiert werden muss, wenn es nicht mehr benötigt wird. Zum Beispiel: Ich habe ein Online-Spiel, wenn der Client den GameServer (in einer RMI-Registry gebunden) nach einem Spiel fragt, gibt der Server einen GameHandler als Remote-Objekt an den Client zurück. Wenn das Spiel vorbei ist und der GameHandler nicht mehr aktiv sein muss, muss ich dann UnicastRemoteObject.unexportObject(this, false); anrufen? Ich mache es, aber manchmal bekomme ich eine NoSuchObjectException.Nicht exportierende Remoteobjekte, die als Argumente im Remotemethodenaufruf übergeben wurden

Antwort

0

Es wird automatisch über DGC und lokalen GC ausgedruckt, wenn keine entfernten oder lokalen Referenzen vorhanden sind. Wenn Sie wissen möchten, wann DGC eingeschaltet ist, implementieren Sie die Unreferenced Schnittstelle.