[omniORB] unbind after orb->run fails
Duncan Grisby
dgrisby@uk.research.att.com
Thu, 26 Apr 2001 12:08:12 +0100
On Wednesday 25 April, "Olaf Meding" wrote:
> initializing ORB
> bind with the name service
> create servant
> orb->run()
> unbind name from name service // COMM_FAILURE here
I don't know why you are getting a COMM_FAILURE. Can you run your
program with command line arguments -ORBtraceLevel 10
-ORBtraceInvocations. That will print some debugging information,
including where the COMM_FAILURE came from.
That said, the code sequence you are trying is illegal according to
the CORBA specification. Section 4.2.3.4 of the 2.4.2 specification
says:
"Once an ORB has shutdown, only object reference management
operations (duplicate, release and is_nil) may be invoked on the
ORB or any object reference obtained from it. An application may
also invoke the destroy operation on the ORB itself. Invoking any
other operation will raise the BAD_INV_ORDER system exception with
the OMG minor code 4."
omniORB 3 does usually permit object reference operations after the
ORB has shutdown, which is why I'm surprised by your COMM_FAILURE.
omniORB 4 will properly raise an exception in this case.
Cheers,
Duncan.
--
-- Duncan Grisby \ Research Engineer --
-- AT&T Laboratories Cambridge --
-- http://www.uk.research.att.com/~dpg1 --