Ich verwende die Apache Commons Lib um FTP-Files hochzuladen. So sieht der Code aus:
private void uploadFile(File file) throws SimplerReaderException {
FTPClient client = new FTPClient();
client.configure(getFtpConfiguration());
try {
client.connect(config.getString(FTP_HOST), getPort());
int replyCode = client.getReplyCode();
if(!FTPReply.isPositiveCompletion(replyCode)) {
client.disconnect();
throw new SimplerReaderException(String.format("FTP connection didn't succeeded. Got error code %d", replyCode));
}
client.login(config.getString(FTP_USER), config.getString(FTP_PASSWORD));
client.setFileType(FTP.ASCII_FILE_TYPE);
client.enterLocalPassiveMode();
prepareDirectory(client);
client.storeFile(file.getName(), new FileInputStream(file));
client.disconnect();
} catch (SocketException e) {
throw new SimplerReaderException(e);
} catch (IOException e) {
throw new SimplerReaderException(e);
}
}
Das ganze funktioniert mit bis zu 4 Threads problemlos. Allerdings fliegen oben genannte Exceptions mit Status 421 wenn ich mehr als 4 Threads verwende. Kann ich da auf Client-Seite etwas tun? Gibt es z.B. Metadaten die ich beim Server abfragen kann um so die Threadanzahl zu steuern oder muss ich damit leben, dass je nach Server-Config das Modul funktioniert oder auch nicht?