[omniORB] Still having activated object problems...
Marcus MacWilliam
marcusma@lsl.co.uk
Fri Oct 4 15:24:00 2002
All,
OK I am using OmniORB v4.0.0, NT v4.0 (SP5) and VC++ V5.
I am getting the following messages appearing, from OmniORB in
my server output;
omniORB: ERROR -- A servant has been deleted that is still activated.
id: root/oo-toolkit<637599744> (deactivating)
omniORB: ERROR -- A servant has been deleted that is still activated.
id: root/oo-toolkit<788594688> (deactivating)
omniORB: ERROR -- A servant has been deleted that is still activated.
id: root/oo-toolkit<1258356736> (deactivating)
However I have added code to check that objects are allready
deactivated before I delete them, thus;
// Sanity check, if the object is still active, deactivate it.
try
{
// Deactivate the object, using its unique object id.
m_poa->deactivate_object( m_pLastObject->m_object_id );
// Value to hold temporary string.
GOTH_VALUE temp = constructEntry(
m_pLastObject->getWrappedClassName(), m_lastObjectKey );
// Output that we had to deactivate object.
(void) goth_printf( goth_stdout, "DEBUG>\t\t\t\t\t[D] - Deactivating
object %s.\n", temp.string );
// Free the assigned temporary string.
(void) goth_value_free( temp, DT_STRING );
}
catch ( ... ) {}
// Delete the object.
delete m_pLastObject;
I do not get any messages telling me that an object was deactivated, and
my shutdown() method for my server is successfully called.
My problem is that orb->run() never finishes, after orb->shutdown(FALSE)
is called, as I would expect it to do.
Can anyone suggest any solutions as to how to get my server to shut down
correctly.
Cheers,
--
Marcus A.T MacWilliam, MSc, CEng, MBCS, BSc(Hons).
Senior Software Engineer, Laser-Scan Ltd, Cambridge, CB4 0FY.
Tel: +44 (0)1223 420414 x213. Mobile: +44 (0)7803 706597.
Fax: +44 (0)1223 420044. Web: http://www.laser-scan.co.uk/