Job Management Partner 1/Automatic Job Management System 3 System Design (Work Tasks) Guide
JP1/AJS3 allows you to specify a group of execution agents as the agent host on which to execute a job or jobnet. This allows the processing load to be distributed among the execution agents in the group. The patterns of load distribution are as follows:
- Jobs are distributed evenly among a number of execution agents.
- Individual execution agents are assigned different limits for the number of concurrently executable jobs.
- When the number of jobs executing concurrently at a specific execution agent reaches the limit, execution is distributed to the other execution agents.
You can specify an execution agent group to execute the following units:
- Root jobnets
- Nested jobnets
- PC jobs
- Unix jobs
- Action jobs
- Custom jobs
This section describes how load distribution processing takes place in each pattern. In this example, the agent group AGTGR1 is specified as the execution agent group for a jobnet containing six jobs (job1 to job6).
- Organization of this subsection
- (1) Equal load distribution
- (2) Distribution among agents assigned different job execution limits
- (3) Job execution distributed to other execution agents when the limit is reached
(1) Equal load distribution
In this pattern, the agents in the execution agent group have the same priority and the same maximum number of concurrently executable jobs.
The following figure shows an example of the pattern in which the load is distributed evenly among execution agents:
Figure 2-25 Example of equal load distribution
In this example, the job execution order is determined as follows, where the priorities of the three execution agents (AGT1, AGT2, and AGT3) in execution agent group AGTGR1 are 16, and a maximum of three jobs can be executed concurrently by each agent.
- Determine the execution agent for job1.
Ratio: number of active jobs / maximum number of concurrently executable jobs:
As all execution agents have the same load and the same priority, AGT1, which is defined first in the agent group AGTGR1, becomes the execution agent for job1.
- Execution agent AGT1: 0 / 3
- Execution agent AGT2: 0 / 3
- Execution agent AGT3: 0 / 3
- Determine the execution agent for job2.
Because job1 has been assigned to execution agent AGT1, the ratio (active jobs / maximum concurrent jobs) is now:
Execution agents AGT2 and AGT3 now have the same load and the same priority. Therefore, AGT2, which is defined earlier in the agent group AGTGR1, becomes the execution agent for job2.
- Execution agent AGT1: 1 / 3
- Execution agent AGT2: 0 / 3
- Execution agent AGT3: 0 / 3
- Determine the execution agent for job3.
Because job2 has been assigned to execution agent AGT2, the ratio (active jobs / maximum concurrent jobs) is now:
Execution agent AGT3 now has the lightest load. Therefore, job3 is assigned to execution agent AGT3.
- Execution agent AGT1: 1 / 3
- Execution agent AGT2: 1 / 3
- Execution agent AGT3: 0 / 3
- Determine the execution agent for job4.
Now that job1 through job3 have been assigned to execution agents, the ratio (active jobs / maximum concurrent jobs) is now:
Once again, all execution agents have the same load. Therefore, AGT1 becomes the execution agent for job4 because it is defined first in the agent group AGTGR1.
- Execution agent AGT1: 1 / 3
- Execution agent AGT2: 1 / 3
- Execution agent AGT3: 1 / 3
- Determine the execution agent for job5.
Because job4 has been assigned to execution agent AGT1, the ratio (active jobs / maximum concurrent jobs) is now:
Execution agents AGT2 and AGT3 now have the same load. Therefore, AGT2 becomes the execution agent for job5 because it is defined earlier in the agent group AGTGR1.
- Execution agent AGT1: 2 / 3
- Execution agent AGT2: 1 / 3
- Execution agent AGT3: 1 / 3
- Determine the execution agent for job6.
Because job5 has been assigned to execution agent AGT2, the ratio (active jobs / maximum concurrent jobs) is now:
Execution agent AGT3 now has the lightest load. Therefore, job6 is assigned to execution agent AGT3.
- Execution agent AGT1: 2 / 3
- Execution agent AGT2: 2 / 3
- Execution agent AGT3: 1 / 3
(2) Distribution among agents assigned different job execution limits
To distribute loads by using different job execution limits at each execution agent, set the maximum number of concurrently executable jobs to a different value, but set the same priority for each execution agent in the group.
The following figure shows an example where the execution agents are assigned a different number of concurrently executable jobs:
Figure 2-26 Example of distribution between execution agents with different job execution limits
In this example, the job execution order is determined as follows, where the maximum number of concurrently executable jobs of the three execution agents (AGT1, AGT2, and AGT3) in execution agent group AGTGR1 are 3, 2, and 1.
- Determine the execution agent for job1.
Ratio: number of active jobs / maximum number of concurrently executable jobs:
As all execution agents have the same load and the same priority, AGT1, which is defined first in the agent group AGTGR1, becomes the execution agent for job1.
- Execution agent AGT1: 0 / 3
- Execution agent AGT2: 0 / 2
- Execution agent AGT3: 0 / 1
- Determine the execution agent for job2.
Because job1 has been assigned to execution agent AGT1, the ratio (active jobs / maximum concurrent jobs) is now:
Execution agents AGT2 and AGT3 now have the same load and the same priority. Therefore, AGT2, which is defined earlier in the agent group AGTGR1, becomes the execution agent for job2.
- Execution agent AGT1: 1 / 3
- Execution agent AGT2: 0 / 2
- Execution agent AGT3: 0 / 1
- Determine the execution agent for job3.
Because job2 has been assigned to execution agent AGT2, the ratio (active jobs / maximum concurrent jobs) is now:
Execution agent AGT3 now has the lightest load. Therefore, job3 is assigned to execution agent AGT3.
- Execution agent AGT1: 1 / 3
- Execution agent AGT2: 1 / 2
- Execution agent AGT3: 0 / 1
- Determine the execution agent for job4.
Now that job1 through job3 have been assigned to execution agents, the ratio (active jobs / maximum concurrent jobs) is:
Once again, all execution agents have the same load. Therefore, AGT1 becomes the execution agent for job4 because it is defined first in the agent group AGTGR1.
- Execution agent AGT1: 1 / 3
- Execution agent AGT2: 1 / 2
- Execution agent AGT3: 1 / 1
- Determine the execution agent for job5.
Because job4 has been assigned to execution agent AGT1, the ratio (active jobs / maximum concurrent jobs) is now:
Although AGT2 and AGT3 have the same load, AGT3 has now reached its maximum number of concurrently executable jobs. Therefore, job5 is assigned to execution agent AGT2.
- Execution agent AGT1: 2 / 3
- Execution agent AGT2: 1 / 2
- Execution agent AGT3: 1 / 1
- Determine the execution agent for job6.
Because job5 has been assigned to execution agent AGT2, the ratio (active jobs / maximum concurrent jobs) is now:
As AGT2 and AGT3 have both reached their maximum number of concurrently executable jobs, job6 is assigned to execution agent AGT1.
- Execution agent AGT1: 2 / 3
- Execution agent AGT2: 2 / 2
- Execution agent AGT3: 1 / 1
(3) Job execution distributed to other execution agents when the limit is reached
To have JP1/AJS3 distribute jobs to another execution agent in the group when the number of concurrently executed jobs reaches a limit at an agent, you must specify the priority of each agent in the group. You can also assign different job execution limits to each execution agent as required.
The following figure shows an example where jobs are distributed to another execution agent when the number of concurrently executed jobs has reached the limit.
Figure 2-27 Example of distribution to another execution agent when the number of jobs executed reaches the limit
In this example, the job execution order is determined as follows, where the priorities of the three execution agents (AGT1, AGT2, and AGT3) in execution agent group AGTGR1 are 16 (highest), 15 (second highest), and 14 (third highest), and a maximum of two jobs can be executed concurrently by each agent.
- Determine the execution agent for job1.
Ratio: number of active jobs / maximum number of concurrently executable jobs:
As AGT1 has the highest priority, AGT1 becomes the execution agent for job1.
- Execution agent AGT1: 0 / 2
- Execution agent AGT2: 0 / 2
- Execution agent AGT3: 0 / 2
- Determine the execution agent for job2.
Because job1 has been assigned to execution agent AGT1, the ratio (active jobs / maximum concurrent jobs) is now:
Although AGT2 and AGT3 have a lower load, AGT1 has highest priority, so AGT1 becomes the execution agent for job2.
- Execution agent AGT1: 1 / 2
- Execution agent AGT2: 0 / 2
- Execution agent AGT3: 0 / 2
- Determine the execution agent for job3.
Because job2 has been assigned to execution agent AGT1, the ratio (active jobs / maximum concurrent jobs) is now:
Although AGT1 has the highest priority, it has now reached its maximum number of concurrently executable jobs. Therefore, job3 is assigned to execution agent AGT2, which has the next highest priority.
- Execution agent AGT1: 2 / 2
- Execution agent AGT2: 0 / 2
- Execution agent AGT3: 0 / 2
- Determine the execution agent for job4.
Because job3 has been assigned to execution agent AGT2, the ratio (active jobs / maximum concurrent jobs) is now:
As with job3, execution agent AGT2 is determined for job4.
- Execution agent AGT1: 2 / 2
- Execution agent AGT2: 1 / 2
- Execution agent AGT3: 0 / 2
- Determine the execution agent for job5.
Because job4 has been assigned to execution agent AGT2, the ratio (active jobs / maximum concurrent jobs) is now:
As AGT1 and AGT2 have both reached their maximum number of concurrently executable jobs, job5 is assigned to execution agent AGT3.
- Execution agent AGT1: 2 / 2
- Execution agent AGT2: 2 / 2
- Execution agent AGT3: 0 / 2
- Determine the execution agent for job6.
Because job5 has been assigned to execution agent AGT3, the ratio (active jobs / maximum concurrent jobs) is now:
As AGT1 and AGT2 have both reached their maximum number of concurrently executable jobs, job6 is assigned to execution agent AGT3.
- Execution agent AGT1: 2 / 2
- Execution agent AGT2: 2 / 2
- Execution agent AGT3: 1 / 2
Copyright (C) 2009, 2010, Hitachi, Ltd.
Copyright (C) 2009, 2010, Hitachi Solutions, Ltd.