Thanks Pete: this seems to be working.

peter royal wrote:
On Jun 28, 2007, at 8:00 AM, Chris Chalmers wrote:
I have a Mina server that simply pumps data through (based on the Mina Proxy example) - however, when sending large files (500Mb+), the data is read in quickly, but written slowly (the target uses a blocking Socket read); this causes the server's memory usage to increase very quickly. I have tried to use the ReadThrottleFilterBuilder in combination with the WriteBufferLimitFilterBuilder (from http://issues.apache.org/jira/browse/DIRMINA-302), but the best I can get is 226Mb memory usage when setting the read/write setMaximumConnectionBufferSize to 50000.

Is there any way that I can force Mina sessions to block incoming messages instead? The source code explicitly sets the SocketChannels to non-blocking and I can't see any way to change this using the API.
Alternatively is there a better method that I am overlooking?

IoSession.suspendRead / resumeRead ... you can use that to keep MINA from reading the data, just turn it on/off in concert with your writing.

-pete



Reply via email to