When we need operational efficiency and orchestration in an IT and Business workflows, Workload Automation is the best approach for Enterprise Resource Planning.
We see day by day our customers, especially those using SAP to run their critical jobs with specific time constraints and committed deadline.
Business jobs must run and must take less time as possible using at the best all available resources on the target server.
By leveraging the power of HCL Workload Automation and making the most out of its integration with SAP, we have seen our customers move their businesses to the next level of innovation and maturity.
Want to learn how improve your job background execution?
In this blog I will illustrate how to use Workload Automation Job Throttling feature.
Using Workload Automation integrated with SAP®, you can create, schedule, and control SAP jobs and monitoring you SAP landscape.
SAP jobs run on application servers that host work processes of type batch.
Critical batch jobs are run in specific time frames, on specific application servers.
With SAP Basis version 6.10 and later, application servers can be assigned to server groups. With Workload Automation, you can assign a server group to a job and leveraging the Job Throttling feature it can manages all SAP background processes from several applications on one or more servers in heterogeneous environments.
In this way, when a job is launched, the SAP system runs it on an application server that belongs to the specified group, balancing the workload among the various application servers.
The Job Throttling feature helps you to improve the efficiency of your scheduling on SAP systems and reduces the batch window for your SAP jobs to a minimum.
Using advanced XBP 2.0 and 3.0 functions, such as the job interception and parent-child, the job throttling ensures that the SAP system is not overloaded and the number of released jobs does not exceed the total number of free SAP background work processes in the system.
This criteria-driven process is suitable for any size of organization in any industry.
HCL Workload Automation launches jobs in SAP using jobs defined to run on a dedicated agent.
An SAP extended agent or dynamic workstation is defined as a Workload Automation workstation that is hosted by a fault-tolerant agent, master workstation or broker, which uses the r3batch access method. The SAP agent workstation uses the access method r3batch to pass SAP job-specific information to predefined SAP instances.
If you need to run hundreds of jobs daily you need to keep the jobs from killing the other systems, so a mechanism should be put in place to disallow running at the same time more than a defined number of jobs of certain types on certain environments.
This is called a “throttling” mechanism and it allows an administrator to control the flow of jobs through the system.
These throttling policies work as filters allowing or disallowing a job to be considered for scheduling by specifying limits regarding system usage for any given moment.
On SAP system, when the number of released batch jobs exceeds the number of background work processes, the SAP system gets overloaded and reduces the overall execution responsiveness.
The Workload Automation Job Throttling feature queues intercepted jobs and releases them when the background work processes that they need on the SAP server or SAP server group are available. The queue of intercepted jobs is sorted by scheduling time and priority of SAP jobs.
When the SAP parent-child feature is enabled, children jobs inherit their parent’s priority so that new urgent jobs are run before other planned jobs.
The job throttling feature uses RFC SDK 7.50 libraries, which are supported on several operating systems (for the complete list please refer to SAP Note 825494) and you must have the SAP JCo 3.0.2 libraries installed (for the complete list of the operating systems supported by JCo, refer to SAP Note 1077727).
To operate the job throttling you need to follow the steps below:
Step1. Setting the options in the options file
Step2. Enabling and configuring the job interception feature
Step3. Enabling job class inheritance
Step4. Configuring the logging properties
Step5. Starting and stopping the job throttling feature
Step1. Setting the options in the options file
To define the behaviour of the job throttling feature, set the following options accordingly:
- throttling_enable_job_class_inheritance
- throttling_enable_job_interception
- throttling_interval
- throttling_max_connections
- throttling_release_all_on_exit
Step2. Enabling and configuring the job interception feature
As a prerequisite, the job throttling feature requires that the job interception feature is enabled in the SAP system, so enable the job interception, either automatically or manually.
Then, in the SAP system, configure the job interception criteria by setting the job name, creator, and client related to the jobs you want to intercept. Save your settings.
SAP will intercept all the jobs matching the selection criteria, and the job throttling will release all the jobs that were intercepted.
Step3. Enabling job class inheritance
Based on your business case, you can configure the job throttling to have the intercepted job inherit the priority class from its progenitor (the top-level job in the hierarchy), if the progenitor class is higher than the intercepted job class.
This will result in the priority queue scheduled jobs order.
Step4. Configuring the logging properties
You can configure the trace properties of the job throttling by editing the logging configuration file. You can also configure the name, number, and size of the trace file.
Step5. Starting and stopping the job throttling feature
To start and stop the job throttling, run the executable file related to the operating system you are using.
Optionally, you can create a Workload Automation job that starts the job throttling.
Some performed test help to identify the benefit of this feature in term of job execution time reduction. The number of Background process available in the target SAP system in both case is set to the same value because is the crucial value for performance prospective.
Scenario 1 – Performance Comparison
Environment
- SAP System with 3 Background process.
- A parent job that spawns 15 children jobs.
- Each children job runs for 1 minutes
Scenario
- Inspection of Job Interception table see that INTER* jobs are intercepted.
- Submission of a parent job that submits not intercepted children.
- Submission of a parent job that submits intercepted children.
- Comparison between intercepted and not intercepted children total time.
Scenario 2 – Another Priority Inheritance
Environment
- SAP System with 3 Background process.
- A class ‘A’ parent job that spawns 9 children jobs.
- A class ‘B’ parent job that spawns 9 children jobs.
- Each children job runs for 10 seconds.
Scenario
- Submission of both class ‘A’ and ‘B’ parent jobs without the throttler:
- No order for child execution
- Daly in overall execution time
- No order for child execution
- Submission of both class ‘A’ and ‘B’ parent jobs with the throttler.
- Class ‘A’ job’s children are executed before class ‘b’ ones.
- No delay in overall execution time
- Class ‘A’ job’s children are executed before class ‘b’ ones.
At the end we can say that …
From the previous scenarios we observe that “optimal time” cannot be achieved due to the limitation of the “Round Robin” algorithm used to spawn jobs into “Background Process” queues, not allowing a perfect parallelism in the execution.
Job Throttling feature, instead helps to distribute the jobs execution at the same level between the available “Background Process” in more efficient way letting the SAP application to match the “optimal time“.