You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Alex Liu (JIRA)" <ji...@apache.org> on 2009/07/21 08:09:14 UTC

[jira] Created: (DIRMINA-731) Problem on IoSession.getReaderIdleCount() and IoSession.getWriterIdleCount()

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.


[jira] Closed: (DIRMINA-731) Problem on IoSession.getReaderIdleCount() and IoSession.getWriterIdleCount()

Posted by "Alex Liu (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DIRMINA-731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Liu closed DIRMINA-731.
----------------------------

    Resolution: Fixed

I missed up....
I should call setIdleTime with IdleStatus.READER_IDLE first...

> 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.