createIncludeConfigurationFile("sos/net/sosftp/Configuration.xml", "sos.net.sosftp.Configuration.xml");// Alle
// Parametern
// sind hier
// auch g�ltig
SOSConfiguration con = new SOSConfiguration(null, schedulerParams, sosString.parseToString(schedulerParams.get("settings")),
sosString.parseToString(schedulerParams.get("profile")),
// "sos/net/sosftp/Configuration.xml",
"sos/scheduler/ftp/SOSFTPConfiguration.xml", new SOSSchedulerLogger(spooler_log));
con.checkConfigurationItems();
SOSFTPCommandReceive ftpCommand = new SOSFTPCommandReceive(con, new SOSSchedulerLogger(spooler_log));
ftpCommand.setSchedulerJob(this);
rc = ftpCommand.transfer();
filelist = ftpCommand.getFilelist();
Iterator<String> iterator = filelist.iterator();
if (spooler_job.order_queue() == null) {
// parallel Transfer for standalone Job
while (iterator.hasNext()) {
String fileName = sosString.parseToString(iterator.next());
String fileSpec = schedulerParams.containsKey(conVarname_file_spec) ? sosString.parseToString(schedulerParams.get(conVarname_file_spec))
: ".*";
Pattern pattern = Pattern.compile(fileSpec, 0);
Matcher matcher = pattern.matcher(fileName);
if (matcher.find()) {
Variable_set newParams = params;
newParams.set_var(conVarname_ftp_file_path, (remoteDir.endsWith("/") || remoteDir.endsWith("\\") ? remoteDir : remoteDir + "/")
+ fileName);
spooler_log.info("launching job for parallel transfer with parameter: ftp_file_path "
+ (remoteDir.endsWith("/") || remoteDir.endsWith("\\") ? remoteDir : remoteDir + "/") + fileName);
spooler.job(spooler_task.job().name()).start(params);
}
}
return false;
}
else {
// parallel Transfer for order job
while (iterator.hasNext()) {
String fileName = (String) iterator.next();
String fileSpec = schedulerParams.containsKey("file_spec") ? sosString.parseToString(schedulerParams.get("file_spec")) : ".*";
Pattern pattern = Pattern.compile(fileSpec, 0);
Matcher matcher = pattern.matcher(fileName);
if (matcher.find()) {
Variable_set newParams = spooler.create_variable_set();
if (spooler_task.params() != null)
newParams.merge(params);
newParams.set_var(conVarname_ftp_file_path, (remoteDir.endsWith("/") || remoteDir.endsWith("\\") ? remoteDir : remoteDir + "/")
+ fileName);
newParams.set_var("ftp_parent_order_id", spooler_task.order().id());
newParams.set_var("ftp_order_self_destruct", "1");
Order newOrder = spooler.create_order();
newOrder.set_state(spooler_task.order().state());
newOrder.set_params(newParams);
spooler_task.order().job_chain().add_order(newOrder);
getLogger().info(
"launching order for parallel transfer with parameter: ftp_file_path "
+ (remoteDir.endsWith("/") || remoteDir.endsWith("\\") ? remoteDir : remoteDir + "/") + fileName);
spooler.variables().set_var("ftp_order", normalize(spooler_task.order().id()) + "." + normalize(newOrder.id()) + "." + "0");
spooler.variables().set_var("ftp_check_receive_" + normalize(spooler_task.order().id()) + "." + normalize(newOrder.id()), "0");
}
}
// am aktuellen Auftrag speichern, dass im Wiederholungsfall per setback() nicht erneut Auftr�ge erzeugt werden
// sollen, sondern dass deren Erledigungszustand gepr�ft wird:
spooler_task.order().params().set_var(conVarname_ftp_check_parallel, "yes");
spooler_job.set_delay_order_after_setback(1, parallelTransferCheckSetback);
spooler_job.set_max_order_setbacks(parallelTransferCheckRetry);
spooler_task.order().setback();
spooler.variables().set_var("cur_transfer_retry" + normalize(spooler_task.order().id()), String.valueOf(parallelTransferCheckRetry));
return false;
}
}
// kb 2011-04-27 no more longer needed due to too much trouble with this file / concept
// createIncludeConfigurationFile("sos/net/sosftp/Configuration.xml", "sos.net.sosftp.Configuration.xml");// Alle Parametern
// sind hier auch
// g�ltig
SOSConfiguration con = new SOSConfiguration(null, schedulerParams, sosString.parseToString(schedulerParams.get("settings")),
sosString.parseToString(schedulerParams.get("profile")),
// "sos/net/sosftp/Configuration.xml",
"sos/scheduler/ftp/SOSFTPConfiguration.xml", new SOSSchedulerLogger(spooler_log));
con.checkConfigurationItems();
sos.net.sosftp.SOSFTPCommandReceive ftpCommand = new sos.net.sosftp.SOSFTPCommandReceive(con, new SOSSchedulerLogger(spooler_log));
ftpCommand.setSchedulerJob(this);
rc = ftpCommand.transfer();
createOrderParameter(ftpCommand);