Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Display feature availability
    StartingFromRelease1.9

    • Starting with this release this feature is included with the JobScheduler setup.
    • For previous releases please use the below downloads.
  • Download the attached file: operations.zip
    • Unzip the archive to your ./config/live/sos folder. All files contained will be unzipped to an operations sub-folder.
  • Download the attached file: job_documentation.zip
    • Unzip the archive to your ./jobs folder. All files contained will be unzipped directly to that folder.

...

  • unpack the archive:
  • Installation
      • Java JAR files
        • user_lib/com.sos-berlin.jitl.criticalpath-0.1.jar
          • copy this file to the <scheduler_home>/lib/user_lib folder. If this folder not exists, copy the file to the 
  • Job Documentation

Explanations

Job Chain sos/operations/criticalpath/UncriticalJobNodes

The functionality includes job nodes to be skipped for critical path processing. This is achieved by

  • marking a job node being part of a critical path by prefixing the job node state attribute either with "+" (required) or "-" (skippable).
  • running a new JITL job "activate_critical_path" the Skip order  that depending on its parameterization would run in one of these processing modes:
    • skip the job nodes that are marked as being skippable ("-") (default) or
    • skip the job nodes that are not marked as being required ("+").
  • running a new JITL job "deactivate_critical_path" that running the Unskip order that will reverse the above operation.

...

Planned Critical Path Activation 

Scenario 

Quite often business processes do not provide of a fixed start time, average run time and expected end time, but in case of circumstances the fixed start time has to be changed, e.g. due to system maintenance, delayed availability of input data etc.

  • In such an exceptional situation to achieve the business process goals with adherence to the SLA, some jobs can be excluded from the business process (job chains).
  • A job can be marked in a job chain either being skippable ("-") or being critical ("+" ) for the business process.
  • If a situation arises where parts of the job chain have to be skipped, then the JobScheduler operator can start the  job activate_critical_paththe Skip orderThis job This order will search through the JobScheduler configuration and set the non-critical jobs to skip processing of orders.
  • A job chain with non-critical jobs is set to skip processing of orders by these jobs independently from the start event of these orders (manually/scheduled).
  • Once the business process completes with only critical jobs, then the job chain's original state can be reactivated by the job deactivate_critical_pathUnskip order.

Example Job Chain

Code Block
languagexml
titleJob chain critical path
collapsetrue
<?xml version="1.0" encoding="iso-8859-1"?>
<job_chain  orders_recoverable="yes" visible="yes" title="JobChainA" max_orders="3">
    <job_chain_node  state="Start"  job="/sos/jitl/JobChainStart" next_state="-100"    error_state="End_Err"/>
    <!-- non critical job step , when critical path is active following job will be skipped -->
    <job_chain_node  state="-100"    job="01_TaskA1"               next_state="200"     error_state="End_Err"/>
    <job_chain_node  state="200"     job="01_TaskA2"               next_state="-300"    error_state="End_Err"/>
    <!-- non critical job step , when critical path is active following job will be skipped -->
    <job_chain_node  state="-300"    job="01_TaskA3"               next_state="400"     error_state="End_Err"/>
    <job_chain_node  state="400"     job="01_TaskA4"               next_state="500"     error_state="End_Err"/>
    <job_chain_node  state="500"     job="01_TaskA5"               next_state="End_Suc" error_state="End_Err"/>
    <job_chain_node  state="End_Suc" job="/sos/jitl/JobChainEnd"   next_state="Success" error_state="Error"/>
    <job_chain_node  state="End_Err" job="/sos/jitl/JobChainEnd"   next_state="Error"   error_state="Error"/>
    <job_chain_node  state="Error"/>
    <job_chain_node  state="Success"/>
</job_chain>

...

  • In such an exceptional situation the job chain can have the first node check the current time and if it finds late arrival of the file then triggers the job activate_critical_path the Skip order for a specific job chain.
  • Once processing completes successfully the last node of the job chain can start the job deactivate_critical_path which the Unskip which will reset the job chain status back to normal operation with all the jobs to be executed.

...

Code Block
languagexml
titleJob chain critical path Dynamic
collapsetrue
<?xml version="1.0" encoding="iso-8859-1"?>
<job_chain  orders_recoverable="yes" visible="yes" title="JobChainA" max_orders="3">
    <job_chain_node  state="Start"                    job="/sos/jitl/JobChainStart" next_state="-100" error_state="End_Err"/>
    <!-- following job will check if its required to activate the critical path --> 
   <job_chain_node  state="activate_critical_path"   job="/sos/operations/activate_critical_path" next_state="-100" error_state="End_Err"/>
    <!-- non critical job step , when critical path is active following job will be skipped -->
    <job_chain_node  state="-100"                     job="01_TaskA1"               next_state="200"     error_state="End_Err"/>
    <job_chain_node  state="200"                      job="01_TaskA2"               next_state="-300"    error_state="End_Err"/>
    <!-- non critical job step , when critical path is active following job will be skipped -->
    <job_chain_node  state="-300"                     job="01_TaskA3"               next_state="400"     error_state="End_Err"/>
    <job_chain_node  state="400"                      job="01_TaskA4"               next_state="500"     error_state="End_Err"/>
    <job_chain_node  state="500"                      job="01_TaskA5"               next_state="End_Suc" error_state="End_Err"/>
    <!-- following job will  deactivate the critical path if activated by the first node--> 
    <job_chain_node  state="deactivate_critical_path" job="/sos/operations/deactivate_critical_path"     next_state="End_Suc" error_state="End_Err"/>
    <job_chain_node  state="End_Suc"                  job="/sos/jitl/JobChainEnd"   next_state="Success" error_state="Error"/>
    <job_chain_node  state="End_Err"                  job="/sos/jitl/JobChainEnd"   next_state="Error"   error_state="Error"/>
    <job_chain_node  state="Error"/>
    <job_chain_node  state="Success"/>
</job_chain>