Job Management Partner 1/Automatic Job Management System 3 Overview

[Contents][Glossary][Index][Back][Next]


10.5 Queueless jobs

Jobs can be sent directly to an agent for execution, without passing through a queue. A job that is executed without using a queue is known as a queueless job. The number of queueless jobs being executed concurrently is controlled on the agent (queueless agent) side. This facilitates resource control at the agent host, but control cannot be implemented on the manager side. Control on the manager side is limited to adjusting throughput by jobnet sequence control and rescheduling.

Only PC jobs, and Unix jobs, and action jobs that are defined in a jobnet can be executed as queueless jobs. No other types of jobs can be executed as queueless jobs. This includes jobs that involve linkage with JP1/NQSEXEC or JP1/OJE.

To define a PC job, Unix job, or action job as a queueless job, when defining the job details select the JP1/AJS3 Queueless Agent service (Queueless Agent) as the execution service.

Queueless jobs do not use execution agents. To define a queueless job, specify the execution host in Target agent in the detailed definition of a job.

Before you can use queueless jobs, you must first set up the execution environment for queueless jobs on both the manager and agent. For the required setup, see 2.7 Setting up the queueless job execution environment in the Job Management Partner 1/Automatic Job Management System 3 Configuration Guide 2.

Organization of this section
(1) Execution environment for queueless jobs
(2) Status transition of queueless jobs
(3) Restricting the number of concurrent queueless jobs

(1) Execution environment for queueless jobs

Concurrent execution and other aspects of queueless job control are managed by the agent's JP1/AJS3 Queueless Agent service. The service must be started on the agent host before queueless jobs can be executed.

The following figure shows how queueless jobs are executed.

Figure 10-25 Processing flow when executing queueless jobs

[Figure]

Queueless jobs in a jobnet are sent directly from the scheduler to the agent (queueless agent). This is a particular advantage as regards job execution performance when multiple scheduler services are configured in the system.

To execute a queueless job, the name of the JP1 user who issued the job execution request, and the host name of the manager, must be mapped to the OS user of the agent host. To execute a queueless job using a specified OS user, that OS user must be mapped to a JP1 user.

During execution of a queueless job, the communication line between the manager and agent is kept alive to reduce the number of connections and disconnections. Unlike queued jobs, whose status is polled at regular intervals, queueless jobs are not polled. An error in a queueless job is discovered through detection of a disconnection during its execution.

(2) Status transition of queueless jobs

Because they bypass the queue, queueless jobs skip the Now queuing stage. Whereas queued jobs move from Waiting to execute, to Now queuing, and then to Now running (or Failed to start) status, queueless jobs move directly from Waiting to execute to Now running (or Failed to start) status.

(3) Restricting the number of concurrent queueless jobs

You can restrict the number of queueless jobs that can be executed concurrently by an agent host. To do so, set the maximum number of concurrent jobs in that agent's Queueless Agent service. To distribute the processing load in line with your system operation, you can create classes within the Queueless Agent service and set a different concurrent execution limit for each class.

When the limit is reached, subsequent jobs are managed in the Queueless Agent service memory and continue to wait for execution, up to the maximum number of waiting jobs set for the Queueless Agent service or for the specified class. Once this maximum number is exceeded, the next waiting job is placed in Failed to start status.

(a) Setting the maximum number of concurrent queueless jobs

To specify the maximum number of concurrent jobs and waiting jobs in the Queueless Agent service, set the environment setting parameters AJSQL_JOBMAX and AJSQL_JOBWAITMAX, respectively. Use the jbssetcnf command to set these parameters. For details about the parameters, see 2.7 Setting up the queueless job execution environment in the Job Management Partner 1/Automatic Job Management System 3 Configuration Guide 2.

Using the ajsqlalter command, you can change the maximum number of concurrent jobs and waiting jobs while the Queueless Agent service is active. When the maximum number of concurrent jobs is set to zero, queueless jobs are not executed but are managed in the Queueless Agent service memory. They continue waiting to be executed until the maximum number of waiting jobs is exceeded. Change the maximum concurrent jobs and maximum waiting jobs to suit your particular system. For details about the ajsqlalter command, see ajsqlalter in 3. Commands Used for Special Operation in the manual Job Management Partner 1/Automatic Job Management System 3 Command Reference 2.

(b) Distributing queueless jobs based on class-specific concurrent execution limits

When you register a queueless job, you can assign it to a particular class that has a preset limit on the maximum number of jobs that the agent can execute concurrently. Class specification enables lock control of queueless jobs and the setting of time restrictions when particular jobs take precedence, helping to distribute the processing load in line with your system operation.

For details on setting the maximum concurrent jobs and maximum wait jobs per class, see 6.4.1 Executing jobs with a class specified in a queueless job environment in the Job Management Partner 1/Automatic Job Management System 3 Configuration Guide 1 (Windows) or see 14.4.1 Executing jobs with a class specified in a queueless job environment in the Job Management Partner 1/Automatic Job Management System 3 Configuration Guide 1 (UNIX).

For example, suppose that you want to execute a particular job on its own because it uses an execution-locked resource. You can do this by defining a class and setting the maximum number of concurrent jobs in that class to 1. Then register the job in that class. As another example, let's say you want certain jobs to be executed during a particular time period. To do so, increase the concurrent execution limit for the class in which the jobs are to be registered, and reduce the limit for other classes. This allows targeted jobs to be executed preferentially.

(c) Relationship between the maximum number of concurrent execution jobs specified per class or specified for the Queueless Agent service as a whole

When the maximum number of concurrent jobs set for the Queueless Agent service is exceeded, the job is placed in wait state even if the maximum number of concurrent jobs set for the class in which the queueless job is registered has not been reached. Also, if the maximum number of waiting jobs set for the queueless agent is exceeded, the next waiting job enters Failed to start status even if the maximum number of waiting jobs set for the class has not been reached.

[Contents][Back][Next]


[Trademarks]

Copyright (C) 2009, 2010, Hitachi, Ltd.
Copyright (C) 2009, 2010, Hitachi Solutions, Ltd.