[omniORB] limit in size of data passed between processes?

Matt Goodall mgg@isotek.co.uk
Fri, 05 Nov 1999 17:41:14 +0000


Firstly, if this has been reported before and I've missed it in the
mailing list then sorry ...

If you try to return a chunk of data of more than ~2MB the client gets a
CORBA:MARSHAL exception.

My test interface is:

interface Test {

    struct Data {
        char buf[1024];
    };

    typedef sequence<Data> DataSeq;
    DataSeq getData();

    typedef octet BigBlock[1024*1023*2];
    BigBlock getBigBlock();
};

In the server's getData() implementation you can make the sequence
length no more than 2047. If you change the BigBlock size to
[1024*1024*2] then getBigBlock() fails.

I'm using the 3.0 CVS release, updated today on RedHat Linux 6.1. The
2.8.0 release does the same.

I've tried exactly the same setup using mico (another CORBA system) and
that works ok. In fact I've mixed and matched the mico and omniORB
clients and servers and if an omniORB program is used it fails.

Any ideas?

Cheers, Matt.

-- 
Matt Goodall             |  Isotek Electronics Ltd
email: mgg@isotek.co.uk  |  Claro House, Servia Road
Tel: +44 113 2343202     |  Leeds, LS7 1NL
Fax: +44 113 2342918     |  England