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.

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.

Since I cannot reproduce it in an easy sample I did not post this up to
now. But it seems that others too have this problem.

For the the workaround right now is to increase the sockets send buffer so
this "fixes" to problem for me a the moment.

Jens Reimann

>
> Hi,
>
> last time I had a kind of "bug-problem" i posted on this list. Then I was
> asked to create an JIRA issue. Now I created the issue upfront and want to
> discuss it here:
>
> I've written a kind of RMI replacement uses MINA for network communication
> layer that is also able to transfer files very fast (without reflection
> and
> complex serialisation stuff). One of my customers faced a performance
> problem as soon as the receiving application part is running on Win7.
>
> I tried to create an reproducer:
> First I wrote a small test application using Java IO that simply transfers
> 1.000.000 bytes of random data from a client to a server. That's very
> fast.
> It doesn't matter if I try on localhost, or from WinXP->Win7 oder
> Win7->WinXP. Even Linux->Win7 is fast.
>
> Then I wrote the same kind of application with mina. No additional codec,
> nothing complex. I just transfer 100 IoBuffers with 10.000 bytes each from
> A to B.
> If I run the application on WinXP via localhost, it's very fast. <1sec
> runtime.
>
> If I run client and server in Win7, it's f*cking slow. Takes >1min to
> complete.
>
> Please find attached the test application.
> Just extract and run:
>
> java -cp MINASocketTransfer.jar;./lib/* minasockettransfer.Client <IP or
> Hostname of Server>
> java -cp MINASocketTransfer.jar;./lib/* minasockettransfer.Server
>
> The lib folder contains 2.0.0M6 and 2.0.0RC1. To switch from the one to
> the other version, simple "move" the tailing "_" to exclude the specified
> lib from classpath.
> Java-Source files are included in the MINASocketTransfer.jar ...
>
> I tested it with 2.0.0M6 and 2.0.0RC1. It's reproducible with both
> versions.
>
> -->
> https://issues.apache.org/jira/secure/attachment/12447232/MINASocketTransfer.zip
> <--
>
> Has anyone observed a similiar behavior with Win7?
>
>
> br,
> Alex
>
>
>


Reply via email to