[Mono-list] Garbage-collecting a remoting singleton object in a service?
Robert Jordan
robertj at gmx.net
Fri Sep 1 10:05:36 EDT 2006
Andrés G. Aragoneses [ knocte ] wrote:
> I am interested in implementing a service (windows service in windows,
> and using mono-service on linux, I suppose) that hosts a singleton
> remoting object. As I have read on some docs, no leasing management is
> needed if no SAO/CAO hosting method is used (returning null in
> InitializeLifeTimeService method, as I will use a Singleton instance)
> but, how can I garbage-collect manually this server object on the
> OnStop() method of the service (so as to create a new instance again on
> the OnStart method)?
To achieve this, you have to register the singleton object manually.
Throw away the <service> entry from you server's remoting config
and use this code instead (in server's code, of course):
YourServerClass singleton;
OnStart ()
{
singleton = new YourServerClass ();
RemotingServices.Marshal (singleton, objectUri);
}
OnStop ()
{
RemotingServices.Disconnect (singleton);
// do what you called "garbage-collect manually".
}
where "objectUri" is the objectUri-attribute you previously
used in server's remoting config.
Robert
More information about the Mono-list
mailing list