Hi Matt, You can simply ignore 'Connection reset by peer' error. It's a little bit different from normal close, it anyways means the connection has been closed.
And ExecutorFilter doesn't do anything related with choosing a thread. It just calls execute() method on the Executor you specified. If you didn't specify any executor, it uses a new ThreadPoolExecutorFilter instance. Therefore, if you want to control how threads are pulled from a pool, you need to provide an Executor instance that behaves as you expect. HTH, Trustin On 9/26/07, Matt Mehalso <[EMAIL PROTECTED]> wrote: > Also noticed during testing in my own dev environment that if I wait for a > few minutes between sending messages to the server, a new thread is always > used by the executor filter. > > For example, if I connect and send three requests one after the other, the > executor filter uses thread-1 for each request. If i wait five minutes and > send the same request again on the same connection, the log shows thread-2 > being used. > > Looking at my task manager, I can confirm that a new thread is indeed being > launched after every increment. > > Thanks, > > Matt > > On 9/26/07, Matt Mehalso <[EMAIL PROTECTED]> wrote: > > > > All - > > > > We've just recently deployed a Mina-based server (using mina-core-1.0.3) > > to production that had been in testing for some time. We are now getting a > > strange error that we had never seen during testing. > > > > The server is a fairly simple request / response multi-threaded server > > that uses our own custom protocol codec for encoding and decoding messages. > > The codec uses a line length to separate initialization messages, and then a > > delimiter for all subsequent messages. We use a > > edu.emory.mathcs.backport.java.util.concurrent.Executors.newCachedThreadPoolexecutor > > with an ExecutorFilter to handle requests in different threads. > > The max # of threads is set using the # of processors + 1, as in the mina > > tutorial. > > > > We are getting a strange socket connection that is always paired with a > > strange java.lang.Integer / java.lang.String mismatch? Additionally, > > we've noticed that a new thread is being spawned for each incoming request > > and that these threads are no longer returning to the thread pool as they > > were during the testing phase. The server runs as a windows service using > > JavaService and we are continuously restarting as the memory usage climbs > > above 500 MB or so. > > > > We are now getting the following exceptions, sometimes after a single > > request, sometimes after 10-15, as extracted from our log files: > > > > 2007-09-25 10:28:07,821 [SocketAcceptorIoProcessor-0.3] INFO > > <package>.handler.ReceiptTaskHandler - [/56.116.73.225:4630] EXCEPTION: > > java.net.SocketException: Connection reset by peer: Read failed > > at sun.nio.ch.SocketDispatcher.read0(Native Method) > > at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:42) > > at sun.nio.ch.IOUtil.readIntoNativeBuffer (IOUtil.java:265) > > at sun.nio.ch.IOUtil.read(IOUtil.java:238) > > at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:223) > > at org.apache.mina.transport.socket.nio.SocketIoProcessor.read( > > SocketIoProcessor.java :267) > > at org.apache.mina.transport.socket.nio.SocketIoProcessor.process( > > SocketIoProcessor.java:241) > > at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500( > > SocketIoProcessor.java:44) > > at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run ( > > SocketIoProcessor.java:563) > > at org.apache.mina.util.NamePreservingRunnable.run( > > NamePreservingRunnable.java:43) > > at > > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker > > (ThreadPoolExecutor.java :987) > > at > > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run > > (ThreadPoolExecutor.java:528) > > at java.lang.Thread.run(Thread.java:832) > > 2007-09-25 10:28:07,821 [SocketAcceptorIoProcessor-0.3 ] INFO > > <package>.handler.ReceiptTaskHandler - [/56.116.73.225:4630] CLOSED > > 2007-09-25 10:28:07,821 [pool-1-thread-32] ERROR > > <package>.handler.ReceiptTaskHandler - [/56.116.73.225:4630] Connection with > > client closed abnormally. Exception: Connection reset by peer: Read failed > > 2007-09-25 10:28:07,836 [pool-1-thread-32] ERROR > > <package>.handler.ReceiptTaskHandler - [/56.116.73.225:4630] Connection with > > client closed abnormally. Exception: java/lang/Integer incompatible with > > java/lang/String > > > > As you can see, this is on the 32nd thread spawned and is the 32nd message > > received since the server started. We currently only have a single client > > connected to the server. > > > > Has anyone ever seen anything like this before? Any ideas? Thanks in > > advance for your help! > > > > Best, > > > > Matt > > > > > > > -- what we call human nature is actually human habit -- http://gleamynode.net/ -- PGP Key ID: 0x0255ECA6