[omniORB] Marshall exception -- message size limit exceeded
Luke Deller
ldeller at xplantechnology.com
Tue Feb 6 15:10:11 GMT 2007
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