Package sos.spooler

Examples of sos.spooler.Variable_set


           
            currentJobChainName = spooler_task.order().job_chain().name();
            currentJobPath = spooler_job.name();
            currentJobPath = (currentJobPath.startsWith("/") ? currentJobPath : "/" + currentJobPath);
            currentNodeName = spooler_task.order().state();
            Variable_set orderParams = spooler_task.order().params();
            if (orderParams.var("sync_session_id")!=null) syncSessionId = orderParams.var("sync_session_id");
           
            if (spooler_task.job().order_queue() == null) {
                throw new Exception("this job cannot be used standalone but requires being operated by a job chain");
            }
           
            //siehe js-461
            if (orderParams.var("scheduler_sync_ready")!=null) syncReady = orderParams.var("scheduler_sync_ready").equals("true");
            if (syncReady) {
               spooler_log.info("js-461: Sync skipped");
               Order o = spooler_task.order();
               Variable_set resultParameters = spooler.create_variable_set();
               String[] parameterNames = o.params().names().split(";");
               for(int i=0; i<parameterNames.length; i++) {
                   if (!parameterNames[i].equals("scheduler_sync_ready")) {
                       resultParameters.set_var(parameterNames[i], o.params().value(parameterNames[i]));
                   }
               }
               o.set_params(resultParameters);
               return true;
            }
View Full Code Here


    }
    try {
      orderPayload = clearBlanks(spooler_task.params());
      if (orderJob) {
        order = spooler_task.order();
        Variable_set orderPay = clearBlanks(order.params());
        // getLogger().debug3("Cleared orderPayload: "+orderPay.xml());
        orderPayload.merge(orderPay);
        getLogger().debug6("Merged Payload: " + orderPayload.xml());
      }
    }
View Full Code Here

    }
  }

  private Variable_set clearBlanks(Variable_set set) throws Exception {
    Variable_set retSet = spooler.create_variable_set();

    String[] keys = set.names().split(";");
    for (int i = 0; i < keys.length; i++) {
      String parameterValue = set.var(keys[i]);
      if (parameterValue != null && parameterValue.length() > 0) {
        retSet.set_var(keys[i], parameterValue);
      }
    }

    return retSet;
  }
