The Check Object Source tool performs 3 functions: 1) Lists objects
that were created from source but the source no longer exists where
it was created from 2) Lists source members which have not been used
to create an object and 3) Lists source members which have been used
to create more than a single object. An attempt is made to identify
'possible' missing items based on the last source change date and
time.
CHKOBJSRC can be used against one or more libraries or the entire
system. *TEST libraries can be bypassed and a list of libraries
omitted.
A typical command to run over the entire system would take a long
time and should be entered to batch in off hours such as:
SBMJOB JOB(CHKOBJSRC) CMD(CHKOBJSRC) LIB(*ALLUSR) +
LIBTYPE(*PROD) OMITLIB(TAATOOL)
You must have *USE authority to the TAACVTLIBD authorization list to
specify *ALLUSR.
Three spooled files would be output:
** OBJECTS. This is a listing of all objects where the source
cannot be found.
-- If the source exists, but is in a library which is not
included in the LIB parameter, it is flagged.
-- If the source member has been renamed or the source
file has been moved or renamed, an attempt is made to
identify the source by using the last change date and
time. If the information in the object matches the
last change date/time of some source member, it is
flagged as a 'possible' matching source member.
-- Single module ILE programs are checked for source in
the same manner as OPM programs.
-- Multi-module ILE programs and *SRVPGMs are always
identified as exceptions.
** NONOBJSRC. This is a listing of the source members that do
not appear to have been used to create an object.
-- If the last change date in the source matches the same
information in an object, the 'possible object
information' is noted.
-- Any TXT or TXT38 type members are bypassed.
** MLTSRCOBJ. This is a listing of the source members that have
been used to create more than a single object.
The listings include totals and comments to assist you in
understanding the output.
Running over less than the entire system
----------------------------------------
If a library value other than *ALLUSR is specified
or there are 'Omit libraries', not all checking can be
achieved.
** If the object was created from source that exists in a library
that is not part of the processing, the source is checked for
and if it exists, a special flag is set.
** If a source member is processed that has a corresponding
object in a library that is not part of the processing, the
member will appear not to have created an object. Only if the
library is also processed will the NONOBJSRC listing be able
to identify the object that was created.
Use of QTEMP to create objects from
-----------------------------------
Some installations use source files in QTEMP. The normal source is
copied to the QTEMP and the objects created from these source files.
If this occurs, the object reference to the source refers to the
QTEMP library. These objects will appear as if the source does not
exist.
Several TAA CRT commands use this technique when creating a data base
structure of physical and logical files. The source is copied from
the TAA Archive to source files in QTEMP (modified in some cases) and
the objects are created.
If you normally create objects from source in QTEMP or move the
source after the create step, you should consider the use of the TAA
command CHGOBJSRC This will allow you to change the reference
information within the object to point to the actual source.
Omitting the TAATOOL library
----------------------------
If you use LIB(*ALLUSR) or have TAATOOL on the library list and
specify LIB(*USRLIBL), you will find almost all TAA objects flagged
as 'Source does not exist'. You will normally want to specify:
CHKOBJSRC LIB(*xxx) OMITLIB(TAATOOL)
The TAA objects in the TAATOOL library are created from source in the
library TAATOOL2. This library is not shipped with the product.
Instead, the source is placed in the TAA Archive and can be extracted
using a command such as CPYTAA.
Consequently, most TAA objects in the TAATOOL would appear as 'Source
does not exist' if you include the TAATOOL library.
Handling of ILE Programs
------------------------
Service programs and multi-module programs cannot be adequately
processed and are always flagged.
Single module ILE programs are processed as if they are OPM programs.
The source used is determined by use of the TAA RTVILEMODA command
and checked as if it were OPM source.
OMITLIB Data Area in TAASECURE
------------------------------
The OMITLIB data area in TAASECURE is used in a prompt override
program to fill in the OMITLIB parameter. The data area is
initialized to TAATOOL when the TAA Productivity Tools are first
shipped.
You may add other libraries that you want to bypass in your
installation. For example, if you have other products on your system
that should not be included, you could add them to the list.
An *ALLOBJ special authority user could enter the command:
EDTCONARR DTAARA(TAASECURE/OMITLIB)
The list of libraries can then be maintained.
CHKOBJSRC escape messages you can monitor for
---------------------------------------------
None. Escape messages from based on functions will be re-sent.
Command parameters *CMD
------------------
LIB The library to be considered. Up to 40 libraries
may be entered including generic library names.
Special values *ALLUSR and *USRLIBL are also
supported. You must have *USE authority to the
TAACVTLIBD authorization list to specify *ALLUSR.
LIBTYPE The type of libraries to be processed. *ALL is the
default. Either *PROD or *TEST may be entered to
process only those libraries with the specified
attribute (the TYPE parameter is specified on
CRTLIB).
OMITLIB A list of up to 45 libraries to be omitted. The
default is *NONE. A prompt override program exists
so that the OMITLIB data area in TAASECURE is used.
See the previous discussion for how to use this data
area.
If you are processing *ALLUSR or *USRLIBL, you would
normally want to omit the TAATOOL library.
Restrictions
------------
You must have *USE authority to the TAACVTLIBD authorization list to
specify *ALLUSR.
Because many messages are sent to the job log, the function does
CHGJOB JOGLOGMSGFL(*WRAP) to prevent from overflowing the job log
message queue if LIB(*ALLUSR) is specified or if the function is
running in batch.
See also the section on 'Running over less than the entire system'.
Prerequisites
-------------
The following TAA Tools must be on your system:
CHKALLOBJ Check *ALLOBJ special authority
CHKDUPLST Check duplicate list
CHKGENERC Check generic
CHKGENOBJ Check generic object
CHKOBJ3 Check object 3
CRTDUPPF Create duplicate physical file
CVTDAT Convert date
CVTLIBDBF Convert library data base files
EXTLST Extract list
EXTLST2 Extract list 2
RTVILEMODA Retrieve ILE module attributes
RTVSYSVAL3 Retrieve system value 3
SNDCOMPMSG Send completion message
SNDESCMSG Send escape message
SNDJLGMSG Send job log message
SNDSTSMSG Send status message
UPDPFILE Update PFILE keyword
Implementation
--------------
None, the tool is ready to use.
Files used
----------
Files are created in QTEMP during processing:
Source File in QTEMP Description
------ ------------- -----------
TAASREEP TAACHKOBJP DSPOBJD outfile with keys
Keyed by object name
TAASREEL TAACHKOBJL LF over TAACHKOBJL
Keyed by Src change date
TAASREEQ TAAMBRLST Mostly DSPFD *MBR output
Keyed by Src mbr name
TAASREEX TAAMBRLSTL LF over TAAMBRLST
Keyed by Src change date
TAASREES OBJSRCP Created objects from source
Keyed by Src name
Objects used by the tool
------------------------
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
CHKOBJSRC *CMD TAASREE QATTCMD
TAASREEC *PGM CLP TAASREEC QATTCL
TAASREEC2 *PGM CLP TAASREEC2 QATTCL
TAASREEC10 *PGM CLP TAASREEC10 QATTCL
TAASREEC11 *PGM CLP TAASREEC11 QATTCL
TAASREER *PGM RPG TAASREER QATTRPG
TAASREER2 *PGM RPG TAASREER2 QATTRPG
TAASREER3 *PGM RPG TAASREER3 QATTRPG
TAASREEP *FILE PF TAASREEP QATTDDS
TAASREEQ *FILE PF TAASREEQ QATTDDS
TAASREES *FILE PF TAASREES QATTDDS
TAASREEL *FILE LF TAASREEL QATTDDS
TAASREEX *FILE LF TAASREEX QATTDDS
Structure
---------
CHKOBJSRC Cmd
TAASREEC CL pgm - TAASREEC10 is Prompt override
TAASREEC2 CL pgm - Builds outfile of source members
TAASREER RPG Pgm - Objects with missing source
TAASREEC11 CL pgm - Checks for ILE program
TAASREER2 RPG Pgm - Source not used to create objects
TAASREER3 RPG Pgm - Source used for more than one object
The prompt override program is TAASREEC10.
|