| Register | FAQ | Calendar | Search | Today's Posts | Mark Forums Read |
|
#1
| |||
| |||
| Hi, I;m using MINA 2.0.0M2 and java 1.6 1) are the sessions using a keep alive system ? Or do I need to do that manually ? 2) Do IoSession.write() operations conclude to a session closed event if the remote peer has terminated the connection ? ( In a normal or abnormal way ) To implement a keep alive system, on Session Idle event I tried to write a small string to the IoSession, but it doesn't seem to work very well. In the case of abnormal session termination, it takes a very long time until the peer is actually fired a SessionClosed event. ( even 10-15 minutes ) Secondly, I tried to get a Write Future from the write operation and see if the write operation succeded or not, in the moment where the listener received operationCompleted notification. This hasn't worked better at all, instead now I even get exceptions : at org.apache.mina.filter.codec.ProtocolCodecFilter.f ilterWrite(ProtocolCodecFilter.java:245) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.callPreviousFilterWrite(DefaultIoFilterChain.j ava:476) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.access$1400(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain$EntryImpl$1.filterWrite(DefaultIoFilterChain.j ava:844) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain$TailFilter.filterWrite(DefaultIoFilterChain.ja va:770) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.callPreviousFilterWrite(DefaultIoFilterChain.j ava:476) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.fireFilterWrite(DefaultIoFilterChain.java:470) at org.apache.mina.core.session.AbstractIoSession.wri te(AbstractIoSession.java:398) at org.apache.mina.core.session.AbstractIoSession.wri te(AbstractIoSession.java:355) at dshub.SimpleHandler.sessionIdle(Unknown Source) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain$TailFilter.sessionIdle(DefaultIoFilterChain.ja va:725) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.callNextSessionIdle(DefaultIoFilterChain.java: 393) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.access$1000(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain$EntryImpl$1.sessionIdle(DefaultIoFilterChain.j ava:822) at org.apache.mina.core.filterchain.IoFilterAdapter.s essionIdle(IoFilterAdapter.java:75) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.callNextSessionIdle(DefaultIoFilterChain.java: 393) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.access$1000(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain$EntryImpl$1.sessionIdle(DefaultIoFilterChain.j ava:822) at org.apache.mina.filter.logging.LoggingFilter.sessi onIdle(LoggingFilter.java:122) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.callNextSessionIdle(DefaultIoFilterChain.java: 393) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.access$1000(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain$EntryImpl$1.sessionIdle(DefaultIoFilterChain.j ava:822) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain$HeadFilter.sessionIdle(DefaultIoFilterChain.ja va:604) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.callNextSessionIdle(DefaultIoFilterChain.java: 393) at org.apache.mina.core.filterchain.DefaultIoFilterCh ain.fireSessionIdle(DefaultIoFilterChain.java:387) at org.apache.mina.core.session.IdleStatusChecker.not ifyIdleSession1(IdleStatusChecker.java:240) at org.apache.mina.core.session.IdleStatusChecker.not ifyIdleSession(IdleStatusChecker.java:179) at org.apache.mina.core.session.IdleStatusChecker.not ifyIdleness(IdleStatusChecker.java:150) at org.apache.mina.core.polling.AbstractPollingIoProc essor.notifyIdleSessions(AbstractPollingIoProcesso r.java:524) at org.apache.mina.core.polling.AbstractPollingIoProc essor.access$700(AbstractPollingIoProcessor.java:5 5) at org.apache.mina.core.polling.AbstractPollingIoProc essor$Worker.run(AbstractPollingIoProcessor.java:7 81) at org.apache.mina.util.NamePreservingRunnable.run(Na mePreservingRunnable.java:51) at java.util.concurrent.ThreadPoolExecutor$Worker.run Task(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run (Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException: buf is empty. Forgot to call flip()? at org.apache.mina.filter.codec.AbstractProtocolEncod erOutput.write(AbstractProtocolEncoderOutput.java: 51) at org.apache.mina.filter.codec.textline.TextLineEnco der.encode(TextLineEncoder.java:150) at org.apache.mina.filter.codec.ProtocolCodecFilter.f ilterWrite(ProtocolCodecFilter.java:236) ... 34 more The only class that is mine in there its dshub.SimpleHandler but it doesn't seem that the exception had anything to do with it anyway... What is the best solution for this keep alive system and what can I do to improve my program ? Thanks a lot |
![]() |
| Thread Tools | |
| Display Modes | |
In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.