[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference pamsrc::objectbroker

Title:ObjectBroker - BEA Systems' CORBA
Notice:See note 3 for kits; note 5 for training; note 1134 for releases
Moderator:TLE::PARODId
Created:Tue Jul 11 1989
Last Modified:Thu Jun 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:1413
Total number of notes:6391

1364.0. "Marshalling error for long sequence?" by TAV02::NITSAN (One side will make you larger) Sun Feb 09 1997 15:38

A customer has ObjectBroker 2.6 with Windows 95 client talking to
a VAX/OpenVMS server. The server is a specific instance (unshared).

The client application on the PC attempts to pass a "sequence of
strings" as an argument to a method on the server. Each string in
the sequence is of length 80.

Whenever the sequence is of 16 lines or less, everything seems to
work fine. But, when the sequence is longer than 16 lines they get
the following error on the PC (client) side:

    OBB_INV_MRSHERR,
      internal software error occurred while marshalling data
      ... Please submit an SPR.

In one occasion (not reproducible) they also got the message:

    OBB_INV_MRSHEXCBUF, exceeded marshalling buffer ...

On the PC they use a Visual Basic program which calls OBB via
a C/C++ layer. They noticed the following strange behavior in
their program:

 - If/when they initialize the above sequence to more than
   16 lines, but actually use less, they already get the above
   error.

 - If/when they allocate exactly 17 lines, then the client
   crashes even before returning the bad status from OBB.

Of-ocurse this may suggest some bug in the application, or maybe
shed some light on some other probable cause of the problem.

Any input is welcome,

-- Thank you,
-- Nitsan

T.RTitleUserPersonal
Name
DateLines
1364.1REQUE::BOWERPeter Bower, ObjectBrokerMon Feb 10 1997 11:237
    Can you post the idl for the operation so we can see the
    exact signature ? 
    
    The problem is that OBB marshalling walks the input arguments to 
    determine the length of the buffer in which to marshall the data. It 
    appears in this case that the calculation is incorrect.