Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Typo

Table of Contents
outlinh1. true
outlinh1. true
1printablefalse
2stylh1. none
3indent20px

Under construction.........

General

Starting jobs on different servers using process classes for remote execution 

  • JobScheduler can execute jobs on different servers.
  • Such jobs can be distributed in a way that within one job chain the respective jobs are executed on different servers.

Example

  • A job chain contains 3 jobs,

...

  • i.e. TaskB1, TaskB2, TaskB3. 

  • A user wants to configure TaskB1

...

JOE diagram of JobChain

Image Removed

  • to be executed on server ServerA (localhost), TaskB2 to be executed on server ServerB (Windows) and TaskB3 on server ServerC (Linux). 

  • JobScheduler can execute jobs on remote JobScheduler instances, by JobScheduler Agents or by SSH. 

  • In this example JobScheduler will execute jobs on remote JobScheduler instances using a process class. 

    • A JobScheduler process class is similar to a connection configuration where the remote JobScheduler's host name and port number are defined. 
    • With that process class being defined jobs can be configured to use the process class for remote execution.
    • JobScheduler will excute jobs on the remote JobScheduler instance and that instance will report back the status and the log to the local JobScheduler.

Diagram of Job Chain

Image Added

Job: JobB1

...

Code Block
languagehtml/xml



<?xml version="1.0" encoding="ISO-8859-1"?>
<job_chain  visibleorder="yes" orders_recoverabletitle="yesTaskB1 ServerA (Windows)" titleprocess_class="JobChainA_PServerA">
    <job_chain_node<script  statelanguage="Start" job="/sos/jitl/JobChainStart" next_state="Split" error_state="Error"/>

    <job_chain_node  state="Split" job="/sos/jitl/JobChainSplitter" next_state="Sync" error_state="Error"/>

    <job_chain_node  state="Split:Job01_P1" job="Job01_P1" next_state="Sync" error_state="Error"/>

    <job_chain_node  state="Split:Job02_P2" job="Job02_P2" next_state="Sync" error_state="Error" delay="30"/>

    <job_chain_node  state="Split:Job03_P3" job="Job03_P3" next_state="Sync" error_state="Error"/>

    <job_chain_node  state="Sync" job="Sync_job_chain_parallel" error_state="Error" next_state="Job04"/>

    <job_chain_node  state="Job04" job="Job04" next_state="End" error_state="Error"/>

    <job_chain_node  state="End" job="/sos/jitl/JobChainEnd" next_state="Success" error_state="Error"/>

    <job_chain_node  state="Success"/>

    <job_chain_node  state="Error"/>
</job_chain>

shell"><![CDATA[
           @echo off 
           echo here is job %SCHEDULER_JOB_NAME%
           set /a number=%random% %%30 +1
           echo "%SCHEDULER_JOB_NAME% :sleeping for %number% seconds....."
           set computername
           set os 
           ping 127.0.0.1 -n %number% > nul
    ]]></script>
    <run_time />
</job>

Process Class: ServerA

Code Block
languagehtml/xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<process_class  max_processes="10" remote_scheduler="8of9:4441"/>

See also: