Uploaded image for project: 'JS - JobScheduler'
  1. JS - JobScheduler
  2. JS-913

Using /bin/jobscheduler_events.(sh|cmd) to add an event doesn't work

    XMLWordPrintable

Details

    • Fix
    • Status: Resolved (View Workflow)
    • Major
    • Resolution: Fixed
    • None
    • 1.3.12.2347
    • None
    • None

    Description

      If you want to add an event via ./bin/jobscheduler_events.(sh|cmd) then you get the error

       
      Job Scheduler response: 
      Error XML-ERROR   [:1: validity error : Validation failed: no DTD found ! 
      <add_order job_chain='/sos/events/scheduler_event_service'><params><param name=' 
                                                                ^ 
      :1: parser error : Input is not proper UTF-8, indicate encoding ! 
      Bytes: 0xFE 0x3F 0x78 0x6D 
      _ON_RESCHEDULE' value='false'/><param name='JOBSCHEDULEREVENTJOB.EVENTS' value=' 
                                                                                      ^]
      

      This script creates an order for the job chain /sos/events/scheduler_event_service.
      This order gets all variables from the job environment which starts with $SCHEDULER_PARAM_ as parameter.
      Now this environment contains a variable $SCHEDULER_PARAM_JOBSCHEDULEREVENTJOB.EVENTS with a value which leads to this error.

      This functionality will be removed.
      If you want additional parameters in the order then you must use the already existing -d option of /bin/jobscheduler_events.(sh|cmd).
      Example (job has parameter foo="bar"):

      <job>
        <params>
          <param name="foo" value="bar"/>
        </params>
        <script language="shell"><![CDATA[
          echo hallo
          "$SCHEDULER_HOME/bin/jobscheduler_event.sh" -x $? -e my_event -d "foo=$SCHEDULER_PARAM_FOO"
        ]]></script>
        <run_time/>
      </job>
      

      WORKAROUND
      For Windows insert the following red line in line 638 of .\bin\jobscheduler_events.cmd

      @rem add environment variables starting with SCHEDULER_PARAM_ to parameters
      set SCHEDULER_PARAM_JOBSCHEDULEREVENTJOB.EVENTS=
      set SCHEDULER_PARAM_ 1> %TEMP%%TMP_DIR%%TMP_SUFFIX% 2>nul

      For Linux insert the following red line in line 327 of ./bin/jobscheduler_events.sh

      test "$pname" = "" && continue
      test "$pname" = "jobschedulereventjob.events" && continue
      pvalue=`$my_echo "$scheduler_param" | cut d = -f 2 -s`

      Attachments

        Activity

          People

            oh Oliver Haufe
            oh Oliver Haufe
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 1 day
                1d
                Remaining:
                Remaining Estimate - 1 day
                1d
                Logged:
                Time Spent - Not Specified
                Not Specified