[omniORB] interoperability problems with OpenORB

Renzo Tomaselli renzo.tomaselli at tecnotp.it
Fri Jul 2 21:06:57 BST 2004


Hi all,
    we are experiencing interoperability problems between OmniORB 4.03 and
java OpenORB while in the same process.
They appear as GIOP 1.2 protocol errors, raised from
giopImpl12::inputQueueMessage while unmarshalling an octet sequence.
Basically, there is a complaint about a GIOP_S being fully buffered while
fetching more data. Its internal status is:

 pd_inputFullyBuffered = true
 pd_inputMatchedId = true
 pd_inputExpectAnotherFragment = true
 pd_inputFragmentToCome = 0
 pd_inputMessageSize = 120000

The expected input sequence is 465664 bytes, and the problem arises after
fetching 119580 bytes.
This problem seems to appear at random, since it occurs after some
successful rounds in a loop where 8 concurrent threads pump test data to an
in-process library managed by OmniORB in C++. When moving this library to a
separate process the problem seems to disappear.
While apparently random in time, it occurs always when a long message in
involved. This message is nearly 4.5 Megabytes, distributed along several
nested <name, any> sequences. Unmarshalling stops always at the same
sequence point while fetching the last chunk of 465 kb and I had the feeling
that - while expecting another fragment - this fighted against
inputFullyBuffered being true.
While I know nothing about OpenORB (we always use to play with OmniORB since
many years), I wonder if anybody has suggestions/experience to share about
this trouble.
Thanks,

Renzo Tomaselli




More information about the omniORB-list mailing list