Question:

How to execute Jobs and Orders with Remote JobScheduler Instances?

Answer:

The XML for the simplest possible process class and job is as follows:

  • Object 1: Process Class

    In the process class (e.g. with the name 'remote') you must define the host and port of the remote JobScheduler, so a file ./live/remote.process_class.xml is generated with the content:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <process_class max_processes="10"
                remote_scheduler="[your remote host]:[your remote tcp port]"/>

    See the Process Classes article for more information about process classes.

  • Object 2: Job

    In the job (e.g with the name 'remote' as independent job and the title 'Remote Execution') you must set the above process class, so a file ./live/remote.job.xml is generated with the content:

     <?xml version="1.0" encoding="ISO-8859-1"?>
    <job process_class="/remote" title="Remote Execution">
          <script language="shell"><![CDATA[
    echo "remote execution"
          ]]></script>
          <run_time/>
    </job>

    Note that the job could also be configured as an order job for a job chain.

Make sure that ....
  • a JobScheduler is running on the remote host [your remote host] with the port [your remote tcp port]

  • the security elements (see ./config/scheduler.xml) of your local and remote JobSchedulers allow the communication

     local:
    <security ignore_unknown_hosts = "yes">
    ...
    <allowed_host host = "[your remote host]" level = "all"/>
    ...
    </security>
    remote:
    <security ignore_unknown_hosts = "yes">
    ...
    <allowed_host host = "[your local host]" level = "all"/>
    ...
    </security>
                          
  • if a firewall is used then it must also be configured to allow the communication.

You can find more information here:
  • Another solution is central configuration. A supervisor will deploy job configurations to workload JobSchedulers. These workload JobSchedulers execute their jobs independently, so if the machine of the supervisor goes down, the workload Schedulers can continue working, however jobs have to be monitored in each Scheduler separately.
  • How to dynamically specify a remote JobScheduler instance.