I captured the exception message.

org.apache.mina.common.support.DefaultExceptionMonitor exceptionCaught
Unexpected exception.
java.lang.OutOfMemoryError: Direct buffer memory
at java.nio.Bits.reserveMemory
at java.nio.DirectByteBuffer.<init>
at java.nio.ByteBuffer.allocateDirect
at sun.nio.ch.Util.getTemporaryDirectBuffer
at sun.nio.ch.IOUtil.write
at sun.nio.ch.SocketChannelImpl.write
at org.apache.mina.transport.socket.nio.SocketIOProcessor.doFlush<
SocketIoProcessor.java:428>
at org.apache.mina.transport.socket.nio.SocketIOProcessor.doFlush<
SocketIoProcessor.java:366>
at org.apache.mina.transport.socket.nio.SocketIOProcessor.access$600<
SocketIoProcessor.java:44>
at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run<
SocketIoProcessor.java:509>
at org.apache.mina.util.NamePreservingRunnable.run<
NamePreservingRunnable.java:43>
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
at java.util.concurrect.ThreadPoolExecutor$Worker.run
at java.lang.Thread.run


On 7/20/07, Luis Neves <[EMAIL PROTECTED]> wrote:

Hi,

mat wrote:
> My server sometimes faced "OOM" problem. (I couldn't profile it since
TPTP
> crashed my server before OOM occured). I didn't see major memory leak
when
> profiling. Therefore, I believe OOM happens when READ or WRITE operation
> can't handle the incoming messages or outgoing messages. (However my
> incoming messages normally 20 * 512bytes/sec, NOT too fast, right?).
Last
> time i saw my server memory usage is over 600MB in windows XP.

Your code is broken ... the question is where. Mina can handle that amount
of
messages without breaking a sweat.
Do you have some kind of heavy processing in the receiving end that delays
the
acceptance of messages?

Did you try to use the ReadThrottleFilter?
How are you doing you writes?
A simple "iosession.write()" ?
Did you try something like:
WriteFuture wf = iosession.write();
wf.join();

Can we see the code of your Encoder/Decoder?


--
Luis Neves

Reply via email to