Specifying software license requirements by using resources
In this scenario, a job requires two software licenses to run. Using logical resources to represent license availability, a company ensures compliance to license requirements.
Business Goal
Roles
- dynamic workload broker Developer
- Defines the jobs using the Job Brokering Definition Console
- dynamic workload broker Operator
- Monitors and controls the jobs that have been submitted.
- HCL Workload Automation Job Scheduler
- Manages the workload by submitting and monitoring jobs.
Software requirements
The following software must be installed and configured, before running this scenario:- A HCL Workload Automation network with the dynamic scheduling capability.
- Optionally, the Dynamic Workload Console.
Setting up the environment
To run this scenario, complete the tasks described in Setting up your environment for dynamic scheduling.
Running the Scenario
Before you begin
logical resource name | Type | Quantity | Computer |
---|---|---|---|
locked_license1 | SoftwareA | 1 | ComputerA |
locked_license2 | SoftwareA | 1 | ComputerB |
locked_license3 | SoftwareA | 1 | ComputerC |
locked_license_4 | SoftwareA | 1 | ComputerD |
floating_license | SoftwareB | 3 | None |
Procedure
Expected Results
When the jobs are submitted, they are sent to one of the nodes having a node-locked license and using one of the floating global licenses, in accordance with the licensing policies. With the settings used in this scenario, the maximum number of jobthatConsumesLicenses instances that can run concurrently is 3 because each of them are allocated a floating license of SoftwareB. The instances can either run on the same or on different computers holding the node-locked license of SoftwareA.
Sample Configuration file
<?xml version="1.0" encoding="UTF-8"?>
<jsdl:jobDefinition xmlns:jsdl="http://www.ibm.com/xmlns/prod/scheduling/1.0/jsdl"
xmlns:jsdle="http://www.ibm.com/xmlns/prod/scheduling/1.0/jsdle"
name="jobThatConsumesLicences">
<jsdl:variables>
<jsdl:stringVariable name="myApp">sleep</jsdl:stringVariable>
</jsdl:variables>
<jsdl:application name="executable">
<jsdle:executable interactive="false" path="${myApp}">
<jsdle:arguments>
<jsdle:value>120</jsdle:value>
</jsdle:arguments>
</jsdle:executable>
</jsdl:application>
<jsdl:resources>
<jsdl:logicalResource quantity="1" subType="SoftwareA"/>
</jsdl:resources>
<jsdl:relatedResources id="Floating_Global_License" type="LogicalResource">
<jsdl:properties>
<jsdl:requirement propertyName="SubType">
<jsdl:exact>SoftwareB</jsdl:exact>
</jsdl:requirement>
</jsdl:properties>
<jsdl:allocation propertyName="Quantity">1.0</jsdl:allocation>
</jsdl:relatedResources>
</jsdl:jobDefinition>