在使用MINA做客户端程序时,发现虽然调用了session.close()方法,通过日志也确实看到当前session已经被关闭了,但未什么客户端程序进程却没有停止呢?即MINA客户端没有根本的关闭。这个现象在版本1和2中都存在。这是MINA的bug吗???其实不然...

我们可以启动2个服务器端,然后用同一个connector实例来连接这2台服务器,通过结果可以发现2个连接是相互独立工作的,及connector和session不是一对一的。

通过查阅API和源代码,我们可以发现这里的connector实际是一个连接管理器,其内部通过一个connectQueue队列同步存储一个连接列表。并在调用connect()方法时,将当前连接请求注册到队列中;同时connector中启动着一个内部的Worker(工作线程)来管理这些连接。当我们关闭某个session之后,只是关闭了某个请求,工作线程其实并没有被关闭,所以出现程序没有停止的现象。

MINA1.1.7

可以通过设置工作超时来关闭连接,当所有的连接都被关闭后worker线程将停止,即connector停止。

connector.setWorkerTimeout(1); //1秒钟(默认超时60秒)

PS:Worker定义在SocketConnector类中,内部直接实现管理

MINA2.0

可以调用connector的dispose()方法。该方法通过调用ExecutorService的shutdown()方法停止业务处理线程,并设置内部disposed标志位标识需要停止连接管理器;Worker线程通过该标识停止。

connector.dispose();

PS: Worker定义在AbstractPollingIoConnector类中,disposed标志在AbstractIoService类中,通过dispose()方法停止ExecutorService并设置disposed标志

关闭mina服务_如何彻底关闭MINA客户端相关推荐

  1. win7系统要停止服务器,win7系统中可关闭的服务选项,可关闭服务选项大全

    为了加速系统的运行很多人会选择关闭系统不必要的服务,来腾出系统的运行空间,从而得到加快系统速度的目的.这个时候问题就来了,什么该禁止,什么不该禁止就成了我们困扰的问题,因为一个不小心就会禁用必要的功能 ...

  2. 关闭openssh服务_关于redhat7的openssh漏洞升级修复方法

    点击上方蓝字关注我们 今日互动话题 今年的圣诞节你想怎么过? 好好学习下openssh版本如何升级修复低版本漏洞吧 由于openssh爆出一个特殊漏洞,涉及到8.3p1及以下版本,升级到8.4p1版本 ...

  3. java启动mysq服务_启动和关闭MySQL服务

    在windows下 : 启动: 1.cd c:/mysql/bin 2.mysqld --console 关闭: 1.cd c:/mysql/bin 2.mysqladmin -uroot shutd ...

  4. 打开和关闭mysql服务器_启动和关闭MySQL服务器

    欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 作为MySQL管理员,一个普通的目标就是确保服务器尽可能地处于运行状态,使得客户机能够随时访问它.但是,有时最好关闭服务器 ...

  5. 关闭mysql方法_启动和关闭MySQL的方法

    启动和关闭MySQL的方法 (1)启动 MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动MySQL服务时运行下面命令即可. [root@test1 init.d]# / ...

  6. 如何关闭win10防火墙_[教程] 如何关闭win10自动更新?

    Windows 10是微软独立发布的最后一个Windows版本,下一代Windows将作为更新形式出现,也就是类似win10 10240.10586等.但win10都会开启自动更新,如何彻底关闭?下面 ...

  7. 联想电脑如何改w ndows更新,联想电脑关闭自动更新_联想怎么关闭自动更新

    2016-12-09 15:57:45 1. 点电脑右下角"开始"菜单,进入控制面板2.在"控制面板"里面选择"系统和安全"3.进入&quo ...

  8. c mysql 关闭连接池_数据库连接池关闭的时间

    上一篇说到分析关闭连接与不关闭连接的性能,到后来我发现自己得出的结论有误.经过多次测试发现关闭连接和不关闭连接耗费的时间基本一样.进哥也说了这是有连接池的原因.其实,自己以前对Ado.net了解的不深 ...

  9. 如何关闭win10防火墙_如何彻底关闭win10自带杀毒软件:windows defender?

    Windows Defender是微软系统自带的杀毒工具,默认是开启的,在win10系统之前,是可以手动关闭的,但到了win10后你只能临时关闭,当你重启电脑后它还会自动开启,而且即便你不重启,由于w ...

最新文章

  1. Error:org.gradle.api.internal.changedetection.state.FileCollectionSnapshotImpl cannot be cast to org
  2. c语言仓库管理系统链表,仓库管理系统 C语言 C++ 数据结构 链表 课程设计
  3. 动态存储和静态存储区域区别
  4. 使用Docker构建Oracle ADF应用程序
  5. 基于ssm框架和freemarker的商品销售系统
  6. 想加入IT行业为何建议你学Python,不要错过时机哦
  7. 中剪取一种颜色的板块_不知道UI设计中APP界面版式如何排版?来看这个!
  8. Bootstrap 表单控件的状态
  9. java最大最小距离算法缺点_java算法(蓝桥杯)- 算法提高 题目1 最大最小值
  10. 微信小程序排行榜模板
  11. java实现向PDF中插入图片
  12. 神经网络之输出层设计
  13. MongoDB分片存储集群支撑海量数据
  14. 【Unity】U3D ARPG游戏制作实例(一)EasyTouch5完整示例
  15. bootstrap表格标题Caption位于表格下方的原因
  16. 基于Python的网络爬虫爬取天气数据可视化分析
  17. SAP中公司间过账问题处理实例
  18. JDK各个版本安装以及配置,超详细
  19. centos图像界面和dos界面之间切换
  20. 迭代法求解递推方程,

热门文章

  1. 《犯罪心理学》读书笔记(part3)--影响犯罪心理形成发展的外部因素
  2. SAP 电商云 UI State persistence 状态持久化设计的入口 - initSync
  3. JavaScript 里三个点 ... 的用法
  4. SAP Spartacus 服务器端渲染的依赖注入之 ProductPageEventBuilder
  5. 如何查看 SAP Fiori Elements List Report Table 都支持哪些设置
  6. 如何隐藏SAP Spartacus home页面标准的header区域
  7. SAP Data Hub里的Constant Generator
  8. SAP Analytics Cloud里的Smart Discovery功能介绍
  9. 介绍一种Fiori标准应用的增强方式
  10. SAP UI5 js file will be executed immediately after downloaded successfully