Package sos.spooler

Examples of sos.spooler.Variable_set


    int skipLastFiles = 0;
   
    try {
     
      // Job oder Order
      Variable_set params = spooler.create_variable_set();
      if (spooler_task.params() != null) params.merge(spooler_task.params());
      if (spooler_job.order_queue() != null && spooler_task.order().params() != null)
        params.merge(spooler_task.order().params());
     
      // mandatory parameters
      name = "file";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {       
        file = params.var(name);
       
        // To make orderparams available for substitution in orderparam value
        while (file.matches("^.*%[^%]+%.*$")) {
          String p = file.replaceFirst("^.*%([^%]+)%.*$", "$1");
          String s = params.var(p);
          s = s.replace('\\','/');
          file = file.replaceAll("%"+p+"%", s);
          logger.debug("processing job parameter ["+name+"]: substitute %"+p+"% with "+s);
        }
      }
      else
        throw new Exception("job parameter is missing: ["+name+"]");
     
      logger.info(".. job parameter ["+name+"]: " + file);
     
     
      // optional parameters
      name = "file_spec";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {       
        fileSpec = params.var(name);
        logger.info(".. job parameter ["+name+"]: " + fileSpec);
      }
     
      name = "min_file_age";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        minFileAge = params.var(name);
        logger.info(".. job parameter ["+name+"]: " + minFileAge);
      }
     
      name = "max_file_age";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        maxFileAge = params.var(name);
        logger.info(".. job parameter ["+name+"]: " + maxFileAge);
      }
     
      name = "min_file_size";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        minFileSize = params.var(name);
        logger.info(".. job parameter ["+name+"]: " + minFileSize);
      }
     
      name = "max_file_size";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        maxFileSize = params.var(name);
        logger.info(".. job parameter ["+name+"]: " + maxFileSize);
      }
     
      name="skip_first_files";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        try {
          skipFirstFiles = Integer.parseInt(params.var(name));
        } catch (Exception ex) {
          throw new Exception("invalid, non-numeric value for parameter [" + name + "]: " + ex.getMessage());
        }
        logger.info(".. job parameter ["+name+"]: " + skipFirstFiles);
      }
     
      name="skip_last_files";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        try {
          skipLastFiles = Integer.parseInt(params.var(name));
        } catch (Exception ex) {
          throw new Exception("invalid, non-numeric value for parameter [" + name + "]: " + ex.getMessage());
        }
        logger.info(".. job parameter ["+name+"]: " + skipLastFiles);
      }
     
      rc = !SOSFileOperations.existsFile(file, fileSpec, Pattern.CASE_INSENSITIVE, minFileAge, maxFileAge, minFileSize, maxFileSize, skipFirstFiles, skipLastFiles, logger);
     
      if (!rc && params.value("gracious") != null && params.value("gracious").equalsIgnoreCase("all")) {
        return (spooler_job.order_queue() != null);
      }
      else
      if (!rc && params.value("gracious") != null &&
      (params.value("gracious").equalsIgnoreCase("yes") || params.value("gracious").equalsIgnoreCase("true") || params.value("gracious").equals("1") ) ) {
        return false;
      }
      else
      if ( !rc ) {
        throw new Exception("check for absence failed for file: " + file);
View Full Code Here


    boolean checkParallel = false;
    boolean parallelTransfer = false;
    String parallelTransferCheckSetback = "00:00:60";
    int parallelTransferCheckRetry = 60;
    Variable_set params = null;
    boolean rc = false;
    boolean isFilePath = false;
    boolean orderSelfDestruct = false;
    Properties schedulerParams = null;

    try {

      try {

        this.setLogger(new SOSSchedulerLogger(spooler_log));

        params = getParameters();
        schedulerParams = getSchedulerParameterAsProperties(params);
        checkParallel = sosString.parseToBoolean(sosString.parseToString(schedulerParams.get("check_parallel")));
        parallelTransfer = sosString.parseToBoolean(sosString.parseToString(schedulerParams.get("parallel")));

      }
      catch (Exception e) {
        rc = false;
        e.printStackTrace(System.err);
        throw (new Exception("could not process job parameters: " + e));
      }

      try { // to check parameters
        if (checkParallel) {

          boolean bSuccess = true;
          String[] paramNames = sosString.parseToString(spooler.variables().names()).split(";");
          for (int i = 0; i < paramNames.length; i++) {
            if (paramNames[i].startsWith("ftp_check_receive_" + normalize(spooler_task.order().id()) + ".")) {

              if (sosString.parseToString(spooler.var(paramNames[i])).equals("0")) {
                // Anzahl der Wiederholung merken
                String sRetry = sosString.parseToString(spooler.variables().var("cur_transfer_retry" + normalize(spooler_task.order().id())));
                int retry = sRetry.length() == 0 ? 0 : Integer.parseInt(sRetry);
                --retry;
                spooler.variables().set_var("cur_transfer_retry" + normalize(spooler_task.order().id()), String.valueOf(retry));
                if (retry == 0) {
                  getLogger().debug("terminated cause max order setback reached: " + paramNames[i]);
                  spooler.variables().set_var("terminated_cause_max_order_setback_" + normalize(spooler_task.order().id()), "1");
                  return false;
                }
                getLogger().debug("launch setback: " + parallelTransferCheckRetry + " * " + parallelTransferCheckSetback);
                spooler_task.order().setback();
                return false;
              }
              else
                if (sosString.parseToString(spooler.var(paramNames[i])).equals("1")) {
                  getLogger().debug("successfully terminated: " + paramNames[i]);
                }
                else
                  if (sosString.parseToString(spooler.var(paramNames[i])).equals("2")) {
                    bSuccess = false;
                    getLogger().debug("terminated with error : " + paramNames[i]);
                  }
            }
          }
          return bSuccess;

        }
        else
          if (schedulerParams.get("parent_order_id") != null) {
            // Hauptauftrag wurde wegen Erreichens von ftp_parallel_check_retry beendet -> die restlichen Unterauftr�ge sollen
            // nicht durchlaufen
            String state = spooler.variables().var(
                "terminated_cause_max_order_setback_" + normalize(sosString.parseToString(schedulerParams.get("ftp_parent_order_id"))));
            if (state.equals("1"))
              return false;
          }

        if (sosString.parseToString(schedulerParams.get("file_path")).length() > 0) {
          isFilePath = true;
        }
        else {
          isFilePath = false;
        }

      }
      catch (Exception e) {
        rc = false;
        e.printStackTrace(System.err);
        throw (new Exception("invalid or insufficient parameters: " + e));
      }
      try { // to process ftp

        Vector<String> filelist = null;
        String remoteDir = sosString.parseToString(schedulerParams.get("remoteDir"));
        // parallel Transfer
        if (parallelTransfer && !isFilePath) {
          // nur die filelist holen um Parallelen transfer zu erm�glichen
          schedulerParams.put("skip_transfer", "yes");

          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);

View Full Code Here

   * @throws Exception
   */
  private Variable_set getParameters() throws Exception {

    try {
      Variable_set params = spooler.create_variable_set();
      // Parameter auslesen
      if (spooler_task.params() != null)
        params.merge(spooler_task.params());

      if (spooler_job.order_queue() != null && spooler_task.order().params() != null) {
        params.merge(spooler_task.order().params());

        Variable_set orderParams = spooler_task.order().params();
        String setbackCount = orderParams.value(conVarname_setback_count);
        getLogger().debug9("setback_count read: " + setbackCount);

        if (setbackCount != null && setbackCount.length() > 0) {
          iSetbackCount = Integer.parseInt(setbackCount);
          iSetbackCount++;
        }
        orderParams.set_var(conVarname_setback_count, "" + iSetbackCount);

      }
      return params;
    }
    catch (Exception e) {
View Full Code Here

   
   
    try {
     
      // Job oder Order
      Variable_set params = spooler.create_variable_set();
      if (spooler_task.params() != null) params.merge(spooler_task.params());
      if (spooler_job.order_queue() != null && spooler_task.order().params() != null)
        params.merge(spooler_task.order().params());
     
      // mandatory parameters
      name = "source_file";
      if ( params.value(name)!=null && params.value(name).length()>0 ) {
        source = params.value(name);
       
        // To make orderparams available for substitution in orderparam value
        while (source.matches("^.*%[^%]+%.*$")) {
          String p = source.replaceFirst("^.*%([^%]+)%.*$", "$1");
          String s = params.var(p);
          s = s.replace('\\','/');
          source = source.replaceAll("%"+p+"%", s);
          logger.debug("processing job parameter ["+name+"]: substitute %"+p+"% with "+s);
        }
      }
      else
        throw new Exception("job parameter is missing: ["+name+"]");
     
      logger.info(".. job parameter ["+name+"]: " + source);
     
     
      // optional parameters
      name = "target_file";
      if ( params.value(name)!=null && params.value(name).length()>0 ) {       
        target = params.value(name);
        logger.info(".. job parameter ["+name+"]: " + target);
      }
     
      name = "file_spec";
      if ( params.value(name)!=null && params.value(name).length()>0 ) {       
        fileSpec = params.value(name);
        logger.info(".. job parameter ["+name+"]: " + fileSpec);
      }
     
      try {
       
        name = "create_dir";
        if ( params.value(name) != null && params.value(name).length() > 0 ) {
          flags |= ( SOSFileOperations.toBoolean(params.value(name)) ) ? SOSFileOperations.CREATE_DIR : 0;
          logger.info(".. job parameter ["+name+"]: " + params.value(name));
        }
       
        name = "gracious";
        if ( params.value(name) != null && params.value(name).length() > 0 ) {
          flags |= ( SOSFileOperations.toBoolean(params.value(name)) ) ? SOSFileOperations.GRACIOUS : 0;
          logger.info(".. job parameter ["+name+"]: " + params.value(name));
        }
       
        name = "overwrite";
        if ( params.value(name)!=null && params.value(name).length()>0 ) {
          flags |= ( SOSFileOperations.toBoolean(params.value(name)) ) ? 0 : SOSFileOperations.NOT_OVERWRITE;
          logger.info(".. job parameter ["+name+"]: " + params.value(name));
        }
       
        name = "recursive";
        if ( params.value(name)!=null && params.value(name).length()>0 ) {
          flags |= ( SOSFileOperations.toBoolean(params.value(name)) ) ? SOSFileOperations.RECURSIVE : 0;
          logger.info(".. job parameter ["+name+"]: " + params.value(name));
        }
       
        name = "count_files";
        if ( params.value(name)!=null && params.value(name).length()>0 ) {
          count_files = SOSFileOperations.toBoolean(params.value(name));
          logger.info(".. job parameter ["+name+"]: " + params.value(name));
          if (spooler_job.order_queue() == null)
            logger.warn("This is no order job. Job parameter ["+name+"] is only available for order jobs");
        }
       
      } catch (Exception x) {
        throw new Exception("cannot evaluate job parameter ["+name+"]: " + x.getMessage());
      }
     
      name = "replacing";
      if ( params.value(name)!=null && params.value(name).length()>0 ) {       
        replacing = params.value(name);
        logger.info(".. job parameter ["+name+"]: " + replacing);
      }
     
      name = "replacement";
      // Es muss unterschieden werden zwischen NULL und ""
      String[] pArr = params.names().split(";");
      for (int i=0; i<pArr.length; i++) {
        if ( pArr[i].equals( name) )
          replacement = params.value(name);
      }
     
      if ( replacement!=null )
        logger.info(".. job parameter ["+name+"]: " + replacement);
     
     
      if ( replacing != null && replacement == null ) {
        throw new Exception("job parameter is missing for specified parameter [replacing]: [replacement]");
      }
     
      if ( replacing == null && replacement != null ) {
        throw new Exception("job parameter is missing for specified parameter [replacement]: [replacing]");
      }
     
      name = "min_file_age";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        minFileAge = params.var(name);
        logger.info(".. job parameter ["+name+"]: " + minFileAge);
      }
     
      name = "max_file_age";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        maxFileAge = params.var(name);
        logger.info(".. job parameter ["+name+"]: " + maxFileAge);
      }
     
      name = "min_file_size";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        minFileSize = params.var(name);
        logger.info(".. job parameter ["+name+"]: " + minFileSize);
      }
     
      name = "max_file_size";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        maxFileSize = params.var(name);
        logger.info(".. job parameter ["+name+"]: " + maxFileSize);
      }
     
      name="skip_first_files";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        try {
          skipFirstFiles = Integer.parseInt(params.var(name));
        } catch (Exception ex) {
          throw new Exception("invalid, non-numeric value for parameter [" + name + "]: " + ex.getMessage());
        }
        logger.info(".. job parameter ["+name+"]: " + skipFirstFiles);
      }
     
      name="skip_last_files";
      if ( params.var(name)!=null && params.var(name).length()>0 ) {
        try {
          skipLastFiles = Integer.parseInt(params.var(name));
        } catch (Exception ex) {
          throw new Exception("invalid, non-numeric value for parameter [" + name + "]: " + ex.getMessage());
        }
        logger.info(".. job parameter ["+name+"]: " + skipLastFiles);
      }
     
     
      // Methodenaufruf
      int nrOfTransferedFiles = SOSFileOperations.copyFileCnt(source, target, fileSpec, flags,
                                java.util.regex.Pattern.CASE_INSENSITIVE, replacing, replacement,
                                minFileAge, maxFileAge, minFileSize, maxFileSize, skipFirstFiles, skipLastFiles, logger);
     
      // Anzahl der �bertragenen Dateien wird in einen Order-Parameter geschrieben
      if (count_files && spooler_job.order_queue() != null) {
        spooler_task.order().params().set_var("scheduler_SOSFileOperations_file_count", String.valueOf(nrOfTransferedFiles));
      }
      
      rc = (nrOfTransferedFiles > 0);
     
      if (!rc && params.value("gracious") != null && params.value("gracious").equalsIgnoreCase("all")) {
        return (spooler_job.order_queue() != null);
      } else {
        return (spooler_job.order_queue() != null) ? rc : false;
      }
     
View Full Code Here

      // if (transferredIterator.hasNext()) {
      // filePaths+=";";
      // fileNames+=";";
      // }
      // }
      Variable_set objParams = null;
      if (spooler_job.order_queue() != null) {
        if (spooler_task.order() != null && spooler_task.order().params() != null) {
          objParams = spooler_task.order().params();
        }
      }
      else {
        objParams = spooler_task.params();
      }

      if (objParams != null) {
        Vector<File> transfFiles = ftpCommand.getTransferredFilelist();
        if (transfFiles.size() > 0) {
          for (File curFile : transfFiles) {
            filePaths += curFile.getAbsolutePath() + ";";
            fileNames += curFile.getName() + ";";
          }
          // remove last ";"
          filePaths = filePaths.substring(0, filePaths.length() - 1);
          fileNames = fileNames.substring(0, fileNames.length() - 1);
        }

        // Die Anzahl in count ist redundant. Eigentlich ist transfFiles.size entscheidend
        int count = ftpCommand.getOfTransferFilesCount();

        // Wo ist das dokumentiert, dass diese Order-/Job-Parameter versorgt werden? Im XML des Jobs unter jobdoc

        objParams.set_var(conVarname_ftp_result_files, Integer.toString(count));
        objParams.set_var(conVarname_ftp_result_zero_byte_files, Integer.toString(ftpCommand.getZeroByteCount()));
        objParams.set_var(conVarname_ftp_result_filenames, fileNames);
        objParams.set_var(conVarname_ftp_result_filepaths, filePaths);
        objParams.set_var(conVarname_setback_count, "");
      }
    }
    catch (Exception e) {
      throw new Exception("error occurred creating order Parameter: " + e.getMessage());
    }
