Job definitions
This topic provides an overview of the possible content of job definitions and describes how the different types of job definition content are added using the Job Brokering Definition Console.
A job definition contains all the information required to determine the computer system or systems on which a job could run, any scheduling and job balancing rules that are to be applied when allocating resources, as well as the information required to identify and run the application. It is defined using the Job Submission Description Language (JSDL).
JSDL is an XML-based language used for specifying the characteristics and requirements of a job, as well as instructions on how to manage and run the jobs. A JSDL file can include the following types of information
- Basic job information
- Includes the job name, any job categories to which you want to
assign it, and any variables that are used in the job.Variables can be used in several ways in a job definition. For example:
- A set of variables can describe a command and its arguments. These can be added to program running information and within the script of the job.
- Variables can also be used to identify resources, for example, a target host.
- Program running information
- Identifies the script or executable to be run and, if necessary,
standard input, output, and error files and the working directory.
If the job needs to provide credentials these can also be specified.
You can define the required credentials to run a job if the credentials are different from those under which the HCL Workload Automation agent runs.
On Windows targets, jobs with no specified credentials, run under the user account specified during the HCL Workload Automation agent installation, unless the agent runs under the Local System account. In this case, any job submitted to the agent runs under the default administrator's account.
On UNIX targets, jobs with no specified credentials, run under root.
- Required resource specifications
- Enables HCL Workload Automation to identify the computer systems on which the job can run based on hardware and software requirements.
- Related requirements
- Allow you to specify required relationships between resources and co-requisite resources for a job.
- Allocation
- Resource quantity to be allocated or required.
- Optimization and load-balancing policies.
The following load balancing policies are available:
- Balance load between resources by number of jobs running
- Jobs are assigned to targets based on the number of jobs currently running on each target. The objective is to ensure that each resource runs the same number of jobs during the same time interval. This policy is the default. It is suitable for situations where many similar jobs, which consume similar quantities of system resources, are to be run on a set of resources
- Balance load between resources by optimization objective
- You define an objective by selecting a resource type and related resource property and specifying the objective to maximize or minimize the property. For example, you could balance load with the aim of keeping the amount of free physical memory available on operating system resources as high as possible. The objective would be set to maximize free physical memory and when jobs with this objective are submitted, they are allocated to available resources so that more jobs go to the resources that currently have the greatest amount of free physical memory.
- Select best resource by optimization objective
- You define the optimization objective in exactly the same way as described for the Balance load between resources by optimization objective. However, when a job with this policy is submitted, it would always be assigned to the resource that best matched the objective. For example, if the objective is to maximize free physical memory, the job would run on the resource that had the highest amount of free physical memory at submission time.
- Enterprise Workload Manager
- If you have Enterprise Workload Manager installed, you can define jobs with an optimization policy to use the load-balancing capabilities of this product.
- Scheduling and running requirements.
- Allows you to define a priority, the time a job can wait for resources
before failing, and recovery actions in the event of a failure.
The maximum priority is 100 and priority settings between 90 and 100 should only be used for critical jobs. Jobs with these priorities are always allocated resources ahead of other waiting jobs regardless of how long the other jobs have been waiting. At lower priorities than 90, jobs are allocated resources based on the priority setting and the age of the job. As time passes, jobs with a low priority setting increase their priority so that they eventually are allocated resources even if jobs with higher initial priorities are waiting.
The Job Brokering Definition Console graphical interface allows you to create and edit job definitions based on the JSDL schema. Fields in the Job Brokering Definition Console correspond to elements in the JSDL schema. When creating a job definition using the Job Brokering Definition Console, you can view the job definition structure in the Outline pane.
The JSDL schema offers great flexibility in defining jobs and their requirements. A job can have a very open definition, with few defined requirements, allowing it to run on a wide range of resources and to follow default rules for load balancing. Other jobs could have a much more detailed set of hardware and software requirements, as well as specific resource allocations and a load balancing policy. Using the graphical interface simplifies the task of creating JSDL files and eliminates many of the risks of error that occur when the files are edited manually. The different elements that make up a job definition are available, in many cases with a set of fixed values from which you can choose. Information defined in the Job Brokering Definition Console is validated, ensuring that any values you have entered are correct and consistent with each other.
In addition, the Job Brokering Definition Console also includes content assistance that provides server-side values for several fields on the interface, for example, candidate host names and logical resources, to name a few. Fields with content assistance are identified by a light-bulb icon next to the field. Position your mouse over the light-bulb and press Ctrl + Space to display a list of possible values. Server-side values are populated using the server cache for the currently active server connection. Server data is cached automatically when the initial connection to a server is made or each time the server connection is changed. You can refresh the cache at any time, for example, if you have defined a new resource requirement on the server, by selecting .
When you save the file in the Job Brokering Definition Console, the JSDL file is checked against an .xsd file provided with the product installation which contains the syntax rules. A message is displayed if a syntax error is encountered in the JSDL file, allowing you to correct the error. You can save the JSDL files locally or upload them as job definitions in the Job Repository where they become available for submission.