[omniORB] Marshall exception -- message size limit exceeded

Philippe Selo omniorb-support at mytoaster.net
Tue Feb 6 10:17:45 GMT 2007


Luke,

thanks for the clarification, I missed Duncan's point about the two
buffer limits.

p.

On 2/5/07, Luke Deller <ldeller at xplantechnology.com> wrote:
> Philippe wrote:
> > Maybe I'm missing something.
> ...
> > Of course we can raise the max size limit on the client and
> > server but if the response is arbitrary large, there is
> > always a chance of exceeding the limit, so I think it can
> > be helpful for the client to "know" that it will never get
> > the answer, even if it retry.
>
> I understand that you want the client to know why the request failed
> when a message size limit is exceeded.  I'm saying that this can be
> achieved if the message size limit is exceeded in the right place: in
> the client as it receives the response, rather than in the server as it
> sends the response.
>
> Let me try to explain what I mean with two examples.
>
> Example 1:
> - giopMaxMsgSize is set to 4MB in server and client processes
> - your function tries to return a 50Mb result
>
> In this example, the server process will start sending the response to
> the client.  When the server realises that the response is >4Mb, it will
> abort sending the response, triggering a COMM_FAILURE.  Unfortunately as
> we have discussed there is no way for the server to raise a more useful
> exception at this stage because it has already started sending a
> response.  This outcome is not what you want.
>
> Example 2:
> - giopMaxRecvMsgSize is set to 4Mb in server and client processes
> - giopMaxSendMsgSize is set to 32Mb in server and client processes
> - your function tries to return a 50Mb result
>
> Again, the server process will start sending the response to the client.
> The server will happily keep sending past 4Mb of data, but when the
> client realises that the response it is receiving is >4Mb it will abort
> receiving the response, and raise a MARSHAL exception with a descriptive
> minor code.  This is the outcome that you want.
>
> The second example only works if somebody implements giopMaxRecvMsgSize
> and giopMaxRecvMsgSize settings in omniORB.
>
> Regards,
> Luke.
> **********************************************************************************************
> Important Note
> This email (including any attachments) contains information which is confidential and may be subject to legal privilege.  If you are not the intended recipient you must not use, distribute or copy this email.  If you have received this email in error please notify the
> sender immediately and delete this email. Any views expressed in this email are not necessarily the views of XPlan Technology.
>
> It is the duty of the recipient to virus scan and otherwise test the information provided before loading onto any computer system.
> Xplan Technology does not warrant that the information is free of a virus or any other defect or error.
> **********************************************************************************************
>



More information about the omniORB-list mailing list