[omniORB] Language incompatibilities ?

Gert Steenssens gsteenss@eps.agfa.be
Thu, 30 Jul 1998 10:46:36 +0200


Hi, 


I've been sending some messages to the omniorb mailing list these last couple of
days regarding problems with the use of Any's.
Meanwhile this seems to be fixed, as far as the actual use and marshalling of
them is concerned at the C++ server-side.
When I use Any's with a C++ client and C++ server, it works great,
I can put stuff in and get it out without problems.

The problem starts when I want to send the Any information to a Java client
application using the OrbixWeb ORB.
All goes well when the client gets the Any, but when he wants to 
extract the type I put in at the server-side, a bad TypeCode exception is
generated, allthough as far as we can see, the typecode at both side is
'tk_sequence' representing a sequence of DictionaryElements (as defined in the
IDL I sent you earlier).

The client program uses OrbixWeb 3.0 (update 4), Java JDK 1.1.5 and when tested
with a Java client/server program, the Any can be sent and extracted without
problems.

So it seems to us that an incompatibility between the two ORBs or the
programming languages is causing the problem.
Do you know of any known problems when using omniORB with OrbixWeb (or other
Java ORBs) ? 
This may be of importance when we decide which ORB to use on the client-side...

I was not sure if this problem is on-topic for the omniorb list, so I just sent
it to you directly first, if you think it is relevant to other omniorb
developers, feel free to forward it...
Could you please also CC your reply to Jamie Reid, as he is the developer
working on the Java client with me, and needs to be informed of possible
solutions.
I've attached his email regarding the problems at the the client-side for your
reference.


Thx for your trouble...


=-=-=-=-=-=-=-=


Subject:  IDL problem
   Date:  Thu, 30 Jul 1998 10:40:07 +0200
   From:  "Jamie Reid" <jreid@eps.agfa.be>
     To:  Gert Steenssens <gsteenss@eps.agfa.be>




We throw the following exception:

CORBA.BAD_TYPECODE : Minor=0 Status=2

This occuts when the two typecode of the Any are compared in the extract
method.

The typecode form the any supplied from the OMNIOrb server is:

_kind = 15 ( a structure )
_id = "IDL:Dict/CORBADictionaryElement:1.0"
_name = "CORBADictionaryElement"
_members = { (org.omg.CORBA.StructMember)0xf43760,
(org.omg.CORBA.StructMember)0xf42c20 }

The static  typecode form the any supplied from the Orbix helper class
is:

_kind = 15 ( a structure )
_id = "IDL:Dict/CORBADictionaryElement:1.0"
_name = "CORBADictionaryElement"
_members = { (org.omg.CORBA.StructMember)0xf441b8,
(org.omg.CORBA.StructMember)0xf441d0 }