java – 将Jsch放入连接池中的详细信息
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 将Jsch放入连接池中的详细信息,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1246字,纯文字阅读大概需要2分钟。
内容图文
我把Jsch放入了公共池(带有弹簧池支持)并取得了初步成功
http://docs.spring.io/spring/docs/3.2.4.RELEASE/spring-framework-reference/htmlsingle/#aop-ts-pool
然而:
>我们应该在会话中汇集频道而不是汇集会话吗?每个Jsch会话创建一个线程.池化Jsch会话将创建x个线程.汇集渠道,实际上只有一个Jsch线程.
>(commons-pool)如果Jsch会话变得陈旧会发生什么?如何在commons-pool的上下文中重新生成会话或使用spring pool支持?如何检测它是否陈旧?
谢谢
解决方法:
弄清楚我自己的问题.我将在第二天或第二天分享我的项目.
>汇集渠道更有效.实际上不需要创建多个会话(如果会话连接到同一个sftp端点).
>我实现了一个带弹簧池和公共池的JSch连接池(池化通道).我将在第二天或第二天发布到github.最重要的问题是,如果连接失效会怎样.
我发现基于我的1个Session的实现 – 多个通道,如果连接过时,池化对象(在这种情况下,通道)将是陈旧的.池化对象应该无效并从池中删除.当连接恢复时,当新的应用程序线程从池中“借用”时,将创建新的池对象.
为了验证我的观察,我的不那么自动化的测试:
a)创建一组(例如10个)app线程,从池中检出信道资源.
b)让线程睡20秒
c)创建另一组应用程序线程,从池中检出通道资源.
在a),当i == 7时设置断点,通过“iptable drop(linux)或pfctl -e; pfctl -f /etc/pf.conf(mac,google how to do!)”来断开连接.第一组应用程序线程将因为通道中断而异常.
在b),重新启动连接
在c),第二组应用程序线程将成功完成操作,因为已断开连接已恢复.
内容总结
以上是互联网集市为您收集整理的java – 将Jsch放入连接池中的详细信息全部内容,希望文章能够帮你解决java – 将Jsch放入连接池中的详细信息所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。