The complete exception logs like follows:

WARNING: Read buffer flooded - session: 433071408 / 65536 bytes,
service: 433586448 / 67108864 bytes, global: 433586448 / 134217728
bytes.
Aug 4, 2008 2:23:36 PM org.apache.mina.filter.traffic.ReadThrottleFilter
log
WARNING: Read buffer flooded - session: 433408416 / 65536 bytes,
service: 433658336 / 67108864 bytes, global: 433658336 / 134217728
bytes.
Aug 4, 2008 2:23:36 PM org.apache.mina.filter.traffic.ReadThrottleFilter
log
WARNING: Read buffer flooded - session: 295520 / 65536 bytes, service:
433703768 / 67108864 bytes, global: 433703768 / 134217728 bytes.
Aug 4, 2008 2:23:41 PM org.apache.mina.filter.traffic.ReadThrottleFilter
log
WARNING: Read buffer flooded - session: 434435736 / 65536 bytes,
service: 435337336 / 67108864 bytes, global: 435337176 / 134217728
bytes.
Aug 4, 2008 2:23:44 PM org.apache.mina.filter.traffic.ReadThrottleFilter
log
WARNING: Read buffer flooded - session: 503360 / 65536 bytes, service:
435082904 / 67108864 bytes, global: 435082904 / 134217728 bytes.
Aug 4, 2008 2:23:47 PM org.apache.mina.filter.traffic.ReadThrottleFilter
log
WARNING: Read buffer flooded - session: 434579712 / 65536 bytes,
service: 435462112 / 67108864 bytes, global: 435462592 / 134217728
bytes.
Aug 4, 2008 2:23:55 PM org.apache.mina.common.DefaultExceptionMonitor
exceptionCaught
WARNING: Unexpected exception.
java.lang.OutOfMemoryError: Java heap space
        at java.util.HashMap.newKeyIterator(HashMap.java:889)
        at java.util.HashMap$KeySet.iterator(HashMap.java:921)
        at java.util.HashSet.iterator(HashSet.java:154)
        at
sun.nio.ch.SelectorImpl.processDeregisterQueue(SelectorImpl.java:127)
        at
sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:60)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
        at
org.apache.mina.transport.socket.nio.NioProcessor.select(NioProcessor.ja
va:65)
        at
org.apache.mina.common.AbstractPollingIoProcessor$Worker.run(AbstractPol
lingIoProcessor.java:672)
        at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.j
ava:51)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
r.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:675)
        at java.lang.Thread.run(Thread.java:595)
Aug 4, 2008 2:23:51 PM org.apache.mina.filter.traffic.ReadThrottleFilter
log
WARNING: Read buffer flooded - session: 435391656 / 65536 bytes,
service: 436694856 / 67108864 bytes, global: 436694856 / 134217728
bytes.
Aug 4, 2008 2:23:55 PM org.apache.mina.common.DefaultExceptionMonitor
exceptionCaught
WARNING: Unexpected exception.
java.lang.OutOfMemoryError: Java heap space
        at sun.nio.ch.Util.releaseTemporaryDirectBuffer(Util.java:67)
        at sun.nio.ch.IOUtil.write(IOUtil.java:82)
        at
sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:302)
        at
org.apache.mina.transport.socket.nio.NioProcessor.write(NioProcessor.jav
a:162)
        at
org.apache.mina.transport.socket.nio.NioProcessor.write(NioProcessor.jav
a:41)
        at
org.apache.mina.common.AbstractPollingIoProcessor.writeBuffer(AbstractPo
llingIoProcessor.java:567)
        at
org.apache.mina.common.AbstractPollingIoProcessor.flushNow(AbstractPolli
ngIoProcessor.java:528)
        at
org.apache.mina.common.AbstractPollingIoProcessor.flush(AbstractPollingI
oProcessor.java:469)
        at
org.apache.mina.common.AbstractPollingIoProcessor.access$500(AbstractPol
lingIoProcessor.java:43)
        at
org.apache.mina.common.AbstractPollingIoProcessor$Worker.run(AbstractPol
lingIoProcessor.java:681)
        at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.j
ava:51)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
r.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:675)
        at java.lang.Thread.run(Thread.java:595)
Aug 4, 2008 2:23:55 PM org.apache.mina.filter.traffic.ReadThrottleFilter
log

BR
anderson

-----Original Message-----
From: Wenrui Guo [mailto:[EMAIL PROTECTED] 
Sent: Monday, August 04, 2008 2:13 PM
To: [email protected]
Subject: OutOfMemoryError Java heap space after using ReadThrottleFilter

Hi, all

Since I want to control incoming messages retrieved from SMSC, I decided
to use ReadThrottleFilter to block excessive messages.

The code snippet listed as below:

        // Executor used to control read throttle
        private ScheduledExecutorService throttleExecutor = Executors
                        .newScheduledThreadPool(1);

                connector = new NioSocketConnector();
                connector.setConnectTimeout(connectTimeout);
                connector.getFilterChain().addLast("codec",
                                new ProtocolCodecFilter(new
SMPPCodecFactory(false)));
                connector.getFilterChain().addLast("exec", new
ExecutorFilter());
                connector.getFilterChain().addLast("throttle",
                                new
ReadThrottleFilter(throttleExecutor));


But under high workload, the system still throw such exception:

Exception in thread "pool-5-thread-3" java.lang.OutOfMemoryError: Java
heap space

Who can tell me how can I achieve flow control aim? Does
readThrottleFilter can't limit message flow?

BR
andeson

Reply via email to