TAA Tools
CMPSYSINF       COMPARE SYSTEM INFORMATION             TAASYTO

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
					

Added to TAA Productivity tools June 1, 2005


Home Page Up to Top