Thomas Küstermann
2016-03-14 12:54:28 UTC
Hi!
We're using Camel<http://camel.apache.org/> to read files from a SFTP server. Camel is using JSch internally which used to work quite good for us. I recently had to upgrade JSch in our product from 0.1.38 to 0.1.53. Although the upgrade works perfectly with the majority of our customers I am currently faced with a weird issue with Titan FTP (SSH-2.0-srtSSHServer_11.00). The transfer speed by using Channel#get(String) is awfully slow (~ 10 KB/s). I tried several JSch versions and observed that the issue had been introduced in the transition of 0.1.47 to 0.1.48 whose changelog states:
- change: the file transfer speed with ChannelSftp#get(String src) has been
improved; sending multiple requests at any one time.
- change: by the default, at most, 16 requests will be sent at any one time
in ChannelSftp.
Before this change the download rate was at least at several 100 KB/s. So, I'm particularly interested in "sending multiple requests at any one time" in ChannelSftp. What does it mean and how can this actually result in a download slow down?
Current work around is to make use of ChannelSftp#get(String, OutputStream) which is still satisfactorily fast. For testing purposes I set the number of bulk requests to 1 which resulted in a known good performance.
I already tried to use ChannelSftp#setBulkRequests(int) but with no luck. Current work around is to make use of ChannelSftp#get(String, OutputStream) which is still satisfactorily fast.
Any hints are appreciated!
Regards,
-- Thomas
We're using Camel<http://camel.apache.org/> to read files from a SFTP server. Camel is using JSch internally which used to work quite good for us. I recently had to upgrade JSch in our product from 0.1.38 to 0.1.53. Although the upgrade works perfectly with the majority of our customers I am currently faced with a weird issue with Titan FTP (SSH-2.0-srtSSHServer_11.00). The transfer speed by using Channel#get(String) is awfully slow (~ 10 KB/s). I tried several JSch versions and observed that the issue had been introduced in the transition of 0.1.47 to 0.1.48 whose changelog states:
- change: the file transfer speed with ChannelSftp#get(String src) has been
improved; sending multiple requests at any one time.
- change: by the default, at most, 16 requests will be sent at any one time
in ChannelSftp.
Before this change the download rate was at least at several 100 KB/s. So, I'm particularly interested in "sending multiple requests at any one time" in ChannelSftp. What does it mean and how can this actually result in a download slow down?
Current work around is to make use of ChannelSftp#get(String, OutputStream) which is still satisfactorily fast. For testing purposes I set the number of bulk requests to 1 which resulted in a known good performance.
I already tried to use ChannelSftp#setBulkRequests(int) but with no luck. Current work around is to make use of ChannelSftp#get(String, OutputStream) which is still satisfactorily fast.
Any hints are appreciated!
Regards,
-- Thomas