I see now that this is the expected behavior in Mina 1.x. We can't use Mina 2.0/UnorderedExecutorFilter as we cannot use Java 1.5 in our environment. Has anyone published a custom version of an unordered ExecutorFilter for Java 1.4? Otherwise I guess we'll just write our own.
Thanks, Matt On Tue, Mar 11, 2008 at 2:11 PM, Matt Mehalso <[EMAIL PROTECTED]> wrote: > All - > > We are having some strange behavior with our MINA 1.0.9-based server > during load test. I may be misinterpreting the purpose of an executor in > the filter chain - please let me know if I have an incorrect understanding > of its usage. > > Our server is a pretty simple asynchronous request/response server where > multiple requests may come in all at once and be answered in any order. > > We have an Executor filter set up at the end of our filter chain to > process requests concurrently. However, when under load, our server is > processing all requests in order, in the same thread. For example, please > see the log below: > > [SocketAcceptorIoProcessor-0.0] INFO - [/127.0.0.1:2824] RECEIVED: > n0002..<omitted for readability> > [SocketAcceptorIoProcessor-0.0] INFO - [/127.0.0.1:2824] RECEIVED: > n0003..<omitted> > [SocketAcceptorIoProcessor-0.0] INFO - [/127.0.0.1:2824] RECEIVED: > n0004..<omitted> > [SocketAcceptorIoProcessor-0.0] INFO - [/127.0.0.1:2824] RECEIVED: > n0005..<omitted> > > [pool-4-thread-1] INFO - [/127.0.0.1:2824] WRITE: 0001E24 > ...<SENT's omitted for readability> > [pool-4-thread-1] INFO - [/127.0.0.1:2824] WRITE: 000232nA > [pool-4-thread-1] INFO - [/127.0.0.1:2824] WRITE: 000332nA > [pool-4-thread-1] INFO - [/127.0.0.1:2824] WRITE: 000432nA > [pool-4-thread-1] INFO - [/127.0.0.1:2824] WRITE: 000532nA > > It was my understanding that simultaneous requests like this would spawn > five different threads (currently all executed in order, in > pool-4-thread-1). Am I wrong? If so, is there a way to have these processed > concurrently, as we are facing some performance issues? > > Our filter chain is set up as follows: > > filterChainBuilder = acceptorConfig.getFilterChain(); > filterChainBuilder.addLast("codec", new ProtocolCodecFilter(new > TcCodecFactory())); > filterChainBuilder.addLast("logger", new LoggingFilter()); > filterChainBuilder.addLast("threadPool", new ExecutorFilter( > Executors.newCachedThreadPool())); > > Thanks in advance! I greatly appreciate everyone's help. > > -Matt > >