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

Reply via email to