You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Mikhail Markov <mi...@gmail.com> on 2006/08/24 11:52:02 UTC

Re: [general][DGC] Java Distributed Garbage Collection in RMI

[let's add prefix to the subject line]

Hi Vikram,

I've attached test.txt file containing all necessary java sources as well as
test output on Harmony (actually, it's the same on RMI also).

Regards,
Mikhail

On 8/23/06, FaeLLe <mr...@gmail.com> wrote:
>
> Hello Mikhail,
>
> Thanks for the reply !
>
> However your email only contained the attachement of the output do not see
> the modified sources. If you could reply with them it would be nice.
>
> Thanks,
>
> - Vikram Mohan
>
> On 8/23/06, Mikhail Markov <mi...@gmail.com> wrote:
> >
> > Hi Vikram,
> >
> > First of all, what rmi module are you using: rmi or rmi2? rmi module
> does
> > not support sun.* properties. Instead it supports a parallel structure
> of
> > harmony.* ones.
> >
> > About your question about DGC (i'll use rmi module as an example):
> > Remote object (on server side!) could be collected if all the conditions
> > below are met:
> > 1) (Of course) no hard references in local VM
> > 2) no remote references from from other VMs
> > 3) no in-progress remoted calls
> >
> > Here is one of the simplest test scenarious showing how to check these
> > conditions:
> >
> > - run rmi-registry in separate VM
> > - export remote object, register it in the registry and remove hard
> > references to this object
> > - kill rmi-registry VM
> > - wait for a period of time longer than the one specified by "
> > java.rmi.dgc.leaseValue" property (the default is 10 min)
> > - if remote object implements Unreferenced then it's unreferenced()
> method
> > should be called here
> > - run GC - the object should be collected and it's finalize() method
> > should be called
> >
> > I think your code is doing a lot of extra staff so i've modified it to
> > implement this test scenarious (see attachment).
> > I did not use ProcessBuilder class as Harmony does not have it yet. The
> > output of the test is also attached.
> >
> > Hope this helps.
> >
> > Regards, Mikhail
> > Intel MIddleware Products Division
> >
> >
> >
> > >  > Been experimenting with the DGC interface of Java RMI and as far as
> I
> > > have understood there is no way to make a remote object be garbage
> collected
> > > other than invoke System.gc() and let it be collected over time.
> > > >
> > > > I however notice that the internal calls can be tracked by setting
> the
> > > following system properties,
> > > >
> > > >         System.setProperty("java.rmi.server.logCalls", "true");
> > > >         System.setProperty ("sun.rmi.dgc.logLevel", "VERBOSE");
> > > >         System.setProperty("sun.rmi.dgc.logCalls", "true");
> > > >
> > > > What I was wondering is if you had any suggestions on how to
> actually
> > > ensure that the remote object has been collected. I tried placing
> > > System.out.println() statements in the finalize() and unreferenced()
> > > methods (the client also implements the Unreferenced interface)
> however it
> > > seems to generate no such output.
> > > >
> > > > Neither do the internal rmi logs that should be displayed in output
> in
> > > verbose mode show any indication of this happening.
> > > >
> > > > I have attached the code if you would be willing to examine it and
> let
> > > me know what I am not doing correctly. Ps. I have included them in zip
> > > format and as Java sources whichever is convinient for you.
> > > >
> > > > TestDistributedGarbageCollection.java is the RMI server and the
> > > EchoClient.java is the RMI client.
> > > >
> > > > Regards,
> > > >
> > > > - Vikram Mohan
> > >
> >
> > ---------------------------------------------------------------------
> > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> >
> >
> >
>
>
> --
> www.FaeLLe.com
> www.VikramMohan.com
>
>