Introduction

Process classes limit the number of jobs that are running concurrently.

Process classes specify remote JobScheduler Workload instances and Agents on which jobs should be executed.

Use of Process Classes

A process class is an object that can be assigned to a job. It has a number of functions.

Use for Resource Contention Management

  • To limit the number of processes that can start in parallel.
    • If that limit were reached then an additional job would be caused to wait for the process class to become available.
    • Jobs waiting for a process class to become available will not consume system resources such as CPU or memory.
  • Example
    • Process class for Resource Contention Management
      <?xml version="1.0" encoding="ISO-8859-1"?>
      <process_class  max_processes="10"/>

Use with a JobScheduler Master for Remote Execution 

  • To run a job on a remote JobScheduler Workload instance or Agent for remote execution
    • Process classes can reference remote JobScheduler instances for execution of a job:
      • At the time of job execution the initiating JobScheduler hands over the job configuration to the remote JobScheduler instance.
      • After completion of the job the initiating JobScheduler regains full control and will continue execution e.g. with the next job in a job chain.
      • The connection to the remote JobScheduler instance makes use of TCP, i.e. the remote instance is configured by host:port.
  • Example
    • Process class for Remote Execution with a Master
      <?xml version="1.0" encoding="ISO-8859-1"?>
      <process_class  max_processes="10" remote_scheduler="somehost:4444"/>

Use with Agents and High Availability

  • Process classes can be used as a means to implement high availability:
    • FEATURE AVAILABILITY STARTING FROM RELEASE 1.8
    • A sequence of JobScheduler Agents can be specified that would be checked for availability by the initiating JobScheduler instance at run-time.
    • If a JobScheduler Agent were not avaiable then the next Agent would be selected for execution of a job. The configuration is made from the <remote_schedulers select="first|next"/> attribute.
    • The connection to an Agent makes use of the HTTP or HTTPS protocol; i.e. the remote instance is configured by http://host:port or https://host:port .
  • Example
    • Agent Passive Cluster configuration

      Process class for fixed-priority scheduling with Agents
      <?xml version="1.0" encoding="ISO-8859-1"?>
      <process_class  max_processes="10"/>
          <remote_schedulers select="first">
              <remote_scheduler remote_scheduler="http://Andreas-MacBook-Pro.local:4445" http_heartbeat_timeout="15" http_heartbeat_period="10"/>
              <remote_scheduler remote_scheduler="http://localhost:4445" http_heartbeat_timeout="15" http_heartbeat_period="10"/>
          </remote_schedulers>
      </process_class>
    • Agent Active Cluster configuration

      Process class for round-robin scheduling with Agents
      <?xml version="1.0" encoding="ISO-8859-1"?>
      <process_class  max_processes="10"/>
          <remote_schedulers select="next">
              <remote_scheduler remote_scheduler="http://Andreas-MacBook-Pro.local:4445" http_heartbeat_timeout="15" http_heartbeat_period="10"/>
              <remote_scheduler remote_scheduler="http://localhost:4445" http_heartbeat_timeout="15" http_heartbeat_period="10"/>
          </remote_schedulers>
      </process_class>

See also