Как установить тайм-аут чтения для управляющего соединения ftp
Я использую ftp apache commomns net version 3.1 .
Соединение ftp переходит в состояние зависания при прерывистом выполнении операции листинга.
Мне кажется, что причина в том, что ftp-клиент бесконечно ждет ответа сервера для команды FTP PASV при попытке открыть соединение для передачи данных для операции листинга.
Как мне нужно установить тайм-аут чтения на управляющем соединении, чтобы избежать этой ситуации.
Я установил readtimeout на подключение к данным с помощью setDataTimeout().
Для получения дополнительной информации: http://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClient.html
1) Помогает ли установка setsoTimeout() после выполнения операции ftp connect() избежать этой ситуации на управляющем соединении?
Для получения дополнительной информации: http://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/SocketClient.html
2) Если да, какое оптимальное значение тайм-аута мне нужно установить для setsotimeout()?
Пожалуйста, найдите трассировку стека ниже:
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:140)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:464)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:506)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:234)
at java.io.InputStreamReader.read(InputStreamReader.java:188)
at java.io.BufferedReader.fill(BufferedReader.java:147)
at java.io.BufferedReader.read(BufferedReader.java:168)
at org.apache.commons.net.io.CRLFLineReader.readLine(CRLFLineReader.java:58
)
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:310)
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:290)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:479)
at org.apache.commons.net.ftp.FTPClient.openDataConnection(FTPClient.java:7
69)
at org.apache.commons.net.ftp.FTPClient.openDataConnection(FTPClient.java:6
57)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:
3097)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:
3072)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:
2972
Любая помощь в этом будет оценена:)
Благодарю.