3
回答
mina作为服务端,客户端连接一段时候,隔段时间出现IO异常~
【腾讯云】校园拼团福利,1核2G服务器10元/月!>>>   
mina作为服务端,客户端连接一段时候,期间每2分钟发一次心跳,隔段时间出现如下问题?什么原因引起? 


java.io.IOException: 您的主机中的软件中止了一个已建立的连接。 
2013-12-24 15:04:10,291 DEBUG IoFilterEvent  - Firing a SESSION_CLOSED event for session 2 
HttpServerHandle.session close! 
2013-12-24 15:04:10,291 DEBUG IoFilterEvent  - Event SESSION_CLOSED has been fired for session 2 
at sun.nio.ch.SocketDispatcher.read0(Native Method) 
at sun.nio.ch.SocketDispatcher.read(Unknown Source) 
at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source) 
at sun.nio.ch.IOUtil.read(Unknown Source) 
at sun.nio.ch.SocketChannelImpl.read(Unknown Source) 
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:273) 
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:44) 
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:690)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:664)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:653)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:67)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1124)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source)
举报
zerochen
发帖于4年前 3回/2K+阅
共有3个答案 最后回答: 4年前
检查网络是否有中断, 查看系统 keepalive 时间。 
--- 共有 1 条评论 ---
zerochenkeepalive时间比心跳时间长2分钟,即4分钟,公司内网,断网的情况很少 4年前 回复
还有心跳包数据很小, 建议缩短心跳时间, 30秒以内。
--- 共有 2 条评论 ---
Lisper你好!我发心跳包了,还是出现问题(你的主机中的软件终止了一个已经建立的链接)心跳时间为10s 3年前 回复
zerochen心跳包发送时间是可以配置,断点也可以,但是出现次问题的原意是什么那? 4年前 回复

引用来自“xsong”的答案

还有心跳包数据很小, 建议缩短心跳时间, 30秒以内。
回复 @zerochen : 这个得看mima的源码了。 我没看过。呵呵, 只能猜测下, HttpServerHandle.session close!  
2013-12-24 15:04:10,291 DEBUG IoFilterEvent  - Event SESSION_CLOSED has been fired for session 2  
at sun.nio.ch.SocketDispatcher.read0(Native Method)  
at sun.nio.ch.SocketDispatcher.read(Unknown Source)  
at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)  
at sun.nio.ch.IOUtil.read(Unknown Source)  
at sun.nio.ch.SocketChannelImpl.read(Unknown Source)  


Channel 关闭了。 客户端主动关闭连接了。 应该还是网络断掉了。 
顶部