Archived
This forum has been archived. Please start a new discussion on GitHub.
about the size of message
In my project, I should pass a parameter from client to server as a sequence, but I do not know the possible size coz it depends on the user's mind, so I set the Ice_MessageMaxSize as 1024000, but the problem is still, when client pass a message which size about 5M, before the method is be invoked on the server side, the error on client side show as "run time error" without more info, how should I do next? thanks!!
0
Comments
-
Note that it's Ice.MessageSizeMax, not Ice_MessageSizeMax. You need to set this for both your client and your server.
As for the run time error, you should find out what causes the problem using a debugger. Perhaps it's an uncaught Ice exception?0 -
sorry, my means is Ice.MessageSizeMax too.
of course I set it both client and server, actually, before I not set it, Ice throw an exception of MessageSizeMax, but after I set it both client and server, when I debug the client, the debugger stopped a while when invoke the method, and then show the run time error, the server do nothing , it means the server side do not receive any message?0 -
We need to know exactly what run-time error you are getting. Please attach a debugger to your process and get a stack trace for the error. (Is the client written in C++ or in Java?) Also, please run the client and server with --Ice.Trace.Protocol=3 -- this may help to shed light on the problem.
Cheers,
Michi.0 -
client was wrote in c++ , thanks first!
=================================================
ice definition:
sequence<string> DAOIceParameters;
=====================================================================
source code:
DAOIceParameters m_Vparam;
proxy->SetParameters(m_token,ObjectType,m_Vparam);
=====================================================================
server side
[ Protocol: received request
message type = 0 (request)
compression status = 1 (compression not used, supported by sender)
message size = 55
request id = 12
identity = conn
facet =
operation = SetBufferSize
idempotent = false
context = ]
[ Protocol: sending reply
message type = 2 (reply)
compression status = 1 (compression not used, supported by sender)
message size = 33
request id = 12
reply status = 0 (ok) ]
[ Network: sent 33 of 33 bytes via tcp
local address = 129.0.3.88:10000
remote address = 129.0.3.88:1163 ]
[ Network: received 14 of 14 bytes via tcp
local address = 129.0.3.88:10000
remote address = 129.0.3.88:1163 ]
[ Network: received 55 of 55 bytes via tcp
local address = 129.0.3.88:10000
remote address = 129.0.3.88:1163 ]
[ Protocol: received request
message type = 0 (request)
compression status = 1 (compression not used, supported by sender)
message size = 69
request id = 13
identity = conn
facet =
operation = SetParameterHead
idempotent = false
context = ]
[ Protocol: sending reply
message type = 2 (reply)
compression status = 1 (compression not used, supported by sender)
message size = 33
request id = 13
reply status = 0 (ok) ]
[ Network: sent 33 of 33 bytes via tcp
local address = 129.0.3.88:10000
remote address = 129.0.3.88:1163 ]
=====================================================================
client side
[ Protocol: sending request
message type = 0 (request)
compression status = 1 (compression not used, supported by sender)
message size = 55
request id = 12
identity = conn
facet =
operation = SetBufferSize
idempotent = false
context = ]
[ Network: sent 55 of 55 bytes via tcp
local address = 129.0.3.88:1163
remote address = 129.0.3.88:10000 ]
[ Network: received 14 of 14 bytes via tcp
local address = 129.0.3.88:1163
remote address = 129.0.3.88:10000 ]
[ Network: received 19 of 19 bytes via tcp
local address = 129.0.3.88:1163
remote address = 129.0.3.88:10000 ]
[ Protocol: received reply
message type = 2 (reply)
compression status = 1 (compression not used, supported by sender)
message size = 33
request id = 12
reply status = 0 (ok) ]
[ Protocol: sending request
message type = 0 (request)
compression status = 1 (compression not used, supported by sender)
message size = 69
request id = 13
identity = conn
facet =
operation = SetParameterHead
idempotent = false
context = ]
[ Network: sent 69 of 69 bytes via tcp
local address = 129.0.3.88:1163
remote address = 129.0.3.88:10000 ]
[ Network: received 14 of 14 bytes via tcp
local address = 129.0.3.88:1163
remote address = 129.0.3.88:10000 ]
[ Network: received 19 of 19 bytes via tcp
local address = 129.0.3.88:1163
remote address = 129.0.3.88:10000 ]
[ Protocol: received reply
message type = 2 (reply)
compression status = 1 (compression not used, supported by sender)
message size = 33
request id = 13
reply status = 0 (ok) ]
=====================================================================
stack info
KERNEL32! 77e7e8bb()
MSVCRTD! _CxxThrowException@8 + 57 bytes
ICE11D! 0170b31a()
ICE11D! 0175b1fa()
IceProxy::DAOIceConnection::SetParameters(int 31247512, char 0, const _STL::vector<_STL::basic_string<char,_STL::char_traits<char>,_STL::allocator<char> >,_STL::allocator<_STL::basic_string<char,_STL::char_traits<char>,_STL::allocator<char> > > > & {...}, ...) line 2510 + 29 bytes
CIce_Recordset::Execute(int 0) line 326 + 85 bytes
CIce_Recordset::AddParamRecord() line 268 + 15 bytes
t_insert_longraw_data() line 206 + 13 bytes
main(int 1, char * * 0x01391590) line 525
mainCRTStartup() line 206 + 25 bytes
KERNEL32! 77e7ca90()
====================================================================0 -
If you could provide the same stack trace after installing the PDB files, it would be even more useful as we would get line numbers for:
ICE11D! 0170b31a()
ICE11D! 0175b1fa()
It looks like you're using Ice 1.1; any reason not to upgrade to a more recent version? Which C++ compiler do you use?
Cheers,
Bernard0 -
The Ice.MessageSizeMax property has been added in Ice 1.2. You are still using 1.1, which explains why this property doesn't do anything for you. You should upgrade to the latest version and try again.0
-
After upgrade to 1.4, it is ok, thanks all of you.
another question is how to improve the speed of data transfer by ICE ?
in my programme, it should transfer lots of data between server and client, the possible size is about 10M, then how to do improve the speed of transfer ? thanks more.0 -
There are no options to somehow magically increase the speed of Ice, other than compiling with optimization. You can measure throughput with the demo in demo/Ice/throughput.0