On 6/17/10 9:07 AM, Jens Reimann wrote:
I actually have and still am not sure what the cause is.

I have an application that uses plain TCP Client/Server communication and
sends a lot of small messages trough a custom Codec which converts it to
IoBuffers.

This all works fine on MacOS and Linux but on some (not all) Windows XP
machines there is a problem that data that passed through the protocol
codec does not get written to the socket.

Sounds liek you didn't disabled the Naggle algorithm. You have to set the TcpNoDelay flag by calling the setTcpNoDelay( true ) method.
Actually I figured out that it has to do with the sockets send buffer
size. If Mina hits the sockets send buffer the socket seems not to be
triggered when then send buffer has room again. Since we do perform
periodical pings in our protocol the socket is triggered from this ping
and fills the send buffer again. This causes mina outbound buffer to be
slowly flushed to the sockets send buffer.
You can also increase the send buffer size to increase the througput, but this has to be done before the connection is initialized.


--
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com


Reply via email to