The Check Standard Jobs command provides a method of determining if
required system and standard processing jobs are active. CHKSTDJOBS
operates by using the output of the TAA CVTWRKACT command when the
system is known to be in a good state. When a check is needed,
CVTWRKACT is used again and compared against the standard values.
Testing CHKSTDJOBS
------------------
** It is best (but not essential) to run this test when the
system is quiet and no other batch work is being performed.
** To provide for a test, enter the following command:
SBMJOB JOB(TSTSTDJOBS) CMD(DLYJOB 300)
JOBQ(QSYSNOMAX)
This will submit a job which waits for 5 minutes to allow a
test.
** Run the following CRTSTDJOBS command. Choose a library so
that the STDJOBP file will be on the library list when
CHKSTDJOBS is run.
CRTSTDJOBS OUTLIB(xxx)
The STDJOBP file would be created with the active batch jobs.
** Run the CHKSTDJOBS command. This command would normally be
run with the default of DLTSPLF(*YES) which would produce an
escape message if any jobs from STDJOBP are not currently
active.
CHKSTDJOBS
If a batch job was in existence when CRTSTDJOBS was run and is
now complete, you should see an escape message. The spooled
file is always retained if an error occurs.
** End the test job that was submitted:
ENDJOB JOB(TSTSTDJOBS) OPTION(*IMMED)
** After waiting a moment for the TSTSTDJOBS job to be ended, run
the CHKSTDJOBS command again:
CHKSTDJOBS
You should receive an escape message because the TSTSTDJOBS
job is no longer active.
** Display the output listing. You should at least see the
TSTSTDJOBS job is flagged.
You will probably see some standard jobs with a count of more
than one. This is typical of system server jobs. When there
is more than one job for the same subsystem, job, and user
name (the job number is not considered), the count will
reflect the number of duplicates.
Note that it is not an error if additional batch jobs are
active. Only the standard jobs are considered.
Establishing a standard jobs file
---------------------------------
** The CRTSTDJOBS command should be run when the system is in a
state that you would consider 'standard', but no additional
batch jobs are being run.
If you want to use the same library as used in the prior test,
enter:
CRTSTDJOBS ACTION(*REPLACE)
** You can check the file with:
CHKSTDJOBS DLTSPLF(*NO)
** If a job is active that you do not want to be considered as
standard, the record should be removed from the STDJOBP file.
You can add or delete records from the STDJOBP file using a
variety of data base functions.
The TAA Tool EDTDBF can be used to both add and delete. When adding
a new record, the following fields must be entered: such as EDTDBF.
AJSBS Subsystem
AJJOB Job
AJUSR User
The field AJJCPU is used by CRTSTDJOBS to determine the number
of jobs that should exist. Enter a value for AJJCPU
(typically 1). If you have multiple jobs for the same
subsystem, job, and user, enter the count of duplicates into
AJJCPU.
** Once you have the STDJOBP file as desired, you can run the
CHKSTDJOBS command and check for errors. The following is
typical code in a CL program.
CHKSTDJOBS STDJOBPLIB(xxx)
MONMSG MSGID(TAA9893) EXEC(DO) /* Failed */
/* */
/* Your handling of the failed */
/* condition */
/* */
ENDDO /* Failed */
You might want to have a never ending program submitted by a
startup program that checks every hour such as:
LOOP: DLYJOB DLY(3600)
/* Previously shown code */
GOTO LOOP
** On each new release of the system (or in some cases PTF
changes), you may need to repeat the process to see if the
system has added other jobs that need to be considered.
How CHKSTDJOBS operates
-----------------------
When CRTSTDJOBS is run, the TAA Tool CVTWRKACT is used to output a
file of the active batch jobs. The file is then sorted by subsystem,
job, and user. The AJJCPU field is used to hold the count of the
required active jobs. It is zeroed out in all records.
The CVTWRKACT file is then read and each corresponding record in the
sorted file is updated with a count of one in the AJJCPU field. Note
that the key is subsystem, job, and user so only the first duplicate
record (if any) is updated for each duplicate.
The file is then copied to the STDJOBP file in the named library.
When CHKSTDJOBS is run, CVTWRKACT is used for the active batch jobs.
The AJINTC field is zeroed out for each record in the STDJOBP file.
Each active job is then read and if a corresponding record exists in
STDJOBP, the AJINTC field is updated with a count of one.
The STDJOBP is then read and the AJJCPU field is compared to the
AJINTC field. Any differences are flagged. A spooled file is always
output. If no differences were found and DLTSPLF(*YES) was
specified, the spooled file is deleted.
If differences were found, an escape message is issued.
CHKSTDJOBS escape messages you can monitor for
----------------------------------------------
TAA9893 One or more jobs that should be active are not.
Escape messages from based on functions will be re-sent.
CRTSTDJOBS Command parameters *CMD
-----------------------------
STDJOBPLIB The library where the STDJOBP file will exist. The
command should be run when the system is in a
standard state, but no other batch work is being
performed. See the tool documentation.
ACTION The action to be performed.
*CREATE is the default to create the file and copy
the active batch jobs.
*REPLACE may be specified to replace the data in the
existing file with the current active batch jobs.
CHKSTDJOBS Command parameters *CMD
-----------------------------
STDJOBPLIB The library where the STDJOBP file exists. This
file must be created by CRTSTDJOBS.
DLTSPLF A *YES/*NO value to determine if the spooled file
created by the command should be retained.
*YES is the default to delete spooled file if no
differences are found. Note that the spooled file
is always retained if differences are found.
*NO may be specified to always retain the spooled
file.
Restrictions
------------
None.
Prerequisites
-------------
The following TAA Tools must be on your system:
CVTWRKACT Convert work active
DUPTAADBF Duplicate data base file
EDTVAR Edit variable
RTVFMT Retrieve format
RTVSYSVAL3 Retrieve system value 3
SNDCOMPMSG Send completion message
SNDDIAGMSG Send diagnostic message
SNDESCINF Send escape information
SNDESCMSG Send escape message
SNDSTSMSG Send status message
SORTDBF Sort data base file
Implementation
--------------
See the previous instructions.
Objects used by the tool
------------------------
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
CHKSTDJOBS *CMD TAAJOFC QATTCMD
CRTSTDJOBS *CMD TAAJOFC2 QATTCMD
TAAJOFCC *PGM CLP TAAJOFCC QATTCL
TAAJOFCC2 *PGM CLP TAAJOFCC2 QATTCL
TAAJOFCR *PGM RPG TAAJOFCR QATTRPG
TAAJOFCR2 *PGM RPG TAAJOFCR2 QATTRPG
|