View Full Code Here

        getLogger().debug3(matchedFiles + " matching files found");
        if (matchedFiles < pollMinFiles) {
          if (flgUseOrderSetBack && (spooler_job.order_queue() != null && spooler_task.order() != null)) {
            flgStopPolling = true;
            Variable_set orderParams = spooler_task.order().params();
            getLogger().debug9("setback_count is now: " + iSetbackCount + " , maximum number of trials: " + nrOfTries);

            if (iSetbackCount > nrOfTries) {
              orderParams.set_var(conVarname_setback_count, "");
              giveUpPoll = true;
            }
            else {
              getLogger().info(matchedFiles + " matching files found." + pollMinFiles + " files required, setting back order.");
              spooler_job.set_delay_order_after_setback(1, delay);
View Full Code Here

     * process single mail order
     */
    public boolean spooler_process() {

        Order order = null;
        Variable_set parameters = null;
        File listFile                         = null;
        File messageFile                      = null;
        File failedFile                       = null;
        String messageId                      = "";
        long mailOrderId                      = 0;
        long curDeliveryCounter               = 1;
       
        try {
            // classic or order driven
            if (spooler_task.job().order_queue() == null) {
                parameters = spooler_task.params();
                if (!this.mailOrderIterator.hasNext()) return true;
                listFile = (File) this.mailOrderIterator.next();

            } else {
                order = spooler_task.order();
                parameters = (Variable_set) spooler_task.order().payload();
               
                if ( parameters.var("file") == null || parameters.var("file").toString().length() == 0)
                    throw (new Exception("no filename was given in payload"));
               
                listFile = new File(this.getQueueDirectory()
                        + ((!this.getQueueDirectory().endsWith("/") && !this.getQueueDirectory().endsWith("\\")) ? "/" : "")
                        + parameters.var("file"));
            }

            File workFile = new File(listFile.getAbsolutePath());
            if (this.getLogger() != null) this.getLogger().info("processing mail file: " + workFile.getAbsolutePath());

View Full Code Here

  protected Variable_set getJobOrOrderParameters() {
    @SuppressWarnings("unused")
    final String conMethodName = conClassName + "::getParameters";

    try {
      Variable_set objJobOrOrderParameters = spooler.create_variable_set();
      objJobOrOrderParameters = spooler_task.params();

      if (spooler_task.job().order_queue() != null) {
        Order order = spooler_task.order();
        if (order.params() != null)
          objJobOrOrderParameters.merge(order.params());
      }

      objJobOrOrderParams = objJobOrOrderParameters;
      logger.debug("Number of Params found for Job or Order is : " + objJobOrOrderParameters.count());
      return objJobOrOrderParameters;
    }
    catch (Exception e) {
      throw new RuntimeException("error occurred getting Parameters for job or order: " + e.getMessage(), e);
    }
View Full Code Here

  public Variable_set getParameters() {
    Order order = null;
    try {
//      Variable_set params = spooler.create_variable_set();
      Variable_set params = spooler_task.params();

      if (spooler_task.job().order_queue() != null) {
        order = spooler_task.order();
        if (order.params() != null)
          params.merge(order.params());
      }
      return params;
    }
    catch (Exception e) {
      String strM = String.format(Messages.getMsg("JSJ-E-100"), e.getMessage());
View Full Code Here

    boolean      checkParallel                   = false;
    boolean      parallelTransfer                = false;
    String       parallelTransferCheckSetback    = "00:00:60";
    int          parallelTransferCheckRetry      = 60;
    Variable_set params                          = null;   
    boolean      rc                              = false;
    boolean      isFilePath                      = false;   
    boolean      orderSelfDestruct               = false;
    Properties   schedulerParams                  = null;
   
    try {
     
      this.setLogger(new SOSSchedulerLogger(spooler_log));
      try { // to get the job parameters and order parameters

        params = getParameters();
        schedulerParams = getSchedulerParameterAsProperties(params);
        checkParallel = sosString.parseToBoolean(sosString.parseToString(schedulerParams.get("check_parallel")));
        parallelTransfer =sosString.parseToBoolean(sosString.parseToString(schedulerParams.get("parallel")));       

      } catch (Exception e) {
        throw (new Exception("could not process job parameters: " + e.getMessage()));
      }

      try {
        if(checkParallel && spooler_job.order_queue() != null) {
          boolean bSuccess = true;
          String[] paramNames  = sosString.parseToString(spooler.variables().names()).split(";");
          for ( int i = 0; i < paramNames.length; i++) {

            if(paramNames[i].startsWith("ftp_check_send_" + normalize(spooler_task.order().id()) + ".")) {
              if(sosString.parseToString(spooler.var(paramNames[i])).equals("0")) {
                // Anzahl der Wiederholungen merken
                String sRetry = sosString.parseToString(spooler.variables().var("cur_transfer_retry" + normalize(spooler_task.order().id())));
                int retry =  sRetry.length() == 0 ? 0 : Integer.parseInt(sRetry);
                --retry;
                spooler.variables().set_var("cur_transfer_retry" + normalize(spooler_task.order().id()), String.valueOf(retry));
                if(retry == 0) {
                  getLogger().debug("terminated cause max order setback reached: " + paramNames[i]);
                  spooler.variables().set_var("terminated_cause_max_order_setback_" + normalize(spooler_task.order().id()), "1");
                  return false;
                }
                getLogger().debug("launching setback: " + parallelTransferCheckRetry + " * " + parallelTransferCheckSetback);
                spooler_task.order().setback();
                return false;
              } else if(sosString.parseToString(spooler.var(paramNames[i])).equals("1")) {
                getLogger().debug("successfully terminated: " + paramNames[i]);
              } else if(sosString.parseToString(spooler.var(paramNames[i])).equals("2")) {
                bSuccess = false;
                getLogger().debug("terminated with error : " + paramNames[i]);
              }
            }
          }
          return bSuccess;
        } else if(sosString.parseToString(params.var("ftp_parent_order_id")).length() > 0) {
          // Hauptauftrag wurde wegen Erreichens von ftp_parallel_check_retry beendet -> die restlichen Unterauftr�ge sollen nicht durchlaufen
          String state = spooler.variables().var("terminated_cause_max_order_setback_" + normalize(params.var("ftp_parent_order_id")));
          if(state.equals("1"))
            return false;
        }

        if (sosString.parseToString(schedulerParams.get("file_path")).length() > 0) {         
          isFilePath = true;
        } else {
          isFilePath = false;
        }

      } catch (Exception e) {
        throw (new Exception("invalid or insufficient parameters: " + e.getMessage()));
      }

      try { // to process ftp

        if(parallelTransfer && !isFilePath) {
          //nur die filelist holen um Parallelen transfer zu erm�glichen       
          Properties p = new Properties();
          p.putAll((Properties)schedulerParams.clone());
          p.put("skip_transfer", "yes");
          // kb 2011-04--27  no 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, p,
              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.SOSFTPCommandSend ftpCommand = new sos.net.sosftp.SOSFTPCommandSend(con, new SOSSchedulerLogger(spooler_log));
          ftpCommand.setSchedulerJob(this);
          rc = ftpCommand.transfer();         
          Vector filelist = ftpCommand.getFilelist();
          Iterator iterator = filelist.iterator()

          if(spooler_job.order_queue() == null) {
            // parallel transfer for standalone job
            while (iterator.hasNext()) {           
              File fileName = (File)iterator.next();
              Variable_set newParams = params;
              newParams.set_var("ftp_file_path", fileName.getCanonicalPath());
              newParams.set_var("ftp_local_dir", "");
              getLogger().info("launching job for parallel transfer with parameter ftp_file_path: " + fileName.getCanonicalPath());
              spooler.job(spooler_task.job().name()).start(params);
            }
            return false;
          } else {
            // parallel transfer for order job
            while (iterator.hasNext()) {
              File fileName = (File)iterator.next();
              Variable_set newParams = spooler.create_variable_set();
              if (spooler_task.params() != null) newParams.merge(params);

              newParams.set_var("ftp_file_path", fileName.getCanonicalPath());
              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);

View Full Code Here

TOP

Related Classes of sos.spooler.Variable_set

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.