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