The Compare System Information tool supports several commands to
compare different versions of the information in the library
specified on CRTSYSINF as captured by the CAPSYSINF command. This
allows a determination of what objects are new, have been deleted, or
have grown in size more than a specified value.
The CMPSYSINF command provides a menu of the processing commands.
You may run any of the commands from the menu or individually enter
one of the following:
** CMPSYSINFO compares library or individual object information.
** CMPSYSINFM compares member information.
** CMPSYSINFI compares IFS information.
CMPSYSINFO - Compare system information - library or objects
------------------------------------------------------------
Assume you want a listing of the libraries that have increased in
size by 100,000 bytes from a specific version to the current version
in the library used by CAPSYSINF. You would specify:
CMPSYSINFO FROMVER(xxx) TOVER(*CURVER) TYPE(*LIB)
LIB(*ALL) SIZINC(100000) LISTTYPE(*NONE)
The listing would describe any libraries that have increased in size
by 100,000 bytes. Both existing and new libraries would be listed.
Assume you found a few libraries where you wanted to determine what
was the cause of the increase at the object level. You might request
a size increase of 10,000 bytes such as:
CMPSYSINFO FROMVER(xxx) TOVER(*CURVER) TYPE(*OBJ)
LIB(lib1 lib2 lib3)
LISTTYPE(*NONE) SIZINC(10000)
The listing would describe any objects that have increased in size by
10,000 bytes. Both existing and new objects would be listed.
You may also request that all library/objects be listed instead of
just those that exceeded a size value or you can request to see only
the new or deleted library/objects.
CMPSYSINFM - Compare system information - members
-------------------------------------------------
Assume you want a listing of data members from any library beginning
with PROD that have increased in size by 5,000,000 bytes.
CMPSYSINFM FROMVER(xxx) TOVER(*CURVER) LIB(PROD*)
DATATYPE(*DATA)
LISTTYPE(*GRW) SIZINC(5000000)
Assume you want a listing of any new source members in all *NONSYS
libraries excluding any library beginning with ABC.
CMPSYSINFM FROMVER(xxx) TOVER(*CURVER) LIB(*NONSYS)
DATATYPE(*SRC) OMITLIB(ABC*)
LISTTYPE(*NEW)
CMPSYSINFI - Compare system information - IFS
---------------------------------------------
Assume you did an IFSLST using the CRTIFSLST tool and captured just
the information from the directories you had specified. Now you want
to determine all of the IFS stream files that are greater than
100,000 bytes in those directories.
CMPSYSINFI FROMVER(xxx) TOVER(*CURVER) IFSTYPE(*STMF)
LISTTYPE(*NEW) SIZDIF(100000)
CMPSYSINF processing
--------------------
All 3 commands operate in a similar manner. They use the
corresponding CPYSYSINFx command to copy from the From and To
versions into the same keyed file in QTEMP. The file in QTEMP is
processed so that a From and To record for the same object would
appear in sequence.
Part of the CAPSYSINFx command processing is to update the version
name into a field in the record so the processing program can
determine whether a From or To record exists. The following fields
contain the version name:
File Field Description
---- ----- -----------
DSPOBJD ODPGP Primary group
CVTFD MBFMSL Format selector library
IFSDIRT IFPGRP Primary group
These fields will not contain the original data from the outfile, but
rather the version name as assigned by CAPSYSINFx.
Because the CPYSYSINFx commands allow you to add data to an existing
member, it is possible that the resulting file would contain multiple
records for the same object.
The CMPSYSINFx commands will recognize duplicates and describe a
'duplicate count' at the end of the listing if any exist. Duplicate
conditions prevent the proper comparison.
The path length as described in the IFOBJP field of the IFSDIRT file
in the library used to hold the system information is 5000 bytes.
The maximum key structure allowed by the system is 2000 bytes.
When CPYSYSINFI is used, the IFSDIRT file is rewritten to the
TAASYTMS file. The IFOBJP is changed into two fields IFOBJ1 (1950
bytes) and IFOBJ2 (3050 bytes). This allows the IFOBJ1 field to be
sequenced to bring the From and To information together.
If path names exceed 1950 bytes and are the same for the the first
1950 bytes, duplicates will exist and prevent a proper comparison.
CMPSYSINFO escape messages you can monitor for
----------------------------------------------
None. Escape messages from based on functions will be re-sent.
CMPSYSINFO parameters *CMD
---------------------
FROMVER The From version name in the DSPOBJD file in the
library specified on CRTSYSINF. Use WRKSYSINF to
help determine the version name.
TOVER The To version name in the DSPOBJD file in the
library specified on CRTSYSINF. The default is
*CURVER meaning the version that was added the last
time CAPSYSINF was run.
TYPE The type of processing to be performed. *LIB is the
default to summarize the object information by
library and then report on differences. *OBJ may be
specified to report on individual object
differences.
LIB The library to select. The default is *ALL for all
libraries.
Up to 300 libraries or generic library names may be
entered. See the further comments about the library
record (*LIB) in QSYS.
No check is made to determine if a valid library
exists.
If the library criteria is met, the objects in the
library will be compared based on the other
selection criteria.
Special values are supported to allow a comparison
from the same libraries as described by the special
value. For example, if LIB(*USRLIBL) is specified,
all objects from libraries on the current user
portion of the library list will be compared.
Note that the library record in QSYS (*LIB type)
will not be compared when a specific user library is
entered or the special values *NONSYS, *ALLUSR,
*ALLNONQ, or *USRLIBL. If *LIBL is specified, QSYS
will be on the library list and will cause the
library records to be compared automatically. Use
the special function of LIB(QSYS) and OBJTYPE(*LIB)
if you need the library record for a specific
library.
When a LIB special value is used, OBJTYPE(*LIB) may
be used, but must be the only object type
identified.
You can compare multiple library records by using
special values.
*NONSYS may be entered to compare from those
libraries that are saved by a SAVLIB LIB(*NONSYS).
See the SAVLIB command for what libraries are saved.
*ALLUSR may be entered to compare from those
libraries that are saved by a SAVLIB LIB(*ALLUSR).
See the SAVLIB command for what libraries are saved.
*ALLNONQ may be entered to compare from those
libraries that do not begin with the letter Q.
*USRLIBL may be entered to compare from those
libraries that exist on the user portion of the
library list. This includes the current library and
excludes libraries that are in the product portion.
*LIBL may be entered to compare from those libraries
that exist on the user portion of the library list.
LIBTYPE The type of library. The default is *ALL for all
types.
*PROD may be specified to compare only objects in
libraries with an attribute of PROD. If the library
object (or an object in the library) is specified as
a PROD type, it will be compared.
*TEST may be specified to compare only objects in
libraries with an attribute of TEST. If the library
object (or an object in the library) is specified as
a TEST type, it will be compared.
OBJ The object or generic object name to compare. *ALL
is the default to compare all object names.
OBJTYPE The object types to compare. The default is *ALL
for all types. A list of up to 40 object types may
be entered.
To see the possible values, prompt for the command
and use the ? function for the parameter.
If OBJTYPE(*LIB) is specified, it may not be
combined with any other object types. OBJTYPE(*LIB)
allows the comparing of the library object from
QSYS. If *ALL or *LIBL are specified, the library
objects are automatically considered because they
are in QSYS.
OBJATTR The object attribute to copy such as RPG. A list of
up to 10 object attributes may be entered. The
default is *ALL for all attributes.
A specific attribute may be entered such as RPG or
DFU. There is no checking of the validity of the
attribute you enter.
OMITLIB A list of up to 300 libraries to be omitted. The
default is *NONE. Either a specific library or
generic library name may be entered. There is no
check to that the library exists or to ensure that
it is included. For example, if you include library
A and B and omit library C, no error occurs.
LISTTYPE How to list the libraries or objects. The values
have the same meaning whether TYPE is *LIB or *OBJ.
The values control how much output occurs to the
listing.
*ALL is the default and means that all libraries or
objects will be listed with both the From and To
library/objects. The SIZDIF parameter may be used
by bypass objects and applies to library/objects
that have been added, deleted, or grown in size.
*ADD may be specified to list only those
library/objects that have been added (Exist in the
To version, but not in the From version). The
SIZDIF parameter may be used to select only those
library/objects that have been added an exceed the
size specified.
*GRW may be specified to list only those
library/objects that have grown (exist in both the
To version and the From version). The SIZDIF
parameter must be used to describe those
library/objects that will be listed (e.g. if the
library/object is the same size, it will not be
listed).
*ADDGRW may be specified to list those
library/objects that have been added (exist in the
To version, but not in the From version) or those
that have grown (exist in both the To version and
the From version). The SIZDIF parameter must be
used to describe those library/objects that will be
listed.
*DLT may be specified to list only those
library/objects that have been deleted (Exist in the
From version, but not in the To version). The
SIZDIF parameter may be used to list only those
library/objects that have been deleted that exceed a
certain size.
SIZDIF Whether to flag libraries/objects that have had a
specified size growth, size, or deleted size. The
default is *NONE meaning no flags occur.
A value must be entered for a LISTTYPE of *GRW or
*ADDGRW.
A value may be entered for a LISTTYPE of *ALL, *ADD,
or *DLT.
The size difference value may be used to reduce the
amount of output that must be reviewed. For
example, if you are only interested in
library/objects that have been added or grown by
5,000,000 bytes, you would specify LISTTYPE(*ADDGRW)
and SIZDIF(5000000).
If a LISTTYPE of *ALL or *DLT is specified, any
library/objects that have been deleted and exceed
the size specified, will be listed.
Negative growth is not considered.
OUTPUT How to output the results. * is the default to
display the spooled file if the command is entered
interactively. The spooled file is deleted after it
is displayed.
If the command is entered in batch or *PRINT is
specified, the spooled file is output and retained.
CMPSYSINFM parameters *CMD
---------------------
FROMVER The From version name in the CVTFD file in the
library specified on CRTSYSINF. Use WRKSYSINF to
help determine the version name.
TOVER The To version name in the CVTFD file in the library
specified on CRTSYSINF. The default is *CURVER
meaning the version that was added the last time
CAPSYSINF was run.
LIB The library to select. The default is *ALL for all
libraries.
Up to 300 libraries or generic library names may be
entered.
No check is made to determine if a valid library
exists.
If the library criteria is met, the members in the
library will be compared based on the other
selection criteria.
Special values are supported to allow a comparison
from the same libraries as described by the special
value. For example, if LIB(*USRLIBL) is specified,
all objects from libraries on the current user
portion of the library list will be compared.
*NONSYS may be entered to compare from those
libraries that are saved by a SAVLIB LIB(*NONSYS).
See the SAVLIB command for what libraries are saved.
*ALLUSR may be entered to compare from those
libraries that are saved by a SAVLIB LIB(*ALLUSR).
See the SAVLIB command for what libraries are saved.
*ALLNONQ may be entered to compare from those
libraries that do not begin with the letter Q.
*USRLIBL may be entered to compare from those
libraries that exist on the user portion of the
library list. This includes the current library and
excludes libraries that are in the product portion.
*LIBL may be entered to compare from those libraries
that exist on the user portion of the library list.
FILE The file name to be compared.
*ALL is the default.
A specific name or a generic name may also be
entered.
FILETYPE The type of file to select. The default is *ALL for
all types.
*PF (physical) or *LF (logical) may be entered.
DATETYPE The data type of file to select. The default is
*ALL for all types.
*DATA or *SRC may be entered.
MEMBER The member name to be selected.
*ALL is the default to compare all members.
A specific name or a generic name may be entered.
OMITLIB A list of up to 300 libraries to be omitted. The
default is *NONE. Either a specific library or
generic library name may be entered. There is no
check to that the library exists or to ensure that
it is included. For example, if you include library
A and B and omit library C, no error occurs.
LISTTYPE How to list the members. The values control how
much output occurs to the listing.
*ALL is the default and means that all members will
be listed with both the From and To members. The
SIZDIF parameter may be used by bypass members and
applies to members that have been added, deleted, or
grown in size.
*ADD may be specified to list only those members
that have been added (Exist in the To version, but
not in the From version). The SIZDIF parameter may
be used to select only those members that have been
added an exceed the size specified.
*GRW may be specified to list only those members
that have grown (exist in both the To member and the
From member). The SIZDIF parameter must be used to
describe those members that will be listed (e.g. if
the object is the same size, it will not be listed).
*ADDGRW may be specified to list those members that
have been added (exist in the To member, but not in
the From member) or those that have grown (exist in
both the To member and the From member). The SIZDIF
parameter must be used to describe those members
that will be listed.
*DLT may be specified to list only those members
that have been deleted (Exist in the From member,
but not in the To member). The SIZDIF parameter may
be used to list only those members that have been
deleted that exceed a certain size.
SIZDIF Whether to flag members that have had a specified
size growth, size, or deleted size. The default is
*NONE meaning no flags occur.
A value must be entered for a LISTTYPE of *GRW or
*ADDGRW.
A value may be entered for a LISTTYPE of *ALL, *ADD,
or *DLT.
The size difference value may be used to reduce the
amount of output that must be reviewed. For
example, if you are only interested in members that
have been added or grown by 5,000,000 bytes, you
would specify LISTTYPE(*ADDGRW) and SIZDIF(5000000).
If a LISTTYPE of *ALL or *DLT is specified, any
members that have been deleted and exceed the size
specified, will be listed.
Negative growth is not considered.
OUTPUT How to output the results. * is the default to
display the spooled file if the command is entered
interactively. The spooled file is deleted after it
is displayed.
If the command is entered in batch or *PRINT is
specified, the spooled file is output and retained.
CMPSYSINFI parameters *CMD
---------------------
FROMVER The From version name in the IFDIRT file in the
library specified on CRTSYSINF. Use WRKSYSINF to
help determine the version name.
TOVER The To version name in the IFDIRT file in the
library specified on CRTSYSINF. The default is
*CURVER meaning the version that was added the last
time CAPSYSINF was run.
DIR The directory to be selected. The default is *ALL
for all directories.
IFSTYP The IFS type of object to be selected.
The default is *ALL for all types.
One or more of the following may be entered: *CHRSF,
*DDIR, *DIR, *FLR, *SOCKET, *STMF, or *SYMLNK.
OMITOWN Whether to omit objects that are owned by a
specified list of owners.
*NONE is the default to select all owners.
*QNAMES may be entered to bypass any objects owned
by a profile beginning with the letter Q.
A list of up to 50 owners may be specified to be
omitted.
LISTTYPE How to list the IFS objects. The values control how
much output occurs to the listing.
*ALL is the default and means that all objects will
be listed with both the From and To versions. The
SIZDIF parameter may be used by bypass objects and
applies to objects that have been added, deleted, or
grown in size.
*ADD may be specified to list only those objects
that have been added (Exist in the To version, but
not in the From version). The SIZDIF parameter may
be used to select only those objects that have been
added an exceed the size specified.
*GRW may be specified to list only those members
that have grown (exist in both the To version and
the From version). The SIZDIF parameter must be
used to describe those objects that will be listed
(e.g. if the object is the same size, it will not
be listed).
*ADDGRW may be specified to list those objects that
have been added (exist in the To version, but not in
the From version) or those that have grown (exist in
both the To version and the From version). The
SIZDIF parameter must be used to describe those
objects that will be listed.
*DLT may be specified to list only those objects
that have been deleted (Exist in the From version,
but not in the To version). The SIZDIF parameter
may be used to list only those objects that have
been deleted that exceed a certain size.
SIZDIF Whether to flag objects that have had a specified
size growth, size, or deleted size. The default is
*NONE meaning no flags occur.
A value must be entered for a LISTTYPE of *GRW or
*ADDGRW.
A value may be entered for a LISTTYPE of *ALL, *ADD,
or *DLT.
The size difference value may be used to reduce the
amount of output that must be reviewed. For
example, if you are only interested in objects that
have been added or grown by 5,000,000 bytes, you
would specify LISTTYPE(*ADDGRW) and SIZDIF(5000000).
If a LISTTYPE of *ALL or *DLT is specified, any
objects that have been deleted and exceed the size
specified, will be listed.
Negative growth is not considered.
OUTPUT How to output the results. * is the default to
display the spooled file if the command is entered
interactively. The spooled file is deleted after it
is displayed.
If the command is entered in batch or *PRINT is
specified, the spooled file is output and retained.
Restrictions
------------
** The System Information information must have been created by
the CAPSYSINF command.
** See the previous comments on duplicate records.
Prerequisites
-------------
The following TAA Tools must be on your system:
CPYSYSINFI Copy system information IFS
CPYSYSINFM Copy system information member
CPYSYSINFO Copy system information library/objects
DUPTAADBF Duplicate TAA data base file
EDTVAR Edit variable
EXTLST2 Extract list
RTVCURMBR Retrieve current member
RTVSYSVAL3 Retrieve system value 3
SNDCOMPMSG Send completion message
SNDESCINF Send escape information
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.
Objects used by the tool
------------------------
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
CMPSYSINFO *CMD TAASYTO QATTCMD
CPYSYSINFM *CMD TAASYTO2 QATTCMD
CPYSYSINFI *CMD TAASYTO3 QATTCMD
CMPSYSINF *CMD TAASYTO4 QATTCMD
TAASYTOC *PGM CLP TAASYTOC QATTCL
TAASYTOC2 *PGM CLP TAASYTOC2 QATTCL
TAASYTOC3 *PGM CLP TAASYTOC3 QATTCL
TAASYTOC4 *PGM CLP TAASYTOC4 QATTCL
TAASYTOR *PGM RPG TAASYTOR QATTRPG
TAASYTOR11 *PGM RPG TAASYTOR11 QATTRPG
TAASYTOR12 *PGM RPG TAASYTOR12 QATTRPG
TAASYTOR13 *PGM RPG TAASYTOR13 QATTRPG
TAASYTOR2 *PGM RPG TAASYTOR2 QATTRPG
TAASYTOR3 *PGM RPG TAASYTOR3 QATTRPG
TAASYTOP *FILE PF TAASYTOP QATTDDS
TAASYTOD *FILE DSPF TAASYTOD QATTDDS
Structure
---------
CMPSYSINFO Cmd
TAASYTOC CL pgm
For TYPE(*LIB)
TAASYTOR RPG pgm Create library summary records
TAASYTOR12 RPG pgm Get library text
TAASYTOR11 RPG pgm Print
For TYPE(*OBJ)
TAASYTOR13 RPG pgm Print
TAASYTOR12 RPG pgm Get library text
CMPSYSINFM Cmd
TAASYTOC2 CL pgm
TAASYTOR2 RPG pgm Compare SysInfo members
CMPSYSINFI Cmd
TAASYTOC3 CL pgm
TAASYTOR3 RPG pgm Compare SysInfo IFS
CMPSYSINF Cmd Menu
TAASYTOC4 CL pgm
|