[omniORB] FW: deleting active servants

Pánczél Levente Levente.Panczel at compuworx.hu
Fri Nov 28 13:32:41 GMT 2003


-----Original Message-----
From:	Pánczél Levente
Sent:	Fri 2003-11-28 12:56
To:	OmniORB support
Cc:	
Subject:	deleting active servants
Hi

(I'm using OmniORB4 on Suse Linux 8 on an Intel __x86__ pc)
I alway get the omniORB error message
omniORB ERROR -- A servant has been deleted that is still activated.
      id: root<...> (active)
I get this message thought ALL destructors call POA::deactivate_object with the object's id.
Worse: if a servant is not (active) but (deactivating) then omniORB crashes the whole server app with a segfault.
Am I right that the error message is complaining about a deleted object on which POA::deactivate_object was not called?

Thanks
Panczel, Levente

---------------------------------------------------------------------------

Could it be that my servants are not deactivated? I use the following code fragment to deactivate objects:
PortableServer::POA_ptr pPOA;
PortableServer::ObjectId_var SelfID;
...
pPOA->deactivate_object(SelfID);
When compiling the last line, the compiler (g++) says:
" TermObj.cpp:215: warning: choosing `PortableServer::ObjectId_var::operator PortableServer::ObjectId &()' over `PortableServer::ObjectId_var::operator const PortableServer::ObjectId &() const' for conversion from `PortableServer::ObjectId_var' to `const PortableServer::ObjectId &' because conversion sequence for the argument is better"

Isn't this compiling to something seriously wrong that prohibits the deactivation of my objects???
Is there any way to synchronize on the deactivation of an object (e.g. delay the deletion until deactivation is done) if object deactivation is asynchronous?



More information about the omniORB-list mailing list