View Full Code Here

        SOSConnection localConnection = null;
        Order order = null;
        String command = "";
        orderPayload = null;
        Variable_set realOrderParams = null;
    boolean rc = true;
    boolean resultsetAsWarning = false;
    boolean resultsetAsParameters = false;
    boolean resultsetNameValue = false;
    boolean execReturnsResultSet = false;
    autoCommit = false;
       
        try {
         
          this.setLogger(new SOSSchedulerLogger(spooler_log));
         
          super.prepareParams();         
         
         
          if(orderPayload!=null && orderPayload.var("scheduler_order_is_user_job")!=null && orderPayload.var("scheduler_order_is_user_job").equals("1")){
            userJob = true;
          }
          if(orderPayload!=null && orderPayload.var("resultset_as_warning")!=null && (orderPayload.var("resultset_as_warning").equals("1") || orderPayload.var("resultset_as_warning").equalsIgnoreCase("true"))){
            resultsetAsWarning = true;
          }
          if(orderPayload!=null && orderPayload.var("exec_returns_resultset")!=null && (orderPayload.var("exec_returns_resultset").equals("1") || orderPayload.var("exec_returns_resultset").equalsIgnoreCase("true"))){
            execReturnsResultSet = true;
          }
          if(orderPayload!=null && orderPayload.var("resultset_as_parameters")!=null && (orderPayload.var("resultset_as_parameters").equals("1") || orderPayload.var("resultset_as_parameters").equalsIgnoreCase("true") || orderPayload.var("resultset_as_parameters").equalsIgnoreCase("name_value"))){
            resultsetAsParameters = true;
            if (orderPayload.var("resultset_as_parameters").equalsIgnoreCase("name_value")){
              resultsetNameValue = true;
            }
          }
          if(orderPayload!=null && orderPayload.var("auto_commit")!=null && (orderPayload.var("auto_commit").equals("1") || orderPayload.var("auto_commit").equalsIgnoreCase("true"))){
            autoCommit = true;
          }
         
          try{
            if(userJob){
              checkOldTempUsers();
              localConnection=this.getUserConnection(orderPayload.var("scheduler_order_user_name"), orderPayload.var("scheduler_order_schema"));
            }else{
              localConnection = JobSchedulerManagedObject.getOrderConnection(this.getConnection(), this);
              localConnection.connect();
            }
          } catch (Exception e) {
            throw new Exception("error occurred establishing database connection: " + e.getMessage());
          }
         
          localConnection.setExecReturnsResultSet(execReturnsResultSet);
          try {
            if (orderJob) command = JobSchedulerManagedObject.getOrderCommand(this.getConnection(), this);
        if (command == null || command.length() == 0) {
            command = JobSchedulerManagedObject.getJobCommand(this.getConnection(), this);
        }
       
        if (command == null || command.length() == 0) throw new Exception("command is empty");
      } catch(Exception e){
        throw (new Exception("no database command found: " + e));
      }

      // replace job-specific placeholders
      command = command.replaceAll("\\$\\{scheduler_order_job_name\\}" , this.getJobName());
      command = command.replaceAll("\\$\\{scheduler_order_job_id\\}" , Integer.toString(this.getJobId()));
      command = command.replaceAll("\\$\\{scheduler_id\\}" , spooler.id());

      // replace parameters
      if (orderPayload != null)
      command = JobSchedulerManagedObject.replaceVariablesInCommand(command, orderPayload, getLogger());

            // replace order-specific placeholders
      if(orderJob) {       
        order = spooler_task.order();
        realOrderParams = order.params();
        command = command.replaceAll("\\$\\{scheduler_order_id\\}" , order.id());
        command = command.replaceAll("\\$\\{scheduler_order_managed_id\\}" , "0");
        this.getLogger().info("executing database statement(s) for managed order [" + order.id() + "]: " + command);
      } else {
        this.getLogger().info("executing database statement(s): " + command);
      }
               
      executeStatements(localConnection, command);     
     
      this.getLogger().info("database statement(s) executed.");
      if ((resultsetAsWarning || resultsetAsParameters) && localConnection.getResultSet() != null){
        String warning = "";
              HashMap result = null;
              while( !(result = localConnection.get()).isEmpty()) {
                String orderParamKey = "";
                int columnCount =0;
                warning = "execution terminated with warning:";
                Iterator resultIterator = result.keySet().iterator();
                boolean resultParametersSet = false;               
                while(resultIterator.hasNext()) {
                  columnCount++;
                  String key = (String) resultIterator.next();
                  if (key == null || key.length() == 0) continue;
                  String value = result.get(key).toString();
                  warning += " " + key + "=" + value;
                  if (resultsetAsParameters && order!=null && !resultParametersSet){
                    if (resultsetNameValue){ // name/value pairs from two columns
                      if (columnCount==1){
                        orderParamKey = value;
                      }
                      if (columnCount==2){
                        if (realOrderParams.value(orderParamKey)==null || realOrderParams.value(orderParamKey).length()==0){
                          realOrderParams.set_var(orderParamKey, value);
                        }
                      }
                    }else if (realOrderParams.value(key)==null || realOrderParams.value(key).length()==0){
                      // column name = name, value=value
                      realOrderParams.set_var(key, value);
                      resultParametersSet = true;
                    }
                  }
                }
              }
View Full Code Here

    private void checkJobSettings() throws Exception{
      try{
        int dsCounter=0;
        int dsuCounter=0;
        SOSString sosString = new SOSString();
        Variable_set params = spooler_task.params();
        if (params.var("check_disk_space") != null
                    && params.var("check_disk_space").length() >0 ){
          String sCheckDiskSpace=params.var("check_disk_space");
          if(sCheckDiskSpace.equalsIgnoreCase("0") ||
              sCheckDiskSpace.equalsIgnoreCase("false") ||
            sCheckDiskSpace.endsWith("no")){
            checkDiskSpace=false;
          }
        }
        if (params.var("check_disk_space_user") != null
                    && params.var("check_disk_space_user").length() >0 ){
          String sCheckDiskSpace=params.var("check_disk_space_user");
          if(sCheckDiskSpace.equalsIgnoreCase("0") ||
              sCheckDiskSpace.equalsIgnoreCase("false") ||
            sCheckDiskSpace.endsWith("no")){
            checkDiskSpaceUser=false;
          }
        }
        if (params.var("check_free_memory") != null
                    && params.var("check_free_memory").length() >0 ){
          String sCheckDiskSpace=params.var("check_free_memory");
          if(sCheckDiskSpace.equalsIgnoreCase("0") ||
              sCheckDiskSpace.equalsIgnoreCase("false") ||
            sCheckDiskSpace.endsWith("no")){
            checkMemorySize=false;
          }
        }
        int number=1;
        boolean found=true;
        while(found){
          if (params.var("category_"+number) != null
                        && params.var("category_"+number).length() >0 ){
            String category = params.var("category_"+number);
            String subtype = params.var("subtype_"+number);
                String value = params.var("value_"+number);
                if (subtype!=null && value!=null){
                  if(category.equalsIgnoreCase("disk_space")){
                      Long minSpace = new Long(minDiskSpace);
                          try{minSpace = new Long(value);} catch  (Exception e){}
                          if (subtype.length()>0){
View Full Code Here

  private String counter;

  public boolean spooler_process() throws Exception {
    if (getConnection()==null) throw new Exception("Job needs database connection");
    try{
      Variable_set params = spooler.create_variable_set();
      Order order = spooler_task.order();
      Variable_set orderParams = order.params();
      if (spooler_task.params() != null) params.merge(spooler_task.params());
            if (spooler_job.order_queue() != null) params.merge(orderParams);
           
            if (params.value("sequence_param_name") != null && params.value("sequence_param_name").length() > 0) {
                paramName = params.value("sequence_param_name");
                counter = paramName;
                spooler_log.info(".. parameter [sequence_param_name]: " + paramName);
            } else {
                throw new Exception("no parameter [sequence_param_name] was specified");
            }
           
            if (params.value("sequence_application") != null && params.value("sequence_application").length() > 0) {
              application = params.value("sequence_application");
                spooler_log.info(".. parameter [sequence_application]: " + application);
            } else application = "scheduler";
           
            if (params.value("sequence_section") != null && params.value("sequence_section").length() > 0) {
              section = params.value("sequence_section");
                spooler_log.info(".. parameter [sequence_section]: " + section);
            } else section="counter";
           
            if (params.value("sequence_counter") != null && params.value("sequence_counter").length() > 0) {
              counter = params.value("sequence_counter");
                spooler_log.info(".. parameter [sequence_counter]: " + counter);
            }
           
           
            String seqNr = getConnectionSettings().getSequenceAsString(application, section, counter);
            getConnection().commit();
           
            spooler_log.info("Setting order paramter ["+paramName+"] to "+seqNr);
            orderParams.set_var(paramName, seqNr);
    } catch (Exception e){
      throw new Exception("Error generating sequence number: "+e);
    }
    return true;
  }
View Full Code Here

   */
  public boolean spooler_process() {
   
    String request                    = "";
    String response                   = "";
    Variable_set parameters           = null;
    SOSSchedulerCommand remoteCommand = null;
    String signalId                   = null;
    HashMap res                       = null ;
    try {           
      if (listOfSignalObject.hasNext()) {
        res = (HashMap)listOfSignalObject.next();
        parameters = spooler_task.params();
       
        //wenn scheduler_remote_host und scheduler_remote_port nicht angegeben sind, dann 
        //die Einstellungen aus der Settings lesen
        if((sosString.parseToString(getHost()).length() == 0
            || sosString.parseToString(getHost()).equalsIgnoreCase("localhost")) &&
            getPort() == 4444) {           
          SOSConnectionSettings settings = new SOSConnectionSettings(sosConnection, "SETTINGS", new SOSSchedulerLogger(this.spooler.log()));
         
          Properties section = settings.getSection(application, sectionname);
          if(sosString.parseToString(section, "scheduler.host").length() > 0){
            setHost(sosString.parseToString(section, "scheduler.host"));
            spooler_log.info(".. settings [scheduler.host]: " + this.getHost());
            //Port auslesen nur wenn host auch aus der Settingstabelle ausgelesen wurde.
            if(sosString.parseToString(section, "scheduler.port").length() > 0){
              int sPort = 0;
              try {
                sPort = Integer.parseInt(sosString.parseToString(section, "scheduler.port"));
                setPort(sPort);
                spooler_log.info(".. settings [scheduler.port]: " + this.getPort());
              } catch (Exception e) {
                spooler_log.warn("..error while reading settings[scheduler.port]: " + e.getMessage());
              }
             
            }
          }
         
         
        }
       
        signalId = sosString.parseToString(res, "signal_id");
        spooler_log.debug("..signal Id: " + signalId);
       
        request  = "<add_order";
        request += " replace=\"" + (this.isReplace() ? "yes" : "no") + "\"";                     
        if (this.getOrderId() != null && this.getOrderId().length() > 0) request += " id=\"" + this.getOrderId() + "\"";
        if (this.getAt() != null && this.getAt().length() > 0) request += " at=\"" + this.getAt() + "\"";
        if (sosString.parseToString(res, "job_chain").length() > 0) request += " job_chain=\"" + sosString.parseToString(res, "job_chain") + "\"";
        else if (this.getJobChain() != null && this.getJobChain().length() > 0request += " job_chain=\"" + this.getJobChain() + "\"";
        if (this.getPriority() != null && this.getPriority().length() > 0) request += " priority=\"" + this.getPriority() + "\"";
        if (this.getState() != null && this.getState().length() > 0) request += " state=\"" + this.getState() + "\"";        
        request += " title=\"" + (sosString.parseToString(getTitle()).length() > 0 ? getTitle()+":"+signalId  : signalId )"\"";
        if (this.getWebService() != null && this.getWebService().length() > 0) request += " web_service=\"" + this.getWebService() + "\"";
        request += ">";
        request += "<params>";
        String[] params = parameters.names().split(";");
        for(int i=0; i<params.length; i++) {
          if (!params[i].startsWith("scheduler_remote_") && !params[i].equalsIgnoreCase("sos_settings_file")) {
            request += "<param name=\"" + params[i] + "\" value=\"" + parameters.var(params[i]) + "\"/>";
          }
        }
       
        //Parameter aus der Tabelle SCHEDULER_SIGNAL_PARAMETERS             
        String selParameters = "SELECT \"NAME\", \"VALUE\", \"LONG_VALUE\" FROM " 
View Full Code Here

    }
    return s;
  }

  private void startOrder(SOSMimeMessage message, String host_, int port_, String jobchain, String id, String state, String title) throws Exception {
    Variable_set order_params = spooler.create_variable_set();
    sosLogger.debug3("....merge");
    order_params.merge(spooler_task.params());
    order_params.set_var("mail_from", message.getFrom());
    if (message.getFromName() != null) {
      order_params.set_var("mail_from_name", message.getFromName());
    }
    else {
      order_params.set_var("mail_from_name", "");
    }
    order_params.set_var("mail_message_id", message.getMessageId());
    order_params.set_var("mail_subject", message.getSubject());
    order_params.set_var("mail_body", message.getPlainTextBody());
    order_params.set_var("mail_send_at", message.getSentDateAsString());
    if (mailSchedulerHost.equals(spooler.hostname()) && mailSchedulerPort == spooler.tcp_port()) {
      sosLogger.debug3("...host/port is this host and port. Using API");
      Job_chain j = spooler.job_chain(jobchain);
      sosLogger.debug3("...jobchain " + jobchain + " created.");
      Order o = spooler.create_order();
View Full Code Here

*/
public class MonitorSchedulerSendMail extends Monitor_impl {

  public boolean spooler_process_after(boolean result) throws Exception {
    try{
      Variable_set params = spooler.create_variable_set();
      params.merge(spooler_task.params());
      if (spooler_job.order_queue()!=null) params.merge(spooler_task.order().params());
     
      boolean mailOnSuccess=true;
      boolean mailOnError=true;
      if (params.value("monitor_mail_on_success")!=null){
        String mos = params.value("monitor_mail_on_success");
        if (mos.equalsIgnoreCase("no") || mos.equalsIgnoreCase("false") || mos.equalsIgnoreCase("0"))
          mailOnSuccess = false;
      }
      if (params.value("monitor_mail_on_error")!=null){
        String moe = params.value("monitor_mail_on_error");
        if (moe.equalsIgnoreCase("no") || moe.equalsIgnoreCase("false") || moe.equalsIgnoreCase("0"))
          mailOnError = false;
      }
      if ((mailOnSuccess && result) || (mailOnError && !result)){
        SchedulerMailer mailer = new SchedulerMailer(this);
View Full Code Here

    public boolean orderRetrySend(SOSMimeMessage sosMimeMessage) throws Exception {

        getLogger().debug3("Calling " + SOSClassUtil.getMethodName());
       
        // create parameters
        Variable_set orderData = spooler.create_variable_set();
        orderData.set_var("file", new File(sosMimeMessage.getDumpedFileName()).getName());
       
        if(!SOSString.isEmpty(getMailId())) {
          orderData.set_var("id", getMailId());
        }

        Order order = spooler.create_order();
       
        //order.set_id(sosMimeMessage.getMessageId());
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.