I'm not calling remove(session) anywhere. I'm not calling my own close()--it disposes of the connector. We've established that there's most likely an error somewhere, but we don't know where. There are no particular control characters except for NULL that will cause the thing to die unexpectedly.
It seems to be some kind of problem with my specific message: 05142013023013316|123.123.123.0|0.0.0.0|AC|21|ADB=1=0=1368556811567|d9b725009b4eb01229b6e222d7965e6f Whereas this message went through: 05142013024007883|123.123.123.0|0.0.0.0|PE|5|/////|4caa791091d21d23e63637080226f370 05142013024007883|123.123.123.0|0.0.0.0|PD|5|/////|4caa791091d21d23e63637080226f370 05142013023949165|123.123.123.0|0.0.0.0|PON|1|//////|8d9c307cb7f3c4a32822a51922d1ceaa OK. So I'm stuck. How do I turn on trace level logging? -----Original Message----- From: Emmanuel Lécharny [mailto:[email protected]] Sent: Tuesday, May 14, 2013 1:49 PM To: [email protected] Subject: Re: Help with NioSocketConnector Le 5/14/13 2:58 PM, Whitener, Winona T. a écrit : > I finally just dropped a new exception and stack trace on the > sessionClosed(IoSession session) method. The results: > > java.lang.Exception: testing against close > at > communication.socket.MinaClientHandler.sesionClosed(MinaClientHandler.java:57) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.sessionClosed(DefaultIoFilterChain.java:642) > at > org.apache.mina.core.filterchain.DefaultIoFilterchain.callNextSessionClosed(DefaultIoFilterChain.java:382) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:47) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:750) > at > org.apache.mina.filter.codec.ProtocolCodecfilter.sessionClosed(ProtocolCedecFilter.java:369) > at > org.apache.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:382) > at > org.apache.core.filterchain.DefaultIoFitlerChain.access$900(DefaultIoFilterIoChain.java:47) > at > org.apache.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:750) > at > org.apache.mina.filter.logging.LoggingFilter.sessionClosed(LoggingFilter.java:238) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:382) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:47) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:750) > at > org.apache.mina.core.filterchain.IoFilterAdapter.sessionClosed(ioFilterAdapter.java:88) > at > org.apache.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:382) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireSessionClosed(DefaultIoFilterChain.java:375) > at > org.apache.mina.core.service.IoServiceListenerSupport.fireSessionDestroyed(IoServiceListenerSupport.java:244) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.removeNow(AbstractPollingIoProcessor.java:600) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.removeSessions(AbstractPollingIoProcessor.java:560) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$800(AbstractPollingIoProcessor.java:67) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1132) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor.$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > > > This is when I do a session.write(message) when message is passed in as an > argument. Ironically, commenting out this line will allow it to run fine. > Giving it an explicit string (i.e. session.write("Mymessage") ) may or may > not work--it's a toss up. I've tried doing all lower case (mixed results), a > numeric string ("123456"), a plain string ("quick brown fox"). The removeSessions() method is only called when some session has been specifically called for removal. his can occur in three cases : - the remove( session ) metho dhas been called - an exception occured while reading or writing data in the socket - ther eis some fragmentation which is not corretly handled. This stack traces just shows that some session closing is being done, it gives no information about the why. Here, I'm stuck, unless you provides some code that I can run and debug... -- Regards, Cordialement, Emmanuel Lécharny www.iktek.com
