java - 在 JSch 中使用连接池

标签 java multithreading connection-pooling sftp jsch

我正在使用 JSch 通过 SFTP 上传文件。在其当前状态下,每个线程在需要时打开和关闭连接。

JSch是否可以使用连接池来避免大量连接打开和关闭带来的开销?

这是一个从线程内部调用函数的例子

 public static void file_upload(String filename) throws IOException {
    JSch jsch = new JSch();
    Session session = null;
    try {
        session = jsch.getSession("user", "server_name", 22);
        session.setConfig("StrictHostKeyChecking", "no");
        session.setPassword("super_secre_password");
        session.connect();

        Channel channel = session.openChannel("sftp");
        channel.connect();
        ChannelSftp sftpChannel = (ChannelSftp) channel;
             
        FileInputStream inputSrr = new FileInputStream(filename);  
        try {  
            sftpChannel.put(inputSrr, "/var/temp/"+filename);  
        } catch (SftpException e) {  
            e.printStackTrace();  

        } finally {  
            if (inputSrr != null) {  
                inputSrr.close();  
            }  
        }  
        
        sftpChannel.exit();
        session.disconnect();
    } catch (JSchException e) {
        e.printStackTrace();
    } catch (SftpException e) {
        e.printStackTrace();
    }
}

最佳答案

为此我更喜欢 commons-pool . ;)

关于java - 在 JSch 中使用连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12780036/

相关文章:

java - 无法更新 java.security 文件 - 想要添加 bouncy caSTLe 提供程序

java - 您如何维护 wicket 中面板的样式信息?

c# - 当在方法中枚举静态变量时将其设置为 null 会发生什么

c++ - move std::thread

java - Apache 公共(public)池 1 -> 2 : Recalling Hung or Inactive Connection Objects to the Pool

java - 如何按日期对查询结果进行排序(Jpa、Java Collections)

java - onOptionsItemSelected(MenuItem item) 奇怪的行为

swift - 通过 self 更新闭包内的 UI 是一种不好的做法吗?

java.lang.IllegalStateException : Connection pool shut down exception

java - JDBC Connection.isValid() 用于单线程永久连接?