jsch sftp工具包连接未释放

问题: jsch是一个sftp的工具库,生产发现访问sftp服务器的老连接一直未释放,新连接不断产生。

分析: 检查jsch的使用代码

JSch jsch = new JSch();

Session session = jsch.getSession("xxxxxx", "127.0.0.1", 22);

session.setPassword("******");

session.setConfig("StrictHostKeyChecking", "no");

session.connect();

Channel channel = session.openChannel("sftp");

channel.connect();

ChannelSftp c = (ChannelSftp) channel;

channel.connect();

//...

channel.disconnect();

发现:从官方的例子(http://www.jcraft.com/jsch/examples/Sftp.java)上看到,最需要关闭的是session对象而不是channel对象 

本地代码测试: 每执行一次下载文件,都会新增一个线程session未关闭

 

解决问题:

/** 关闭session */

Session session = sftp.getSession();

if(session != null){  

    session.disconnect(); 

 }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值