[omniORB] remote _is_a() behaviour
Duncan Grisby
dgrisby@uk.research.att.com
Fri, 11 Jan 2002 10:33:56 +0000
On Thursday 10 January, Huw Rogers wrote:
> I'm testing remote _is_a invocations to
> omniORB3 from Perl CORBA::ORBit.
>
> This is handled by omniServant.cc, 81 - 138.
>
> Shouldn't objref->_is_a("IDL:CORBA/Object:1.0")
> always return true? omniORB returns false if
> the passed string is not exactly the most
> derived repo. ID of the interface.
_is_a("IDL:CORBA/Object:1.0") should always return false, since that
isn't the repository id of base CORBA::Object. The correct id is
"IDL:omg.org/CORBA/Object:1.0". omniORB's _is_a does return true for
that.
> interface A { };
> interface B : A { };
>
> B_ptr b;
>
> b->_is_a("IDL:A:1.0") should also return true.
As long a b is initialised to a genuine object with interface B, it
should, and it does for me.
Try running your omniORB server with command line arguments
-ORBtraceLevel 30. That will print out details of the IIOP traffic,
and lots of other stuff, to help you see what's going on.
Cheers,
Duncan.
--
-- Duncan Grisby \ Research Engineer --
-- AT&T Laboratories Cambridge --
-- http://www.uk.research.att.com/~dpg1 --