[omniORB] Problem with inheritance

Thomas Lockhart lockhart at fourpalms.org
Wed Mar 10 07:21:53 GMT 2004


> I'm not sure, whether this is a CORBA question or an omniORB one.
> Anyway: I have a server with an interface A and a derived interface B.
> The server implements interface B.  I have a client, that does have
> only the IDL of interface A, so it does not know about interface B.
> The client narrows the server reference successfully to A, but fails
> on the first method invocation (that is, of course, part of interface
> A).  If the client is compiled with both A and B, everything works
> fine.  The server is omniORB 4.0.3 C++, the client is omniORB Python
> 2.3.  Is this behaviour according to the CORBA spec?  How can I solve
> the problem?

This seems like it should work; much of my code relies on inherited 
interfaces. If the client knows only about interface A, then the narrow 
operation may not actually communicate with the server since it can 
figure out the "is a" operation from the interface definition itself. So 
you may find when you increase the debugging levels on both sides that 
the failure is happening on the first transaction.

Not sure where to look after that; it may be helpful to know what error 
is actually happening.

hth

                       - Tom




More information about the omniORB-list mailing list