RA FTP job fails with error "Connection closed without indication"

Document ID : KB000084781
Last Modified Date : 14/04/2018
Show Technical Document Details
Issue:
Error Message :
com.uc4.ftpjob.DataTransferException: Connection exception.

Currently thread management with a wild card file transfer (FT) is implemented in a way that the FT terminates if one of the threads throws an exception. The Java standard thread pool is used.

Transferring multiple files in multiple threads uses the java.util.concurrent.ThreadPoolExecutor class. If the limit of connections is reached, there is a exception in one thread, that causes the whole ThreadPoolExecutor fail, the filetransfer stops with error:
 
com.uc4.ftpjob.DataTransferException: Connection exception.
at com.uc4.transfer.CITFTPImpl.<init>(CITFTPImpl.java:170)
at com.uc4.ftpjob.connections.ConnectionFactory$1.run(ConnectionFactory.java:75)
at java.lang.Thread.run(Thread.java:724)
Caused by: org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication.
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:317)
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:483)
at com.uc4.transfer.RAFTPClient.access$001(RAFTPClient.java:26)
at com.uc4.transfer.RAFTPClient$2.run(RAFTPClient.java:130)
at com.uc4.transfer.RAFTPClient$1.run(RAFTPClient.java:85)
... 1 more

The FTP Agent currently does not support to react on a connection failure within one single thread. 
The implementation uses the "java.util.concurrent.ThreadPoolExecutor" class. 

Reaching the limitation of concurrent connection on server side causes an exception in one of the threads which causes the whole TheradPoolExecutor to fail. 
Current behavior is that Agent cannot reliably handle connection limitation on server side. This feature is not implemented. 
Environment:
OS Version: N/A
Cause:
Cause type:
By design
Root Cause: The FTP Agent currently does not support to react on a connection failure within one single thread. 
Resolution:
The FTP Agent currently does not support to react on a connection failure within one single thread. 

The implementation uses the "java.util.concurrent.ThreadPoolExecutor" class. 

Reaching the limitation of concurrent connection on server side causes an exception in one of the threads which causes the whole TheradPoolExecutor to fail. 

 

Fix Status: No Fix

Additional Information:
Workaround :
The workaround is to work with a minimum set on threads. In every case lower than the server has configured taking into consideration that the server might have established connections from another client than the Agent.