transfering images: maximum marshaling size?

Tom Kelly thomas.kelly@queens.oxford.ac.uk
Thu, 26 Feb 1998 09:01:58 +0000 (GMT)


> I've been playing around with transferring images through CORBA
> interfaces in OmniORB 2.4.  In order to test the speed, I was sending
> images of various sizes.
> 
> The results have been reasonably good, as long as the image doesn't get
> too large. For example, a 1200 x 1200 x 8bpp image is transferred in
> 0.542 seconds between a server and client in different processes on the
> same system.  This is the time from when the request is made to when the
> data is received and unpacked into the native (non CORBA) image format.
> 
> But, changing to an image of size 1500 x 1500 x 8bpp, I get an exception
> IDL:omg.org/CORBA/MARSHAL   (it's a CORBA::SystemException).  I'm not
> sure where exactly this is being thrown...  Is there a maximum size for
> OmniORB marshaled objects, and where can I find information about this?

I've done something like this is the past. There is a maximum size placed
on GIOP message sizes. Page 35 of the omniORB manaul gives you the
information you need. Quoting: 

"omniORB2 sets a limit on the GIOP message size that can be sent or
received. The value can be obtained by calling:
	size_t omniORB::MaxMessageSize();
and can be changed by:
 	void omniORB::MaxMessageSize(size_t newvalue);
The exact value is somewhat arbitrary. The reason such a limit exists is
to provide some way to protect the server side from resource exhaustion.
Think about the case when the server receives a rogue GIOP(IIOP) request
message that contains a sequence length field set to 2**31. With a
reasonable message size limit, the server can reject this rogue message
straight away."

Just use the MaxMessageSize function to set a higher GIOP message size
limit. 

Hope that Helps,

Tom