Iseries Work Management
Iseries Work Management
Iseries Work Management
ERserver
iSeries
Work management
ERserver
iSeries
Work management
Copyright International Business Machines Corporation 1998, 2002. All rights reserved.
US Government Users Restricted Rights Use, duplication or disclosure restricted by GSA ADP Schedule Contract
with IBM Corp.
Contents
Work management . . . . . . . . . . . . . . . .
Related Information . . . . . . . . . . . . . . . .
Whats new for V5R2 . . . . . . . . . . . . . . .
Print this topic . . . . . . . . . . . . . . . . . .
Manage daily work . . . . . . . . . . . . . . . .
Monitor system activity . . . . . . . . . . . . . .
Work with system status . . . . . . . . . . . .
Managing jobs and threads . . . . . . . . . . . .
Find a job on the iSeries server. . . . . . . . . .
Determine the status of a job . . . . . . . . . .
View performance statistics for a job . . . . . . .
End a job . . . . . . . . . . . . . . . . .
Job actions . . . . . . . . . . . . . . . . .
View threads running under a specific job . . . . .
View thread properties . . . . . . . . . . . .
Delete or end a thread . . . . . . . . . . . .
Manage job queues . . . . . . . . . . . . . .
View jobs on the job queue . . . . . . . . . . .
Change the priority of a job within a job queue. . . .
Move jobs to different job queues . . . . . . . .
Manage subsystems . . . . . . . . . . . . . .
Monitor the number of jobs in a memory pool . . . .
View jobs in the subsystem . . . . . . . . . . .
Start a subsystem . . . . . . . . . . . . . .
Stop a subsystem . . . . . . . . . . . . . .
Manage memory pools . . . . . . . . . . . . .
Monitor the number of subsystems using a memory pool
Check memory pool use . . . . . . . . . . . .
Change the size of a memory pool . . . . . . . .
Manage job logs . . . . . . . . . . . . . . . .
Access job logs for active jobs, including server jobs .
Access printer output . . . . . . . . . . . . .
Manage output queues . . . . . . . . . . . . .
View output queues on the system . . . . . . . .
Move output between and within output queues . . .
Clear output queues . . . . . . . . . . . . .
The structure of your system . . . . . . . . . . . .
Jobs . . . . . . . . . . . . . . . . . . . .
Active and inactive jobs . . . . . . . . . . . .
Active jobs . . . . . . . . . . . . . . . .
Inactive jobs . . . . . . . . . . . . . . .
Job types . . . . . . . . . . . . . . . . .
Autostart jobs . . . . . . . . . . . . . . .
Batch jobs . . . . . . . . . . . . . . . .
Communications jobs . . . . . . . . . . . .
Interactive jobs . . . . . . . . . . . . . .
Prestart jobs . . . . . . . . . . . . . . .
Reader and writer jobs . . . . . . . . . . .
Subsystem jobs . . . . . . . . . . . . . .
System jobs . . . . . . . . . . . . . . .
Job properties. . . . . . . . . . . . . . . .
Detach printer output . . . . . . . . . . . .
Elapsed performance statistics . . . . . . . .
Copyright IBM Corp. 1998, 2002
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 1
. 1
. 1
. 3
. 4
. 5
. 6
. 6
. 7
. 9
. 10
. 12
. 13
. 14
. 14
. 15
. 15
. 15
. 16
. 17
. 20
. 20
. 22
. 22
. 22
. 23
. 23
. 24
. 25
. 27
. 27
. 28
. 28
. 29
. 30
. 30
. 30
. 31
. 31
. 31
. 32
. 32
. 32
. 33
. 33
. 34
. 34
. 35
. 35
. 35
. 38
. 39
. 40
iii
Detailed status . . . . . . . . . .
End jobs . . . . . . . . . . . . .
Details: Active job actions . . . . . .
Job logs . . . . . . . . . . . . .
Threads . . . . . . . . . . . . . .
Thread actions . . . . . . . . . .
Thread types . . . . . . . . . . .
Thread status . . . . . . . . . . .
Job queues. . . . . . . . . . . . . .
How a job queue works . . . . . . . .
Subsystems . . . . . . . . . . . . .
Subsystem description . . . . . . . .
Subsystems shipped with the system . . .
User-defined subsystems . . . . . . .
Subsystem properties . . . . . . . . .
Subsystem life cycle . . . . . . . . .
What happens when the subsystem starts
Memory pools . . . . . . . . . . . . .
Memory pool activity level . . . . . . .
Types of memory pools . . . . . . . .
Output queues . . . . . . . . . . . .
Attributes of an output queue . . . . . .
Order of Files . . . . . . . . . . .
Status of printer output . . . . . . . .
How work gets done . . . . . . . . . . .
What work is . . . . . . . . . . . . .
What happens before work enters the system .
How work enters the system . . . . . . .
How work gets processed . . . . . . . .
How work leaves the system . . . . . . .
Troubleshoot Work Management . . . . . . .
My job is hung . . . . . . . . . . . .
My job is experiencing poor performance . . .
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
40
40
41
42
42
43
44
44
45
45
46
48
56
56
57
58
59
60
60
61
62
63
64
64
65
65
66
66
67
67
68
69
70
Work management
Work management is an important building block within the iSeries server operating system. Its functions
are the foundation through which all work enters the system, is processed, run, and completed on iSeries
servers. Whether you run a simple batch job once a week or you call an application daily (like Lotus
Notes), work management helps manage the jobs and objects that run on your system. It also supports
the commands and internal functions necessary to control system operations and allocate resources to
applications when needed.
The iSeries server is set up and ready to use. Most users will not need to change the default settings.
However, if you need to tailor the work management piece to fit your company, you will need to
understand the terms and concepts associated with it and how they integrate with each other to provide
you with the best performance from your iSeries server.
Whether you are a experienced iSeries user or just learning, this topic gives you an easy-to-understand
view of work management. This topic contains different entry points, so you choose where you want to
start learning about work management.
A jobs life
Follow a job through its life cycle in the work management infrastructureuse our interactive graphic
to click your way to more detailed information about work management .
Manage daily work
Find out the daily tasks you can perform to efficiently manage work from iSeries Navigator and when
to perform these tasks. From checking job logs to monitoring system activity, you will learn important
daily tasks involved with work management.
The structure of your system
Learn the terms and concepts associated with work management(including job, job queues,
subsystems, and memory pools) that you can use to manage work on an iSeries server.
How work gets done
Find out what you will need to do to get work done on your iSeries server. Set up job queues,
allocate memory to your subsystems and understand what happens to the job after it finishes
running.
Troubleshoot work management
Read about how to resolve the problems with jobs through iSeries Navigator.
See the Whats new topic for the new and changed information and see the Print this topic if you want to
print the PDF for this entire topic.
Related Information
IBM manuals contain technical information, know-how, and how-to information.
Output Queues
v View printer output on output queues
v Move printer output within and between output queues
v Changed spooled file to printer output file
How to see whats new or changed
To help you see where technical changes have been made, this information uses:
v The
image to mark where new or changed information begins.
v The
image to mark where new or changed information ends.
To find other information about whats new or changed this release, see the Memo to Users
.
To view or download the PDF version, select the following:
v Work Management (about 173 KB or 40 pages)
v System Values (about 2430 KB or 277 pages)
Other information
You can also view or print the V4R5 Work Management manual PDF:
v V4R5 Work Management
4. Navigate to the directory in which you would like to save the PDF.
5. Click Save.
Work management
v End a thread
Manage job queues
Job queues are an important element in the life cycle of a batch job. Job queues help control the rate
at which batch jobs enter a subsystem. The tasks in these subtopics follow:
v View jobs on the job queue
v Change the priority of a job within a job queue
v Move jobs to different job queues
Manage subsystems
Because jobs run in subsystems, you may need to monitor subsystem activity for potential problems
that could affect a jobs ability to run. The tasks in these subtopics follow:
v Monitor a subsystem
v View jobs in a subsystem
v Start a subsystem
v End a subsystem
Manage memory pools
Memory pools allocate memory to subsystems so that jobs can run. It is important that when jobs run
they get enough memory to complete efficiently. The tasks in these subtopics follow:
v Monitor the number of jobs in a memory pool
v Monitor the number of subsystems in a memory pool
Work management
Note:
End a job
Job actions
View threads running under a specific job
View thread properties
End a thread
For more information on the different tasks you can perform on jobs and threads, see the iSeries
Navigator help.
For more detailed information on jobs and the types of jobs on an iSeries server, see Jobs. For more
detailed information on threads, see Threads.
7. Click Find. iSeries Navigator will highlight your job once it is found.
Note: Remember that job names are only case sensitive when enclosed in quotations (for example,
MyJob). If the job name is not enclosed in quotations, then it is not case sensitive.
To limit the information that is displayed using Include... function; do the following:
1. In iSeries Navigator, expand My Connections.
2. Expand the connection for your iSeries server.
Work management
6. In the Active Jobs - Include dialog, select the options with which you want to search for your job.
7. Click OK. From this point, use Find to display a particular job.
For more information on jobs, see Jobs.
10
You can refresh, reset, and schedule the performance statistics to automatically refresh.
Note: You can look at the elapsed performance statistics for more than one job at a time by opening
multiple windows. This allows you to view multiple problematic jobs at one time. Each window holds
the information for only one job.
The elapsed performance statistics is one way to view the performance of a job as it moves through the
system. Another way to view jobs on the system is through the Management Central folder. You can
Work management
11
monitor jobs in Management Central as well as monitor system performance and messages. For additional
information on job monitors, see Monitoring jobs and servers with Management Central.
End a job
Sometimes you need to end jobs because they take too long to run or they use too much memory, which
can affect the performance of other jobs on the system.
To end a job, do the following:
1. In iSeries Navigator, expand My Connections.
2. Expand the connection for your iSeries server.
3. Expand Work Management.
4. Click Active Jobs.
Note: You can Delete/End a job from any location within work management where you can see jobs.
5. Right-click the job that you want to end (for example, Qdftjobd) and click Delete/End.
12
9. In the Maximum job log entries field, select Use job value or No maximum.
10. In the Action for related interactive jobs field, choose Do not end, End for group jobs, or End
all.
11. Click Delete to delete the job.
For more information on the actions you can perform on jobs, see Job actions.
Job actions
Managing jobs and threads is made more efficient with the actions available in Work Management. Once
you find the job you want to manage, the following actions are available by right-clicking the job:
Reset statistics
Allows you to reset the list information you are viewing, and it sets the elapsed time to 00:00:00.
Printer output
Displays printer output, if available, in a separate window.
Job log
Displays the job log for the selected job, in a separate window.
Details
Contains detailed information about the following actions for active jobs:
v Call stack
v Library list
v
Locked objects
v Open files
v
Threads
v
Transactions
Reply
Allows you to reply to the message, if you have a job that is waiting for a message.
Work management
13
Hold
Allows you to hold the job. Holding a job holds all threads in the job. This is available for released
jobs that are not system jobs. When you hold a job, the job is not available for processing. An active
job can be held to temporarily stop its processing.
Release
Releases the job that was held. Releasing the job releases all threads in the job that were held with
the Hold job action. The job is made available for processing.
Move
Allows you to move the selected job to another job queue. You can only move jobs that are on a job
queue.
Delete/End
Allows you to end the selected job. The two ways to end a job, either controlled or immediately.
Monitor
Allows you to create a job monitor for one or more jobs.
Job properties
The job properties for the selected job can be viewed and changed.
For more detailed information, see Threads or see the iSeries Navigator help.
14
To delete or end a secondary thread, you must have service (*SERVICE) special authority or Thread
Control authority.
Thread Control authority allows a user to end, hold, and release threads of another job. It allows one to
retrieve information about threads of another job. Thread Control can be granted and revoked for individual
users by using iSeries Navigators Application Administration support, or by using the Change Function
Usage Information (QSYCHFUI) API, with a function ID of QIBM_SERVICE_THREAD. For more detailed
information, see Application Administration.
To delete or end a thread, do the following:
1. In iSeries Navigator, expand My Connections.
2.
3.
4.
5.
6.
For more detailed information, see Threads or see the iSeries Navigator help.
Work management
15
To
1.
2.
3.
4.
5. Expand Active Job Queues. You can also choose to expand All Job Queues.
6. Select the job queue with which you want to display the jobs (for example, Jobqueue1). The jobs
within the job queue appear.
For more information, see Job queues.
16
7. Click the job for which you want to move, and drag it to the new priority position (for example, you
want to move joblist4 with a priority of 5 after joblist1 which has a priority of 3).
Use the property page to change the job queue priority of a job on a job queue:
1. In iSeries Navigator, expand My Connections.
2.
3.
4.
5.
6.
7.
8.
9.
10.
17
To
1.
2.
3.
4.
drag and drop a job from one job queue to another job queue, do the following:
In iSeries Navigator, expand My Connections.
Expand the connection for your iSeries server.
Expand Work Management.
Select Job Queues.
18
7. Right-click the job you want to move to another job queue (for example, Qdftjobd) and select Move....
Note: You can select multiple jobs to move from one job queue to another job queue.
8. In the Jobs to move field, verify that your job is highlighted. If you want to remove selected jobs, you
can press Ctrl and click the jobs you want to remove.
9. In the Where to move Job Queue field, type or browse to the job queue where you want to move
your job (for example, Qusrnomax).
10. In the Library field, type the name of the job queue library or select from the available list.
11. Click OK.
When the job or jobs are moved to a new job queue, the job or jobs are put into the same relative
position they were in on their previous job queue. For example, a priority 3 job that is moved to a new
job queue is placed at the end of the priority 3 jobs in the new job queue. If a job that is held is
moved, the job remains held and is placed in the same relative position in the new job queue.
By checking the Move to Top box, the job is moved to the top of the target queue, without regard to
its current status and priority. (However, if the job at the top of the target queue has a priority greater
than the user is allowed, an error message is displayed and the job is not moved.) Jobs that are
waiting to run can be moved to the top of another queue. For example, if the selected job has a job
queue priority of 5 and the first job on the target queue has a priority of 3, the priority of the selected
job is changed to 3 and is placed ahead of the other jobs on the target queue.
Work management
19
Jobs that are held are released and then moved to the top of the target queue. Jobs that are
scheduled to run cannot be moved to the top of another queue. An error message is displayed stating
that the selected job is not available to be moved.
For more information, see job queues.
Manage subsystems
The subsystem is the work place for jobs on the iSeries server. All user work is done by jobs running in
the subsystem and it is important to monitor this area for slow work performance. In iSeries Navigator, you
can view jobs and job queues associated with the subsystems. Also, you have the same functionality with
jobs and job queues from any other area that displays jobs and job queues.
To learn more about subsystems, see these topics:
v Monitor a subsystem
v View jobs in a subsystem
v Start a subsystem
v Stop a subsystem
20
You can also view the number of threads in a memory pool by viewing the Thread Count column. The
thread count provides additional information about the amount of activity in a memory pool.
From this point, you can perform the same functions on jobs as if you were in the Active jobs or Server
jobs area.
For more information, see Memory pools.
Work management
21
4. Expand Subsystems.
5. Expand Active Subsystems, and then select the subsystem for which you want to display its jobs.
For more information, see Subsystems.
Start a subsystem
When a subsystem is started, the system allocates the available resources that are defined to it in the
subsystem description such as memory pools, workstations, and job queues. These resources prepare the
subsystem for use.
For details on the chain of events that are triggered when a subsystem starts, see what happens when the
subsystem starts.
To
1.
2.
3.
Stop a subsystem
You can use iSeries Navigator to stop one or more active subsystems and specify what happens to active
work being processed. No new jobs or routing steps are started in the subsystem after the subsystem is
stopped.
When a subsystem is stopped, you can specify what happens to active work that is being processed by
the system. For example, you can specify for all jobs in the subsystem to be ended immediately
(Immediate), or you can specify that jobs are allowed to finish processing before the subsystem ends
(Controlled).
Important: It is recommended that subsystems be stopped using the Controlled option whenever
possible. This allows active jobs to end themselves. Use this option to ensure that jobs finish before
the subsystems end. This allows the programs that are running to perform cleanup (end-of-job
processing). Specifying the Immediate value can cause undesirable results, for example, from data
that has been partially updated.
There are additional options available when stopping subsystems. These options are described in detail in
the help associated with the Stop Subsystem dialog in iSeries Navigator.
To stop a subsystem, follow these steps:
1. In iSeries Navigator, expand My Connections.
2. Expand the connection for your iSeries server.
3. Expand Work Management.
22
4.
5.
6.
7.
Work management
23
6. Right-click the memory pool you want to work with and select Subsystems (for example, Base).
From this window, you can determine the number of subsystems that are using an individual memory
to run their jobs.
For more information, see Memory pool activity level.
24
Work management
25
From the Configuration tab of the Properties window, you can change the defined amount of memory.
Defined memory is the maximum amount of memory that that pool can use. The number you put
here should reflect the amount of memory you think that pool will need to support the subsystems it
services.
Special considerations for Base pool: The Base pool is the only memory pool that does not
have a defined amount of memory. It has a minimum amount of memory that it needs to run.
The Base pool contains everything that is not allocated elsewhere. For example, you may have
1000 MB of memory on your system of which 250 MB is allocated to the Machine pool and 250
MB is allocated to the Interactive pool. 500 MB not allocated to anything. This nonallocated
26
memory is stored in the Base pool until it is needed. Use caution when moving memory. Moving
memory from one pool to another can fix one subsystem, but can cause problems for other
subsystems, which in turn, can worsen system performance.
For more information, see Memory pools.
manual.
To view more details of a message, double-click a specific message. A Detailed Message Information
dialog appears. This dialog shows the details of the message as well as the message help. The
detailed message help gives you information to solve a problem.
For more information, see Job logs or refer to the help.
Work management
27
To
1.
2.
3.
4.
5.
access printer output through the Output Queues folder, do the following:
In iSeries Navigator, expand My Connections.
Expand the connection for your iSeries server.
Expand Work Management.
Expand Output Queues.
Select the output queue with which you want to display printer output (for example, Qprint2). The
printer output within the output queue appears.
28
v
v
v
v
Use these subtopics to view output queues on your system, clear output queues, and move printer output
between and within output queues.
v View output queues on the system
v Move output between and within output queues
v Clear output queues
For more information on the different tasks you can complete with output queues, see the iSeries
Navigator online help. For more information, see Output Queues.
6. Click the output you would like to move, and drag it to the output queue to which you would like to
move it in the left pane of iSeries Navigator.
Note:
29
1.
2.
3.
4.
5.
6. Click the output you would like to move, and drag it to the output in the queue that you would like to
move it after.
Note:
30
Jobs
All work done on a system is performed through jobs. Each active job contains at least one thread (the
initial thread) and may contain additional secondary threads. Threads are independent units of work. Job
properties are shared among the threads of the job, however threads also have some of their own
properties, such as a call stack. The jobs properties contain information about how the work is processed.
The job serves as the owner for properties that are shared among threads within the same job. Work
management provides a way for you to control the work done on your system through a jobs properties.
The general properties of a job determine how the system runs each job. Some of the properties are
grouped together in the job description for easier multiple job management. The system knows what
properties to get and when, based on how the job properties are specified. The iSeries system runs
different types of jobs to serve various needs. Most job types use a job description.
For more information about jobs, see the following topics:
Active and inactive jobs
Learn what active and inactive jobs are.
Job types
Learn about the different types of jobs that run on the iSeries.
Job properties
Learn how to work with job properties.
Job actions
Learn how to manage jobs through iSeries Navigator.
Threads
Learn the difference between threads and jobs.
Job queues
Learn how a job goes from waiting on the job queue to performing work.
A jobs life
Learn what happens during a jobs life from the start to the end.
Note:
Work management
31
Job types
The iSeries server processes several different job types. You can select one of the following job types to
learn more about that job type.
Server jobs are jobs that have set the server type using the Change Job (QWTCHGJB) API, and they will
have an additional classification of Server with one of the following job types:
Autostart
An autostart job is started automatically when the subsystem it is associated with starts.
Batch
A batch job is a predefined group of processing actions that is submitted to the system.
Communications
A communications job is a batch job that was started by a program start request from a remote
system.
Interactive
An interactive job requires input from a signed-on user and an iSeries server.
Prestart
A prestart job is a batch job that starts before a work request is received. The two types of prestart
jobs:
v Prestart communications - The job is a communications batch job that starts running before a
remote system sends a program start request.
v Prestart batch - The job is a batch job that starts before a work request is received.
Reader and writer
A reader job is a spooled input job, and a writer job is a spooled output job.
Subsystem
The subsystem job provides control over an active subsystem.
System
System jobs are created by the operating system to control system resources and perform system
functions.
Autostart jobs: An autostart job starts automatically when the subsystem it is associated with starts.
These jobs generally perform initialization work that is associated with a particular subsystem. Autostart
jobs can also perform repetitive work or provide centralized service functions for other jobs in the same
subsystem.
32
The subsystem job uses information from the autostart job entry in the subsystem description, when
starting a job.
Note: All autostart jobs are started when the subsystem starts. The value specified for the maximum
number of jobs in the subsystem does not prevent the autostart jobs from starting. If the maximum number
of jobs in the subsystem is exceeded, no other jobs can be started. When enough autostart jobs have
completed so that the number of jobs running is below the maximum activity level, other jobs in the
subsystem can start.
For more information about autostart jobs and how they start, see the Autostart Jobs (Chapter 9) and
Autostart Job Entry (Chapter 4) topics in the Work Management manual
.
Batch jobs: A batch job is a predefined group of processing actions that is submitted to the system.
Batch jobs run in the system background, freeing the user who submitted the job to do other work. The job
requires no interaction on the part of the user once it has been set up. Batch jobs are typically low priority
jobs. Several batch jobs can be active at the same time.
Following are different kinds of batch jobs:
Simple batch job
Most people are familiar with the simple batch job that is submitted to a job queue. For more information
about a simple batch jobs life, see A jobs life.
Batch immediate job
A batch immediate job is a batch job that was started with many of the attributes of its parent job. The job
runs in the same subsystem as the parent job. Because the job copies attributes from the parent job and
does not go through a job queue, it can start faster than jobs submitted to a job queue.
Batch MRT job
A batch MRT job is a multiple requester terminal (MRT) job. MRT jobs are S/36 Environment jobs that act
like servers, allowing other S/36 Environment jobs to attach to them in order to run an MRT procedure.
Batch print job
Batch print jobs track the printer output files (also called spooled files) that were created by a job whose
current user profile is different from the user profile that it was started under.
For more information, see How a Batch Job Starts in Chapter 8 of the Work Management
manual.
Communications jobs: Communication jobs are started when a program start request is received from a
remote system. For performance reasons, instead of starting a communications job each time a program
start request is received, you can configure a prestart job to handle a program start request from a remote
system.
For more information about a program start request, see chapter 3 of the ICF Programming
manual.
Work management
33
For more information, see Communications Jobs in Chapter 10 of the Work Management
manual.
Interactive jobs: Interactive jobs require continual two-way communications between the user and the
iSeries server to perform a task. An interactive job begins when a user signs onto a system. The system
requests sign-on information. If the sign-on request is accepted by the system, then the system creates
the interactive job. The system then asks the user to supply a request. The user enters a request, and the
system responds by processing the request. This pattern is repeated until the user ends the interactive job
by signing off the system. If an interactive job is part of a group of jobs or a pair of jobs, then it will have
one of the following job types:
Interactive - Group
An Interactive - Group job is part of a group of jobs that is associated with a single display device.
Interactive - System request
An Interactive - System request job is one of a pair of jobs that is associated with each other by the
system request function.
Prestart jobs: A prestart job starts before a work request is received, either when the subsystem starts
or as a result of the Start Prestart Jobs (STRPJ) command. Prestart jobs start from a prestart job entry
(PJE) in the subsystem description. The prestart job entry specifies properties such as what program to
run in the prestart job, the user profile under which the prestart job starts running, the job description, the
class used to specify the run-time properties of the job, and the memory pool in which the prestart job
runs.
Prestart jobs can start and initialize themselves before a work request is received. This reduces the
amount of time required to handle the requests. A new job is not required for every work request. In
addition, prestart jobs provide the ability to initialize once and handle many requests so that a new job is
not needed for every request. Most client server applications use prestart jobs to handle the requests for
the client user. Having a job ready to go makes the performance better in this situation because the
prestart job can start processing the request for the user immediately.
Note:
Two types of prestart jobs exist. Each type handles different types of requests. Before a job waits for its
first request, it will be shown as Prestart only because the system does not know yet what type of
requests the job will handle. Following are the two types of prestart jobs:
Prestart communications job
A prestart communications job is a communications batch job that starts running before a remote system
sends a program start request.
For more information about prestart communications jobs, see Prestart Jobs in Chapter 11 of the Work
Management
manual.
34
Work management
35
36
Of the remaining database server jobs, the first half process high-priority requests, and the second half
process low-priority requests. Qdbsrv02 through Qdbsrv05 are high priority, Qdbsrv06 through Qdbsrv09
are low priority.
Qdbsrvxx (database server, high priority)
These jobs perform journal and commitment control maintenance for the system and are considered quick
or short-running work.
Qdbsrvxx (database server, low priority)
These jobs perform access path maintenance on user data files. Typically, these jobs are inactive, but in
certain cases, they may activate to perform access path rebuilds. Some reasons why these jobs could be
active are:
v
v
v
v
v
v
Restoring database files that were not saved with access paths.
Restoring logical files without the physical file they are based on.
Canceling of an Rgzpfm command while in process.
Invalidation of an index due to damage found in the index.
Post-iSeries installation activity to complete cross-reference or other DBupgradede activity.
Constraint verification
manual). This includes such activities as processing alerts received from other systems, processing locally
created alerts, and maintaining the sphere of control.
Qdcpobjx (decompress system object)
These jobs decompress newly installed operating system objects as needed. There is a storage
requirement for these jobs to run. If available storage on your system drops below a certain limit, these
jobs will end. The number of decompress system object jobs is the number of processors plus one.
Qfilesys1 (file system)
This job supports the background processing of the integrated file system. It ensures that changes to files
are written to storage and also performs several general file system cleanup activities.
Qjobscd (job schedule)
This job controls the systems job scheduling functions. Qjobscd monitors the timers for job schedule
entries and scheduled jobs.
Qlur (LU 6.2 resynchronization)
Qlur handles the two-phase commit resynchronization processing.
Qpfradj (performance adjustment)
This job manages changes to the storage pool sizes and activity levels. All requests to change storage
pools are processed by this job. In addition, if system value Qpfradj is set to a value of 2 or 3, this job
dynamically changes the sizes and activity levels of storage pools to improve the system performance.
Work management
37
Job properties
Job properties contain information about how jobs are processed. They are originally specified when the
job is created. Some of the properties come from the job description. After the job is created, the job
properties can be viewed and managed through Work Management in iSeries Navigator. The job
properties pages in iSeries Navigator make a system operators job easier by providing efficient and
easy-to-use functions for managing jobs. Job properties can be viewed by any user, but can only be
changed by a user with the proper authority. Similarly, an authorized user can manage jobs through job
actions. Properties for system jobs cannot be changed in iSeries Navigator. However, the run priority of a
job can be changed in the character based interface using the CHGSYSJOB command.
Work with job properties To view or change a jobs properties, follow these steps:
1.
2.
3.
4.
5.
6.
7.
from a job, select a printer, choose the output queue and its library, specify the order that you want the
information printed (priority), specify a page footer, and specify whether border and header information
should be printed.
38
Messages properties allow you to specify how inquiry and break messages will be handled. If the job is a
batch job, the message severity level that causes the job to end is also shown.
Job Log properties allow you to view and change information related to the job log as well as display the
job log. The job log contains information that is related to requests entered for a job, such as commands in
the job, commands from CL programs, and messages. This page allows you to specify whether or not to
keep messages in the job log, what action the job needs to take when the job log is full, what kind of
messages to keep, whether a printed job log (printer output) is generated for jobs that end normally, and
the amount of detail to include for each message. For more information, see Job logs.
Security properties allow you to view security properties for jobs that are currently active. This includes
the job user identity, the method used to set the job user identity (Set by), the current, user and the names
of the group profiles that are associated with the initial thread of a job (Groups).
International properties allow you to view or change properties related to text and character format, and
the language and country/region associated with the job. This includes the format to use when dates,
times, and decimals are represented. There is also an indication of whether the job is capable of handling
double-byte character sets (DBCS).
Threads properties allow you to view information related to threads for a job that is currently active or on a
job queue. You can also display the threads for a job by using the Threads button. This page includes
information about whether the job can run with multiple user threads, the number of active threads in the
job, and the maximum number of user and system threads that the job can run with at any time.
Server properties allow you to view information about server jobs. For each server job, you can see the
type of server, job user identity, and if available, the client IP address. The client IP address is the address
of the user that this server is currently servicing.
Other properties allow you to view and change properties related the accounting code, switch settings,
and whether or not to keep DDM connections active. You can also view the disk pool group, job date and
whether the job is running in a System/36 special environment.
For more information, refer to the iSeries Navigator help.
Detach printer output: In releases prior to V5R2, printer output was attached to a job until it was
deleted either as a result of being sent to the printer or explicitly by the user.
You have the option to detach printer output from the job when the job ends. Printer output that is
detached from the job is not deleted from the system, but resides on the output queue. This allows the job
to leave the system, which frees up the job structures to be used by another job.
Note:
Elapsed performance statistics: The Elapsed performance statistics page allows you to view
performance statistics, for an active job or thread, that are calculated over the elapsed time. This is
important when you are monitoring a job or thread and in detecting potential problems. These statistics
include CPU, disk I/O, page fault rate, average response time, and interactive transactions.
Work management
39
Note:
You can change the viewing options for these statistics by selecting one of the following buttons from the
Elapsed performance statistics page:
v Refresh Now
Refreshes the elapsed performance statistics and extends the time period that the statistics are
calculated.
v Timed Refresh
Allows you to set up automatic refreshes of the elapsed performance statistics. This can be used to
monitor the performance information for a job.
v Reset Statistics
Clears the elapsed performance statistics and resets the time period that the statistics are calculated.
Detailed status: The current status of a job is viewed from the General page in Job properties, under
Detailed status. An example of a detailed status is:
Scheduled to run at
The job remains waiting on the job queue until the scheduled date and time. At the scheduled time
on the scheduled date, the job is available to be selected from the job queue.
The detailed status can display an associated status value (status - x), which provides additional
details about the current status of the job. An example of a detailed status plus the associated status
value is: Ended - CPU limit exceeded
Ended refers to the status of the job (the job has ended), and CPU limit exceeded represents why
the job has that status (Ended).
The detailed status can also have another associated status value displayed [status - x (x)] to reflect
the current status of the job. For example a job that is ending could have the following status:
Ending - CPU limit exceeded (Waiting for lock)
The job is in the process of ending (Ending) because the CPU limit was exceeded (CPU limit
exceeded), and the job is currently waiting for a lock (Waiting for lock) in the ending process.
If the job does not end in a timely manner, this information can assist with problem analysis.
Status values can have additional information in the properties pages. For example, the status waiting for
a lock, on the properties page, will show you what object is associated with the lock request.
End jobs: The two ways to end a job either controlled or immediate. Selecting controlled is usually the
better choice because it allows programs running in the job to perform their end-of-job cleanup and to end
properly. Selecting immediate ends the job immediately. It is recommended that immediately ending a job
be done only after the controlled option has failed. Because the programs running in the job will not
perform the normal application cleanup procedures when immediate is selected, you can get undesirable
results such as application data that has been partially updated. iSeries Navigator allows you to specify a
time limit for a controlled ending so that if it takes longer than the time you specify, an immediate ending
will take place.
A job can check the end status for a job through the Job APIs such as the Retrieve Job Information
(QUSRJOBI) API. When a controlled end is selected, an application that needs to perform end-of-job
cleanup should detect the controlled end. One way an application can do this is by the asynchronous
signal SIGTERM. When a job being ended in a controlled manner has a signal handling procedure for the
40
asynchronous signal SIGTERM, the SIGTERM signal is generated for that job. When the signal handling
procedure for the SIGTERM signal is given control, the procedure can take the appropriate actions to
allow the application to be ended in a controller manner.
For detailed steps about how to end a job, see Ending a job.
For more information about ending a job and detecting the controlled end, see Ending a Job in chapter 5
of the Work Management
manual.
Details: Active job actions: The Details menu in the Work Management folder provides access to the
following resources that are being used by the job or initial thread of the job:
Call stack
The call stack for the job is displayed. The call stack is the programs and procedures that are being
used. This is helpful for finding out what program a job is running and what the job is doing.
Library list
The library list for the selected job or thread is displayed. A library list is a list of system and
user-created libraries to search and the order that they are to be searched. A library is a container for
objects, and all objects on the iSeries server require a reference consisting of the object name and a
library. It is important to have the library list properly established because objects are found by
searching the libraries. If the library list is not properly established, the job may not find an object or it
may find the object in the wrong library. IBM supplies some libraries (library names that begin with
Q), but you can also create your own. By selecting a library from this dialog and right-clicking, you
can work with the properties of that library.
Locked objects
The list of
locked objects
and the objects for which the job or thread is waiting for a lock are displayed. This allows you to see
what objects a job is using as well as the objects the job is attempting to use.
Open files
A list of open files and details of how that file has been used, such as how many I/O operations have
occurred for the job selected, are displayed. Viewing this list is helpful for debugging and for checking
the status of a job.
Threads
A list of threads running within a job. The initial thread, by default, is listed at the top of the window.
Threads are independent pieces of work that help the job process more than one thing at a time.
Work management
41
Transactions
A list of transactions associated with the job. A transaction is a logical unit of work on the iSeries
system. It is commonly referred to in relation to database operations. For more information on
Transactions, see the iSeries Navigator help or go to Transactions.
Job logs: The job log displays a list of messages that are associated with a specific job. Additional
information about the messages, for example the date and time they were sent, is also displayed. Because
the date and times are recorded in the job log, you can determine when an error occurred. By selecting
Details from the File option on the menu bar, more information about the message can be displayed, such
as the cause of the message and an explanation of what action should be taken, if any, to recover from
the error. For job log messages, you can click the Advanced button to see information about the program
that sent the message and the program to which the message was sent. You can make changes to how
the job log is handled and what information is logged in the job log on the Job Log page in the Job
Properties dialog.
For information about how to view the job log for jobs, see Accessing job logs.
Threads
A thread is an independent unit of work within a job that uses many of the jobs resources to complete
work. The difference between jobs and threads is that threads run within the job helping it to finish its
work. Every active job has at least one thread, which is called an initial thread. The initial thread is created
as part of starting the job. The use of threads within a job allows many things to be done at once. For
example, while a job is processing, a thread may retrieve and calculate data needed by the job to finish
processing.
For more information on threads, see the following topics:
v Thread actions
Manage threads through iSeries Navigator.
v Thread types
This covers the different types of threads running within a job.
v Thread status
This includes the different statuses of a thread.
42
Thread actions: Threads help jobs process more than one operation at a time while running. Monitoring
the threads that are running within a job may be necessary as you attempt to keep the job running
efficiently. Once you find the thread you want to manage, the following actions are available by
right-clicking the thread.
Reset Statistics
Allows you to reset the list information you are viewing, and it sets the elapsed time to 00:00:00.
Details
Because the functions of a thread are similar to that of a job, they share some of the same job actions.
Details contains detailed information about the following thread actions:
v Call stack
v Library list
v Locked Objects
v Transactions
v Elapsed Performance Statistics
Hold
Allows you to hold the thread. Threads can be held multiple times. The operating system keeps track of
the number of times a thread is held.
Release
Releases the thread that was held. The thread must be released each time that it is held in order for it to
run.
Delete/End
Allows you to end the selected thread or threads. For more information, see Ending a thread.
Thread Properties
Displays the different properties of a thread.
For more detailed information on the actions you can perform on Threads, see the iSeries Navigator help.
Thread types: The thread type determines how the thread was created on the system.
The types of threads are:
User
The thread is created by the customer application. The initial thread in a job is always a user thread.
The Allow multple threads field must be must be set to yes for multiple user threads to be used.
System
The thread is created by the system on behalf of the user. Some system functions use system
threads to complete processing. If a customers application uses a system function that uses threads,
system threads are used.
Work management
43
Note:
Thread status: The current status of a thread is viewed from the General page in the Thread properties
dialog, under Detailed status. An example of a detailed status is:
Waiting for dequeue
The thread of the job is waiting for completion of a dequeue operation. A dequeue is an
operation for removing messages from queues. Messages are communications sent from one
person or program to another. In particular, a message is enqueued (placed) on a queue
system object by one thread and dequeued (removed) by another thread.
Note:
The detailed status can display an associated status value (status - x), which provides additional details
about the current status of the thread. An example of a detailed status plus the associated status value is:
Held (n)
An individual thread is held. Unlike a job, a thread can have multiple holds on it at the same
time. A number (for example, Held (3)) following the thread status tells the user how many times
that thread has been held without being released. For example, if a thread has had three holds
put on it and then has been released once, it still has two holds against it. A number is only
shown when the status appears on the Properties page and will not appear when displayed in a
list. To resume thread processing, select the Release action for the thread.
For more information on the different thread statuses, see the iSeries Navigator help.
Job queues
A job queue contains an ordered list of jobs waiting to be processed by a subsystem. The job queue is the
first place that a submitted batch job goes before becoming active in a subsystem. The job is held here
until a number of factors are met. In order for jobs on a job queue to be processed, there must be an
active subsystem that is accepting work from that job queue. When a subsystem starts, it attempts to
allocate the job queues that it is configured to accept work from, and it must successfully allocate a job
queue in order to process jobs from that job queue. Therefore, while one subsystem may be processing
jobs from multiple job queues, only one subsystem may be processing jobs from a particular job queue at
a time.
44
Subsystems select jobs from job queues in priority order, within limits that may be configured for each
priority. Each job has a job queue priority that can be managed when the job is on the job queue through
job properties. A base set of job queues is provided with your system. In addition, you may create
additional job queues that you need.
Note:
For more information about jobs on job queues, see the following topics:
v How work enters the system.
Understand how work gets onto a job queue.
v How a job queue works
Understand how a job gets from a job queue to a subsystem.
v Creating a job queue
Create a job queue with information in Chapter 8 of the Work Management
manual.
Work management
45
Subsystems
The subsystem is where work is processed on the iSeries server. All jobs, with the exception of system
jobs, run within subsystems.
More technically, a subsystem is a single, predefined operating environment through which the system
coordinates work flow and resource use. The system can contain several subsystems, all operating
independently of each other. Subsystems manage resources. Each subsystem can run unique operations.
For instance, one subsystem may be set up to handle only interactive jobs, while another subsystem
handles only batch jobs. Subsystems can also be designed to handle many types of work. The system
allows you to decide the number of subsystems and what types of work each subsystem will handle.
A subsystem can be either active or inactive. An active subsystem is one that has been started (see how
subsystems start for details). An inactive subsystem is one that either has not yet been started, or has
been stopped (see how subsystems stop for details).
The controlling subsystem is the interactive subsystem that starts automatically when the system starts,
and it is the subsystem through which the system operator controls the system during system startup.
A subsystem job is a job created by the operating system to manage resources and to start, control, and
end jobs.
Note:
Subsystem description
The run-time characteristics of a subsystem are defined in an object called a subsystem description. A
subsystem description acts as a set of instructions, telling the subsystem how, where, and how much work
enters a subsystem, and which resources the subsystem uses to perform the work. A subsystem is
created when a subsystem description is defined or created. An active subsystem takes on the simple
name of the subsystem description.
46
For details on what information is contained in the subsystem description, see the following table:
Information in subsystem description
Description
Additional information
(Work Management
manual)
Subsystem attributes
v Operational attributes
such as the number of
jobs that can be active in
the subsystem at the
same time, and the
sign-on display.
v Memory pools used by
the subsystem.
v Authority to the
subsystem description.
v Text description of the
subsystem description.
Work entries
Communications entry
Identifies the
Communications jobs,
communications device that Chapter 10 of the Work
another system uses to
Management manual.
submit work.
Workstation entry
Work management
47
Description
Additional information
(Work Management
manual)
Routing entries
Subsystem Description objects are shipped with every system. Below are the updates to the shipped
subsystem descriptions on the iSeries server. For each object, this table provides:
Object Name
Object description
Command used to create the object
Object parameters other than the default
The objects are grouped by object type.
This table and Appendix C in the Work Management manual
will give you allow you to see most of the shipped subsystem descriptions on the iSeries.
Object
QBASE
SBSD (QSYS/QBASE)
DEV (Q1PLOC)
DFTUSR (*NONE)
MODE (Q1PMOD)
MAXACT (0)
QBASE
SBSD (QSYS/QBASE)
REMLOCNAME (Q1PLOC)
DFTUSR (*NONE)
MODE (Q1PMOD)
MAXACT (0)
QBASE
SBSD (QSYS/QBASE)
PGM (QSYS/QZSCSRVR)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(3)
JOB (*PGM)
JOBD (*USRPRF)
MAXUSE (1)
WAIT (*YES)
POOLID (2)
CLS (QGPL/QCASERVR *CALC *NONE
*CALC)
48
Object
QBASE
SBSD (QSYS/QBASE)
PGM (QSYS/QNPSERVR)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(3)
JOB (*PGM)
JOBD (*USRPRF)
MAXUSE (200)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QCASERVR *CALC *NONE
*CALC)
QBASE
SBSD (QSYS/QBASE)
PGM (QSYS/QZRCSRVR)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(3)
JOB (*PGM)
JOBD (*USRPRF)
MAXUSE (1)
WAIT (*YES)
POOLID (2)
CLS (QGPL/QCASERVR *CALC *NONE
*CALC)
QCMN
SBSD (QSYS/QCMN)
REMLOCNAME (Q1PLOC)
DFTUSR (*NONE)
MODE (Q1PMOD)
MAXACT (0)
QCMN
SBSD (QSYS/QCMN)
DEV (Q1PLOC)
DFTUSR (*NONE)
MODE (Q1PMOD)
MAXACT (0)
QCMN
SBSD (QSYS/QCMN)
PGM (QSYS/QZRCSRVR)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(3)
JOB (*PGM)
JOBD (*USRPRF)
MAXUSE (1)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QCASERVR *CALC *NONE
*CALC)
Work management
49
Object
QCMN
SBSD (QSYS/QCMN)
PGM (QSYS/QZSCSRVR)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(3)
JOB (*PGM)
JOBD (*USRPRF)
MAXUSE (1)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QCASERVR *CALC *NONE
*CALC)
QCMN
SBSD (QSYS/QCMN)
PGM (QSYS/QNPSERVR)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(3)
JOB (*PGM)
JOBD (*USRPRF)
MAXUSE (200)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QCASERVR *CALC *NONE
*CALC)
QSERVER
SBSD (QSYS/QSERVER)
PGM (QSYS/QZDAINIT)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(3)
JOB (*PGM)
JOBD (*USRPRF)
MAXUSE (1)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QPWSERVER *CALC
*NONE *CALC)
QSERVER
SBSD (QSYS/QSERVER)
PGM (QSYS/QPWFSERVSO)
USER (QUSER)
STRJOBS (*NO)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(2)
MAXJOBS (*NOMAX)
JOBD (*USRPRF)
JOB (*PGM)
MAXUSE (200)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QPWFSERVER *CALC
*NONE *CALC)
50
Object
QSYSWRK
SBSD (QSYS/QSYSWRK)
JOBQ (QSYS/Q1PSCHQ)
MAXACT (1)
SEQNBR (70)
QSYSWRK
SBSD (QSYS/QSYSWRK)
JOBQ (QSYS/Q1PSCHQ2)
MAXACT (1)
SEQNBR (80)
QSYSWRK
SBSD (QSYS/QSYSWRK)
JOBQ (QSYS/Q1PSCHQ3)
MAXACT (1)
SEQNBR (90)
QSYSWRK
SBSD (QSYS/QSYSWRK)
JOB (QGLDPUBA)
JOBD(QSYS/QGLDPUBA)
QSYSWRK
SBSD (QSYS/QSYSWRK)
JOB (QGLDPUBE)
JOBD(QSYS/QGLDPUBE)
QSYSWRK
SBSD (QSYS/QSYSWRK)
JOB (QPM400)
JOBD (QSYS/Q1PJOBD)
QSYSWRK
SBSD (QSYS/QSYSWRK)
DEV (Q1PDEV)
JOBD (*USRPRF)
DFTUSR (QUSER)
MODE (Q1PMOD)
MAXACT (*NOMAX)
QSYSWRK
SBSD (QSYS/QSYSWRK)
DEV (Q1PLOC)
JOBD (*USRPRF)
DFTUSR (QPM400)
MODE (Q1PMOD)
MAXACT (*NOMAX)
QSYSWRK
SBSD (QSYS/QSYSWRK)
RMTLOCNAME (Q1PLOC)
JOBD (*USRPRF)
DFTUSR (QPM400)
MODE (Q1PMOD)
MAXACT (*NOMAX)
QSYSWRK
QSYSWRK
SBSD (QSYSWRK)
SEQNBR (300)
CMPVAL (PGMEVOKE 29)
PGM (*RTGDTA)
CLS (QSYS/QSYSCLS50)
MAXACT (*NOMAX)
POOLID (1)
Work management
51
Object
QSYSWRK
SBSD (QSYS/QSYSWRK)
SEQNBR (2536)
CMPVAL (QZSCSRVSD)
PGM (QSYS/QZSCSRVSD)
CLS (QGPL/QCASERVR)
QSYSWRK
SBSD (QSYS/QSYSWRK)
SEQNBR (2537)
CMPVAL (QZHQSRVD)
PGM (QSYS/QZHQSRVSD)
CLS (QGPL/QCASESERVR)
QSYSWRK
SBSD (QSYS/QSYSWRK)
SEQNBR (2538)
CMPVAL (QNPSERVD)
PGM (QSYS/QNPSERVD)
CLS (QGPL/QCASESERVR)
QSYSWRK
SBSD (QSYS/QSYSWRK)
SEQNBR (2539)
CMPVAL (QZRCSRVSD)
PGM (QSYS/QZRCSRVSD)
CLS (QGPL/QCASESERVR)
QSYSWRK
SBSD (QSYS/QSYSWRK)
SEQNBR (2540)
CMPVAL (QZSOSGND)
PGM (QSYS/QZSOSGND)
CLS (QGPL/QCASESERVR)
QSYSWRK
SBSD (QSYS/QSYSWRK)
SEQNBR (2541)
CMPVAL (QZSOSMAPD)
PGM (QSYS/QZSOSMAPD)
CLS (QGPL/QCASESERVR)
QSYSWRK
SBSD (QSYS/QSYSWRK)
SEQNBR (2170)
CMPVAL (QSYEIMMON)
PGM (QSYS/QSYEIMMON)
CLS (QSYS/QSYSCLS20)
MAXACT (*NOMAX)
POOLID (1)
QSYSWRK
SBSD (QSYS/QSYSWRK)
SEQNBR (2200)
CMPVAL (QYASPPGM)
PGM (QSYS/QYASPPGM)
CLS (QSYS/QSYSCLS20)
MAXACT (*NOMAX)
POOLID (1)
52
Object
QUSRWRK
SBSD (QSYS/QSYSWRK)
PGM (QSYS/QZSOSIGN)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(2)
MAXJOBS (*NOMAX)
JOB (*PGM)
JOBD (QSYS/QZBSJOBD)
MAXUSE (200)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QCASERVR *CALC *NONE
*CALC)
QUSRWRK
SBSD (QSYS/QUSRWRK)
PGM (QSYS/QZSCSRVS)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(2)
MAXJOBS (*NOMAX)
JOB (*PGM)
JOBD (QSYS/QZBSJOBD)
MAXUSE (200)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QCASERVR *CALC *NONE
*CALC)
QUSRWRK
SBSD (QSYS/QUSRWRK)
PGM (QSYS/QNPSERVS)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(2)
MAXJOBS (*NOMAX)
JOB (*PGM)
JOBD (QSYS/QZBSJOBD)
MAXUSE (200)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QCASERVR *CALC *NONE
*CALC)
Work management
53
Object
QUSRWRK
SBSD (QSYS/QUSRWRK)
PGM (QSYS/QZRCSRVS)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(2)
MAXJOBS (*NOMAX)
JOB (*PGM)
JOBD (QSYS/QZBSJOBD)
MAXUSE (1)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QCASERVR *CALC *NONE
*CALC)
QUSRWRK
SBSD (QSYS/QUSRWRK)
PGM (QSYS/QZDASOINIT)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(2)
MAXJOBS (*NOMAX)
JOB (*PGM)
JOBD (*USRPRF)
MAXUSE (200)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QPWFSERVER *CALC
*NONE *CALC)
QUSRWRK
SBSD (QSYS/QUSRWRK)
PGM (QSYS/QZHQSSRV)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(2)
MAXJOBS (*NOMAX)
JOB (*PGM)
JOBD (QSYS/QZBSJOBD)
MAXUSE (200)
WAIT (*YES)
POOLID (1)
CLS (QGPL/QCASERVR *CALC *NONE
*CALC)
54
Object
QUSRWRK
SBSD (QSYS/QUSRWRK)
PGM (QSYS/QZDASSINIT)
USER (QUSER)
STRJOBS (*YES)
INLJOBS(1)
THRESHOLD (1)
ADLJOBS(2)
MAXJOBS (*NOMAX)
JOB (*PGM)
JOBD (QSYS/*USRPRF)
MAXUSE (200)
WAIT (*YES)
POOLID (1)
CLS (QSYS/QPWFSERVER *CALC
*NONE *CALC)
SBSD (QSYS/QUSRWRK)
PGM(QSYS/QRWTSRVR)
USER (QUSER)
STRJOBS (*YES)
INLJOBS (1)
THRESHOLD (1)
ADLJOBS (2)
MAXJOBS (*NOMAX)
JOB (*PGM)
JOBD (*USRPRF)
MAXUSE (200)
WAIT (*YES)
POOLID (1)
CLS (QSYS/QSYSCLS20 *CALC *NONE
*CALC)
Qsyswrk
Qusrwrk
Qserver
Qspl
55
The other configuration, which is supplied by IBM, consists of the following subsystem descriptions:
Qctl (controlling subsystem)
Qinter
Qbatch
Qcmn
Qspl
Qsyswrk
Qusrwrk
Qserver
The Qbase configuration gives the ability to run all the same functions that you can run with the Qctl
configuration and is easier to manage because it consists of fewer subsystems.
The Qctl default configuration allows for more individualized control over your system operations by
dividing the system activity into different subsystems based on the type of activity. For example, if you
want to run batch jobs over the weekend or overnight but do not want anyone to be able to sign on
(except at the console), you can easily do that with the Qctl configuration by simply ending the Qinter
subsystem.
If you are considering creating your own subsystem configuration, you may also find that it is easier to use
the Qctl configuration as a starting point than the Qbase configuration.
User-defined subsystems
IBM provides subsystem descriptions that are shipped with the system. You can also create your own
subsystem description. You can copy an existing subsystem description and change it, or you can create
an entirely new description.
See Creating a subsystem description in Chapter 4 of the Work Management
56
Subsystem properties
Subystems have attributes, or properties. These properties give information about the current status of the
subsystem, or about values identified in the subsystem description. Using iSeries Navigator, the following
properties can be viewed for an active subsystem:
Subsystem
Description
Status
Active jobs
Maximum active jobs
Subsystem job
The name of the subsystem, as well as the library that contains the subsystem description.
The description of the subsystem.
The current status of the subsystem. The help contains details on the possible statuses.
The number of jobs currently active, either running or waiting to run, in the subsystem. This
number does not include the subsystem job.
The maximum number of jobs that can be active, either running or waiting to run, in the
subsystem.
The name of the subsystem job, including user and number.
Work management
57
58
v Start a subsystem
v What happens when the subsystem starts
v Stop a subsystem
What happens when the subsystem starts: When a subsystem starts, the system allocates several
items and starts autostart and prestart jobs before the subsystem is ready for work. The subsystem
description is used to determine how items are allocated.
The following list represents the sequence of events that occur when the subsystem starts:
1. Request to start subsystem is issued.
2. Memory pools are allocated.
Memory is allocated to the pools defined in the subsystem description. The memory that is allocated to
each defined pool is taken from the Base memory pool. The system does not allocate memory to a
pool if the amount of memory available to the Base memory pool would be less than the minimum size
specified by the base memory pool minimum size (Qbaspool) system value. If the system cannot
allocate all of the requested memory, it allocates as much memory as is available and allocates all the
other as memory becomes available.
See Pool Allocation in Chapter 4 of the Work Management
manual.
3. Display stations are allocated.
- If there are workstation entries and the device is varied on and has not been allocated by any other
subsystem, the subsystem can allocate it and display the Sign-On display.
- If the device is varied on and has been allocated by another subsystem and is at the Sign-On display
(the Sign-On display was displayed before the second subsystem was started), a second subsystem
can allocate the device from the first subsystem and display the Sign-On display.
- If the device is not varied on, the subsystem cannot allocate it. The system arbiter (Qsysarb) and the
Qcmnarbxx jobs hold locks on all varied-off devices.
See Workstation Device Allocation in Chapter 4 of the Work Management
manual.
4. Communications devices are allocated.
Requests are sent to the Qlus (LU services) system job, which handles device allocation for all
communications devices.
See Communications Devices and Mode Allocation in the Work Management
manual.
5. Job queues are allocated.
The subsystem will not be able to allocate a job queue if it is already allocated to another active
subsystem.
6. Prestart jobs are started.
7. Autostart jobs are started.
8. Environment is ready for work.
Work management
59
Memory pools
A memory pool is a logical division of main memory or storage that is reserved for processing a job or
group of jobs. On the iSeries server, all main storage can be divided into logical allocations called memory
pools. By default, the system manages memory pools. The system manages the transfer of data and
programs into memory pools if necessary.
You can control how much work can be done in a subsystem by controlling the number and size of the
memory pools. The greater the size of the memory pools in a subsystem, the more work that can be done
in the subsystem.
Note:
The memory pool from which user jobs get their memory is always the same pool that limits their activity
level. System jobs (such as Scpf, Qsysarb, and Qlus) get their memory from the base pool but use the
machine pool activity level. Subsystem monitors get their memory from the first subsystem description pool
but not the activity level. This allows a subsystem monitor to always be able to run regardless of the
activity level setting.
Note:
60
which is usually short, another thread can run. Using the activity level, the machine can process a large
number of threads in a memory pool and, at the same time, hold the level of contention to the limit you
specify.
Maximum activity level
Once the maximum activity level for a memory pool has been reached, additional threads
needing the memory pool are placed in the ineligible state to wait for the number of active
threads in the memory pool to fall below the maximum activity level or for a thread to reach the
end of its time slice. As soon as a thread gives up its use of the memory pool, the other threads
that are not active become eligible to run by their priority. For example, if a running thread is
waiting for a response from a workstation, it gives up its activity level and the activity level is no
longer at its maximum.
Defining memory pool activity levels
Defining memory pools and activity levels correctly is generally dependent on size of the
memory pool, the number of CPUs, the number of disk unit arms, and the characteristics of the
application. See Performance tuning in Chapter 14 of the Work Management
manual for a more detailed description of how to set appropriate activity levels.
Work management
61
Output queues
Output queues are areas where printer output files (also called spooled files) wait to be processed and
sent to the printer. Printer output is created either by the system or by the user using a print file. A print
file is similar to a template or a guideline where the default values for the attributes of printer output are
set. It is the beginning of the printer output life cycle.
The print file contains the output queue (OUTQ) and print device (DEV)attributes, which dictate how the
printer output is to be directed. The default settings are usually *JOB, meaning that the job attributes of the
output queue and printer device determine how the printer output is directed. The job attributes of the
output queue and printer device settings are based on information obtained when the job is created. This
is based on information from the user profile the job is running under, the job description, the workstation
device description, and the default printer(QPRTDEV).
When the printer output is ready to be created, the system checks the print file and the job attributes (in
this order) to see what output queue will process the printer output and which printer device the system
will use. You can change the parameters of the output queue (OUTQ) and printer device (DEV) at the time
the job is submitted or at job run-time to bypass extended processing. For example, the user can set the
print file output queue to a specific queue and set the printer device to their specific printer in the print file
at job initiation for the changes to take effect immediately. In doing this, the printer output does not have to
go through the job attributes to find the output queue and printer device it will use. If a specified output
queue cannot be found, the printer output will be directed to QGPL/QPRINT. For more information on how
printer output is created, see Chapter 1 of the Printer Device Programming manual.
Printer output files (also called spooled files) are files that hold information waiting to be printed or
processed. The printer output file (also called spooled files) holds important attributes that define the
position of the printer output on the queue with relation to other printer output. The position is defined by
the priority, status, and schedule attributes.
Output queue
An output queue is an object that contains a list of printer output files (also called spooled files) to
be written to an output device. The output queue carries important attributes that determine the order
in which printer output is processed and the authority needed to make changes to the printer output
file.
Priority
Printer output that is waiting to process is moved to the output queue based on its priority (ranges
from 1-9 where 1 is the highest priority).
Status
The current status of printer output. You can view this status from the General page in Output
properties.
Schedule
The schedule attribute tells when the file should start physical printing of the output data.
Immediate
Print immediately, even if the printer output file (also called spooled files) is not closed.
File end (default)
Printing begins as soon as the printer output file (also called spooled files) is closed.
Job end
Printing begins when the job ends.
62
Once the printer output file (also called spooled files) is ready to be printed, a writer job, a job that
processes the printer output from the output queue to the printer device, takes data from the printer output
file (also called spooled files) and sends it to the designated printer.
Spool control. Allows the user to perform all operations on printer output. The user must have
*EXECUTE authority to the library the output queue is located in to perform any actions on the output
queue.
Owner. This allows the user who owns the output queue to change or delete printer output.
Note:
For more information on authorities needed to work with output queues, see Appendix D in the Security
Reference Manual
Work management
63
Order of Files: The order of files attribute determines the sequence in which the printer output files
(also called spooled files) are placed and processed on the output queue. Two ways to configure the
output queue are by job number and first in, first out (FIFO).
Job number
The queue entries for the printer output file (also called spooled file) are sorted in priority sequence
using the job number of the job that created the printer output file.
First in, first out
New printer output files (also called spooled files)that enter the queue are placed after all other
printer output files that have the same priority.
Note:
64
Printing
The contents of the printer output file are being sent to the printer device.
Sent to printer
The contents of the printer output file are being printed. The operating system is waiting for
confirmation that the printer output file is done printing.
Being sent
The printer output file is being transferred from one system to another system.
Message waiting
The writer job has encountered a problem, such as out of paper or a paper jam, where it may
not be able to proceed printing. When this condition occurs, sometimes operator intervention
will be required.
Finished printing
The printer output file has been deleted. Note, the printer output file may or may not have been
printed.
What work is
What happens before work enters the system
How work enters the system
How work gets processed
How work leaves the system
For more detailed information on the concepts of Work Management, see The structure of your system.
What work is
On the iSeries server, work is always being done, whether you initiate it or the system initiates it. Work is
done when you power on your system, when you open a file, or when you query a database. Any action
done on the iSeries server has some type of work being performed to complete it.
Each piece of work on the system is performed by a job. A job can be as simple as an application that
waits for a user to call it or it can be as complex as a system query to monitor the number of users on the
system every hour that runs constantly. Some jobs, specifically batch and interactive jobs, have job
descriptions associated with them that tell when and where the job will run.
Jobs are made up of programs that perform certain functions. There is no limit to the amount of functions
a job performs. A job contains the step-by-step instructions that must be completed for work to be done.
The programs that make up the job run in a specific order. For example, program A needs to run before
program B can begin.
Work management
65
Threads
help a job complete its work. An active job contains at least one thread. When a job contains multiple
threads, it has the ability to do more than one thing at once. For example, one thread can go out and do
calculations while another thread waits for more data to process.
For more detailed information on jobs and job types on the iSeries server, see Jobs.
manual.
66
work in the subsystem. Work (or jobs) enters a subsystem through work entries where it becomes active
and eligible to run. Work can only be completed when the subsystem is allocated memory to run. Memory
is allocated to the subsystem by a memory pool.
How the subsystem description helps process work
Like a job, a subsystem has a description, called a subsystem description. The subsystem description
contains important information that tells how, where, how much work can be active in a subsystem at one
time, and which resources it can use to perform the work.
Routing entry
A routing entry exists within the subsystem description that tells the subsystem what memory pool to run
the job in, what program to run for the job, and which class object to use to run the job. For more
information about routing entries, see chapter 4 in the Work Management
manual.
Class Object
The Class object defines the run priority, default wait time, timeslice, and other attributes. The run priority
is important because it determines when a job will get processor time in order to run. The run priority scale
goes from 0 to 99, with 0 being the highest priority. (Only system jobs are given priority of 0 because they
are the jobs that run the iSeries server.)
When a job enters the subsystem, the subsystem tries to match the routing data with the compare value
in the routing entry. If the routing data and the compare value in a routing entry match, the routing entry is
assigned to the job. If a match is not made, the job ends.
Another factor that affects when a job runs in the subsystem is the number of jobs allowed to be active in
the subsystem at one time (also known as maximum active jobs in the subsystem). When the maximum
number of active jobs in a subsystem has been met, no more jobs can enter the subsystem until existing
active jobs complete running. Memory has to be allocated to the subsystem for a job to run. Memory pool
activity levels tell the iSeries server how many threads can be active within a memory pool. Remember,
an active job contains at least one thread. When the memory pool activity level has been reached, the job
has to wait for another thread to give up its use of the activity level. A job can be active in a subsystem
and not be running.
Note: Do not confuse the subsystem maximum active jobs with the memory pool activity level.
For more information on jobs, subsystems, and memory pools, see the Work Management
manual.
67
The output queue contains attributes of its own that determine the order in which the printer output files
are processed. It also contains the authority needed to make changes to the printer output and the output
queue.
When the printer output is ready to be sent to the printer it is picked up by a writer job. The writer job
takes the data from printer output and prepares it to be printed.
For details about how the output queue gets selected see Controlling print activity in Chapter 1 of the
Printer Device Programming
manual.
You can create specific output queues or use the output queues shipped with the system. For more
detailed information, see Creating an output queue.
My job is hung
The following are possible reasons why a job might be hung:
Job is waiting to get a lock on an object
How View the status of the job in iSeries Navigator; see Determining the status of a job. A job that is waiting
to to get a lock will have a status of Waiting for lock.
diagnose:
Recovery:
View the list of locked objects for the job to determine which object the job is waiting to get a lock on;
see Details: Active job actions. Then use the Lock Holders action against the object to determine which
job already holds the lock. You then need to determine why this job is holding the lock, and what can be
done to release the lock. In V5R2, status values can have additional information on the properties
pages. For example, the status waiting for a lock on the Properties page shows you what object is
associated with the lock request.
Job is held
How to
diagnose:
Recovery:
View the status of the job in iSeries Navigator; see Determining the status of a job
Right click on the job and select Release.
The following are possible reasons why a job on a job queue might be hung:
Job queue is held
How to
diagnose:
Recovery:
68
reached
View the maximum active jobs value for the subsystem in iSeries Navigator. To do
so, right-click on the subsystem and select Properties
1. Move the job to a different job queue, see Moving jobs to different job queues.
2. Increase the maximum value. To do so, use the Change Subsystem
Description (CHGSBSD) command.
Change the job queue priority of the job; see Changing the priority of a job within a job
queue.
3. Increase the maximum value. To do so, use the Change Job Queue Entry (CHGJOBQE)
command.
Work management
69
Insufficient memory
How View the properties of the job to determine which memory pool the job is running in. Then view the
to
properties of the memory pool in iSeries Navigator, see Checking memory pool usage. A high rate of
diagnose:
faulting in a pool indicates that there is not enough memory in the pool, or that too many jobs are in the
pool competing for the memory.
Recovery:
1. Turn on the system tuner if you are not already using it. The system value QPFRADJ automatically
adjusts memory pools and activity levels.
2.
If possible, manually tune the pool you are working with by increasing the amount of memory in the
pool or reducing the activity level for the memory pool. You may also want to check the machine
pool to verify that the amount of memory being used is not affecting all jobs on the system.
70
For more information on performance, see Performance. If you want more information on how to tune
performance on your system, see Tune performance.
Work management
71
72
Printed in U.S.A.