JobScheduler comes with the following features:
Operating Systems
JobScheduler can run on Windows and Linux operating systems. Other operating systems are supported to a limited extent, e.g. for use with JobScheduler Agents and for Agentless Scheduling. For supported platforms see the article Which platforms is JobScheduler available for and what platform support is provided?
Databases
JobScheduler uses a database to store the status of jobs, job chains and orders as well as job protocols and the job history. The database allows such information to be persistent, allowing, for example a job or order to be restored to its previous state after a JobScheduler restart or in case of failover.
User Interfaces
JobScheduler comes with the following user interfaces:
- JOC Cockpit
which provides a web-based interface for starting and monitoring jobs, job chains and orders in real-time. - JOE - JobScheduler Object Editor
which is used to manage JobScheduler objects such as jobs, job chains, orders, Schedules etc. - JOC - JobScheduler Operations Center (up to release 1.10)
which provides a web-based interface for starting and monitoring jobs, job chains and orders in real time. - JID - JobScheduler Information Dashboard (up to release 1.10)
which provides information about daily work plans - what will run today, what has been executed, what executions were late, what is scheduled for tomorrow etc.
Command Line Operation
The JobScheduler can be operated from the command line, allowing a wide range of operations to be carried out by an external application. This includes The PowerShell CLI provides the whole range of operations, a smaller subset is available for the Unix shell.
Jobs and Job Chains
Scripting
The JobScheduler comes with a scripting interface that allows execution of scripts in languages such as JavaScript, etc.
- Languages that are supported by the Java javax.script package (ECMAscript compatible engines such as Rhino, Nashorn).
- Languages for Windows that are provided by PowerShell Jobs and VBScript Jobs.
- Scripts can be used to extend jobs by job scripts and monitor scripts and are a lightweight solution for individual control of processing behavior.
Error handling
The JobScheduler comes with a number of methods for error handling. These include:
- stop a job: running orders have to wait for the job to become available
- suspend an order: the order waits to be resumed later on
- setback an order: make an order repeatedly try to continue processing after a predefined time interval
- make an order leave a job chain
- make an order continue processing with a specific job node for error handling
Event handling
JobScheduler Event handling is a mechanism for implementing complex dependencies between jobs or between jobs and external events.
High availability
- Fault Tolerance, Resilience and Redundancy provide high-availability of JobScheduler for a number of outage scenarios:
- High Availability requires the system including JobScheduler, database, storage etc. to be available, not just one component.
- High Availability is oriented towards specific outage scenarios, not towards any possible failure.
- Master / Agent Resilience includes a number of measures for operational robustness:
- Master / Agent Reconciliation allows continued execution of tasks in case of recoverable Network Connection Loss.
- Master Service Recovery includes supported measures after a Master Service Failure.
- Database Service Recovery includes the capability to recover in case of Database Connection Loss.
- Master / Agent Redundancy includes a number of architecture decisions:
- Master Clusters provide redundancy of Master instances in a network.
- Agent Clusters can be used to compensate the outage of a server that runs an Agent.
- Recovery Strategies provide an overview of means how to restore the scheduling service
Cross-Platform Scheduling
JobScheduler uses two methods for remote execution: JobScheduler Agents and Agentless Scheduling per SSH.
Agents
Any number of JobScheduler Universal Agents are controlled by a Master JobScheduler in a Master / Agent Cluster and are used for carrying out remote scheduling tasks.
Agentless Scheduling
The SSH (Secure Shell) JITL job (JobSchedulerSSHJob) allows a JobScheduler to execute programs on another computer without a JobScheduler Agent being installed on that machine. The JobSchedulerSSHJob allows execution on Windows and Unix systems.
Central configuration
Central configuration allows the efficient distribution of configuration files from a central source to distributed JobScheduler instances by use of a Supervisor JobScheduler. The single point of configuration ensures accurate and punctual delivery of the configuration data to all instances.
Managed FileTransfer
JobScheduler provides two methods for managing the transfer of files: Both methods make use of the YADE implementation that comes with a number of unique features, see YADE - Features
Resource Contention Management
Process classes and locks can be used to manage the use of resources such as databases or printers:
- Process Classes:
- limit the number of jobs that are running concurrently.
- specify remote JobScheduler Workload instances and Agents on which jobs should be executed.
- Locks:
- limit the number of jobs that access common resources such as databases in parallel.
- allow mutually exclusive access, i.e. making jobs wait (without consuming any CPU) for a lock to be released.
File watching
File watching is used to automatically start jobs and job chains when files arrive in a specified folder. File watching is performed on the JobScheduler Master or any Agent.
Directory monitoring
Directory monitoring is used to automatically start jobs when a change occurs within a specified folder.
Programming interfaces
The JobScheduler comes with a number of powerful interfaces that are targeted at the following scenarios:
- implementing jobs and monitors that would e.g. check execution results and decide on specific actions. Such implementations often make use of the API Interface to check and manipulate JobScheduler Objects.
- developing individual programs and complex jobs, e.g. based on the Java API Interface, that would manipulate JobScheduler objects, e.g. create and submit orders from an individual application.
Notifications
JobScheduler comes with its own mail client which it can use to send notifying e-mails in the event of, for example, jobs ending in error.
Monitoring
JobScheduler can be monitored by System Monitors. Such products include e.g. HP OpenView®, Microsoft SCOM®, Nagios®, op5®, Opsview®, Zabbix® etc. As System Monitors are restricted to check the availability and performance of a monitored service the JobScheduler provides additional functionality for System Monitors to report on individual job failure and recovery. The JobScheduler Monitoring Interface can be used with any System Monitor that provides a command line tool for passive checks.
Maintenance Window Management
Maintenance Window Management ensures that for a given time slot no jobs shall be executed. JobScheduler supports a number of mechanisms to implement maintenance windows.
- Use of the
Pause
andContinue
options with the JOC GUI or the respective XML Interface commands<modify_spooler cmd="pause"/>
and<modify_spooler cmd="continue"/>.
- Script solution for Maintenance Window
- Use of Locks
- Use of Schedules
Disaster Recovery
Localization
Language files are provided for the installation of JobScheduler and for most of its operating interfaces. The default language is English.
Build Instructions
Our software is Open Source. Therefore users are able to compile the source code of the products. This is particularly useful if you use our products on platforms with limited support, see Which platforms is JobScheduler available for and what platform support is provided?
Migration and Integration
JobScheduler provides a number of features to map the functionality of other job scheduling systems. JobScheduler does not include any built-in capabilities for automated migration from legacy workload automation products. However, the SOS provides Migration Services for a smooth transition. There are integration scenarios that would allow JobScheduler to be operated with legacy scheduling products, e.g. by JobScheduler Agents.
Managed Jobs (deprecated)