Symptom
When executing a process which contains an FTP action, an error is raised by the FTP action, similar to this one:
java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:168) at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:452) at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:494) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:222) at java.io.InputStreamReader.read(InputStreamReader.java:177) at java.io.BufferedReader.fill(BufferedReader.java:136) at java.io.BufferedReader.readLine(BufferedReader.java:299) at java.io.BufferedReader.readLine(BufferedReader.java:362) at org.apache.commons.net.ftp.FTPFileEntryParserImpl.readNextEntry(FTPFileEntryParserImpl.java:53) at org.apache.commons.net.ftp.FTPListParseEngine.readStream(FTPListParseEngine.java:157) at org.apache.commons.net.ftp.FTPListParseEngine.readServerList(FTPListParseEngine.java:100) at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2303) at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2269) at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2046) at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2093) at com.indy.engine.actionCodes.FtpGetActionCodeI.executeSimpleCode(SourceFile:390) at com.indy.engine.action.common.ActionCodeTypeI.executeCode(SourceFile:1646) at com.indy.engine.action.common.ActionCodeTypeI.run(SourceFile:1805) at java.lang.Thread.run(Thread.java:738)
The FTP server is up and running.
Solution
This can happen when the FTP server is busy and takes some time to respond, resulting in a timeout. This may occur when establishing the FTP connection (connection timeout), or when trying to get/send files (data timeout).
The solution is to increase the "Connection Timeout" and "Data Timeout" on the FTP action. They are expressed in milliseconds. For example 10000 means 10 seconds.