river-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Firmstone <j...@zeus.net.au>
Subject Re: strange problem with DGC
Date Fri, 05 Mar 2010 23:58:11 GMT
Sim IJskes - QCG wrote:
> Peter Firmstone wrote:
>> Note that when you export your service it's proxy is stored in 
>> Marshalled form until the client discovers it, while in Marshalled form 
>
> Eh, that isn't exactly true is it? After export, you get a Proxy with 
> a reference to a BasicInvocationHandler with a reference to a 
> BasicObjectEndpoint with a reference to a ImplContainer with a 
> reference to your service.
>
> As long as you keep the reference to the exported service, the service 
> is 'strongly reachable' from the exported service.
>
> The problem starts when you marshall it in 
> BasicInvocationDispatcher.marshalReturn(), and the reply has enough 
> latency to arive 'late' at the client side.
>
> In this window the service becomes 'weakly reachable' and if the GC 
> kicks in before DgcServer.dirty the object gets finalized.

Keep a strong reference, to the service (not the proxy), long enough to 
prevent it from being garbage collected.  Sorry, don't know enough about 
your implementation to make any other suggestions.

- Peter.


Mime
View raw message