HCL Workload Automation, Version 9.4

Writing JSDL definitions with the Job Brokering Definition Console

The Job Brokering Definition Console provides an easy-to-use graphical interface that helps you create and edit JSDL job definitions for use with HCL Workload Automation.

The Job Brokering Definition Console graphical interface helps you create and edit job definitions based on the Job Submission Definition Language (JSDL) schema. Each text field in the Job Brokering Definition Console corresponds to an element or attribute in the JSDL file and vice versa. You can use the Job Brokering Definition Console to create existing job types. If you need to create job types with advanced options, use the Dynamic Workload Console or composer command.

The Job Brokering Definition Console simplifies the task of creating a JSDL file by hiding the complexity of the file itself and validating the file structure against the JSDL schema. Information defined in the Job Brokering Definition Console is automatically converted to the corresponding element or attribute in the JSDL file.

You can save a JSDL file locally or upload it as a job definition in the Job Repository where it becomes available for submission. 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.

The Job Submission Description Language (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 it. These include the following:

  • Job identification information
  • Program running information
  • Resource requirements
  • Scheduling and running requirements
  • Resource quantity to be allocated or required
  • Logical allocation of the resource quantity

Selecting target types

When creating a JSDL file, you can choose between the following resource types as targets for your job:
Resources
A resource is a computer system. You can use this resource type to define a basic requirement for your job.
Related resources
A related resource is a set of resource types. You can use this resource type to define a basic requirement for your job. A related resource includes the following resource types:
  • A set of hardware and software properties of a computer such as operating system, file system and network system.
  • Logical resources and logical entities that can be associated to one or more computers to represent applications, groups, licenses, servers and so on.
Related resources have two main functions:
  • You can specify related resources as an additional requirement adding to the resource requirement. In this case, you must create a relationship between the resource and the related resource.
  • You can use the related resource to indicate that the presence of a certain resource in your environment is a co-requisite for running the job. In this case, you must not create a relationship between the resource and the related resource. A related resource having no relation to a resource is a global resource. For example, if you want to move a file from resource A to resource B, resource B is a co-requisite for running the job which moves the file. Computers can only be defined as global resources.

Selecting resource types

Dynamic workload broker manages the resource types listed in Table 1. For each resource type, you can specify requirements on the properties listed in the Available properties column. Table 1 also lists consumable properties and properties that can be optimized. Consumable properties can be allocated exclusively to the job while it runs using the allocation mechanism. Properties that can be optimized can be used to provide a more effective load balancing on the resource property.
Table 1. Resource types and properties
Resource Type Available properties Is consumable Can be optimized Supports wildcards
ComputerSystem CPUUtilization No Yes No
HostName No No Yes
Manufacturer No No Yes
Model No No Yes
NumOfProcessors Yes Yes No
ProcessingSpeed No Yes No
ProcessorType No No No
LogicalResource DisplayName No No Yes
SubType No No Yes
Quantity Yes Yes No
OperatingSystem DisplayName No No Yes
FreePhysicalMemory No Yes No
FreeSwapSpace No Yes No
FreeVirtualMemory No Yes No
OperatingSystemType No No No
OperatingSystem
Version
No No No
TotalPhysicalMemory Yes Yes No
TotalSwapSpace Yes Yes No
TotalVirtualMemory Yes Yes No
FileSystem DisplayName No No Yes
FileSystemRoot No No Yes
FileSystemType No No No
FreeStorageCapacity No Yes No
TotalStorageCapacity Yes Yes No
NetworkSystem NetworkAddress No No No
NetworkSystem
HostName
No No Yes

When you define the requirements for a job definition, you can define the amount of a consumable property which will be allocated to the job. When a resource property is allocated to a job, the amount you specify is logically reserved for the job. If another job is submitted which allocates a value greater than the remaining capacity of the same consumable property, this job cannot run on the same resource as the previous job because the required property is already reserved. If no property allocation is specified in the job definition, the job can run on the same resource as the previous job because the allocation mechanism applies only if both jobs allocate the same property.

You can use the allocation mechanism to limit concurrent use of the same quantity by several jobs and improve system performance.

To allocate a property for a job, use the allocation element in the JSDL file or the Software Requirements and Hardware Requirements tabs in the Job Brokering Definition Console.

This allocation type applies to computer systems. To allocate a property for a resource other than a computer system, you define the resource whose property you want to allocate in the Related resource pane and define the allocation setting for one or more of its properties. You then define a relationship between the resource and the related resource you created. In this way you define the related resource and the allocated property as a requirement for the job to run.