Ich verwende JSch-Bibliothek zum Auflisten und Herunterladen von Dateien von einem SFTP-Server.
Konfigurieren der Zeitüberschreitung bei JSch ChannelSftp-Operationen
Channel channel = this.session.openChannel(SFTP_CHANNEL_NAME);
channel.connect();
sftpChannel = (ChannelSftp) channel;
Vector listing = sftpChannel.ls("*");
Während Aufruf ls
, Anwendung Thread manchmal stecken bleibt.
Thema dump -
Thread 15108: (state = BLOCKED)
java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be imprecise)
java.io.PipedInputStream.read() @bci=142, line=310 (Compiled frame)
java.io.PipedInputStream.read(byte[], int, int) @bci=43, line=361 (Compiled frame)
com.jcraft.jsch.ChannelSftp.fill(byte[], int, int) @bci=17, line=2527 (Compiled frame)
com.jcraft.jsch.ChannelSftp.header(com.jcraft.jsch.Buffer, com.jcraft.jsch.ChannelSftp$Header) @bci=12, line=2553 (Interpreted frame)
com.jcraft.jsch.ChannelSftp.ls(java.lang.String) @bci=298, line=1424 (Interpreted frame)
Gibt es eine Möglichkeit Timeout auf ls
und anderen Methoden zu konfigurieren? Ich sah Einstellung Timeout auf channel.connect(timeout)
, aber dies legt nur die Zeitüberschreitung beim Herstellen einer Verbindung zum Remote-Server.
In meiner Version wie erwartet und das Timing aus, die 0.1.53, der Parameter 'setServerAliveInterval' in der Dokumentation als angegeben interpretiert wird, in ** Millisekunden **. – bskp