[omniORB] distant object destruction

Jean-Francois Tilman jean-francois.tilman@axlog.fr
Thu, 12 Oct 2000 11:13:09 +0200


David Riddoch wrote:
> 
> On Wed, 11 Oct 2000, bruno PATIN wrote:
> 
> > I'm trying to destroy a CORBA  object that has been referenced by
> > omniNames.
> 
> The existence of object references has no effect on the lifecycle of an
> object implementation.
> 
> > On a Linux box, I obtain the message :
> >
> > omniORB : ERROR - A servant has been deleted that is still activated
> > repo id :
> >         id : root<33554432>
> 
> This would imply that you have tried to 'delete' a servant.  You can only
> do this if:
>   1. it is not activated in any object adapter
>   2. _and_ it is not derived from RefCountServantBase
How to deactivate an object which has been implicitly activated ?
 
> > On a SGI box, I obtain a bus error and I am stopped in
> >
> > Portable::RefCountServantBase::~RefCountServantBase(),
> 
> This implies that your servant _is_ derived from RefCountServantBase.
> Therefore you must not ever try to delete it.  It will be deleted once you
> have deactivated it and the reference count has gone to zero.
Our object uses implicit activation and we don't know its POA. Must we
use the RootPOA ? to deactivate this object ? Or what must we do to know
the used POA ? How to obtain the ObjectID to call deactivate_object()
method ?

Thank you for your help.