概述
项目中通过jsch中的sftp实现上传下载文件。在压测过程中,由于调用到sftp,下载文件不存在时,系统不断抛出异常,内存飙升,逐渐把swap区也占满,通过top监控未发现占用内存的进程,通过查找sshd进程,发现服务器多了很多sftp的进程没有被关闭。
刚开始以为是sftp公共方法设计的有问题,每次创建连接都未释放,下面是部分代码片段
@Repository("SftpClient")public classSftpClient {private Logger logger = LoggerFactory.getLogger(SftpClient.class);private ThreadLocal sessionLocal = new ThreadLocal();private ThreadLocal channelLocal = new ThreadLocal();//初始化连接
publicSftpClient init() {try{
String host=SFTP_HOST;int port =Integer.valueOf(SFTP_PORT);
String userName=SFTP_USER_NAME;
String password=SFTP_USER_PASSWORD;
Integer timeout=Integer.valueOf(SFTP_TIMEOUT);
Integer a
最后
以上就是拼搏画板为你收集整理的java sftp连接池_jsch连接sftp后连接未释放掉问题排查的全部内容,希望文章能够帮你解决java sftp连接池_jsch连接sftp后连接未释放掉问题排查所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复