Problem on IoSession.getReaderIdleCount() and IoSession.getWriterIdleCount()
----------------------------------------------------------------------------

                 Key: DIRMINA-731
                 URL: https://issues.apache.org/jira/browse/DIRMINA-731
             Project: MINA
          Issue Type: Bug
          Components: Core
    Affects Versions: 2.0.0-M6
         Environment: Windows server 2003
            Reporter: Alex Liu


Hi everyone,

I got a problem when I use IoSession.getReaderIdleCount() and
IoSession.getWriterIdleCount(). Please can anyone just do a fever to
me? Thanks!
The problem is: When I call IoSession.getReaderIdleCount() and
IoSession.getWriterIdleCount(), they just return "0" as a result but
when I call IoSession.getIdleCount(), the result is no problem
(increases itself).

Below is my main class:

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import org.apache.mina.filter.codec.textline.LineDelimiter;

public class MinaTimeServer {
       private static int PORT = 8888;
       private static Logger logger = Logger.getLogger
(MinaTimeServer.class);

       public static void main(String[] args) throws IOException {

               PropertyConfigurator.configure("log4j.properties");
               IoAcceptor acceptor = new NioSocketAcceptor();

               LoggingFilter loggingFilter = new LoggingFilter();
               acceptor.getFilterChain().addLast("logger", loggingFilter);

               TextLineCodecFactory codecFactory = new 
TextLineCodecFactory(Charset
                               .forName("UTF-8"), LineDelimiter.NUL.getValue(),
                               LineDelimiter.NUL.getValue());
               acceptor.getFilterChain().addLast("codec",
                               new ProtocolCodecFilter(codecFactory));

               acceptor.setHandler(new TimeServerHandler());
               acceptor.getSessionConfig().setReadBufferSize(2048);
               acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 2);
               acceptor.bind(new InetSocketAddress(PORT));

               logger.info("Listen port: " + PORT);
       }
}

Below is my Handler class:

import java.util.Date;
import org.apache.log4j.*;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;

public class TimeServerHandler extends IoHandlerAdapter {

       private static Logger logger = Logger.getLogger(TimeServerHandler.class);

       @Override
       public void exceptionCaught(IoSession session, Throwable cause)
                       throws Exception {
               cause.printStackTrace();
       }

       @Override
       public void sessionIdle(IoSession session, IdleStatus status)
                       throws Exception {
               logger.info(session.getId()+"-IDLE " 
+session.getReaderIdleCount());
       }
}


Is there anything wrong in my code? Thanks for your help again!

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to