Keep alive problem

This is a discussion on Keep alive problem within the Apache forums in Application Servers & Tools category; 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 ...

Go Back   Application Development Forum > Application Servers & Tools > Apache

Object Mix

Register FAQ Calendar Search Today's Posts Mark Forums Read
  #1  
Old 07-22-2008, 04:29 AM
Eugen
Guest
 
Default Keep alive problem

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

Reply With Quote
Reply


Thread Tools
Display Modes


All times are GMT -5. The time now is 04:29 PM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vB Ad Management by =RedTyger=

In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.