RGZLIB          REORGANIZE LIBRARY                     TAADBIE

 The  Reorganize  Library  command  reorganizes  one,  generic,  or  all
 physical files  in a library or  all user libraries.   Source files are
 excluded.   Options on the command allow  for selection on the basis of
 deleted record percentage or  space.  A data  base file may be used  to
 specify other  options such  as 1)  omit a file  or library,  2) always
 reorganize, 3) use a different percentage or space requirement.

 RGZLIB  supports the  RGZPFM RBDACCPTH  and ALWCANCEL parameters.   See
 the later discussion.

 A typical command would be:

             RGZLIB       LIB(xxx) DLTPCT(15) DLTSPACE(100000)
                            RGZLIBPLIB(yyy)

 All physical  files (source  files are  excluded) would  be checked  in
 the specified library.   The library named in  the RGZLIBPLIB parameter
 would be checked and exceptions handled such as:

   **   Files to be omitted (never considered)

   **   Files   to    be   reorganized   regardless   of   the   command
        specifications.  For  example, if  a file is  to be  reorganized
        because it will provide better performance.

   **   Files that  should use a  different value  for deleted space  or
        percentage criteria than the command values.

   **   Files  that if reorganized  will use the  key of a  logical file
        (RGZPFM KEYFILE parameter).

 Assume  a file is  not omitted and  does not have  an exception record.
 The number  of deleted records  in each member  would be multiplied  by
 the record length.   If more than 100,000 bytes  could be reclaimed, or
 the  percentage  of deleted  records  was  greater than  15%,  the file
 would be reorganized.

 A  spooled file  would  be  created  with  each  member  processed  and
 whether the member  was reorganized.  The number of  deleted records is
 shown  along with the percentage  of deleted records and  the amount of
 deleted  record  space  (the  numbers  are  before  any  reorganization
 occurs).

 If  a  member  has  all  deleted  records,   it  would  be  reorganized
 regardless of the percentage or space requested.

 Files with  no members or members with no  records are always bypassed.

 If  you  omit a  physical  file, a  logical  file built  over  the same
 physical file will  still be considered  if it is  in the same  library
 that is requested to be reorganized.

 The special  value *ALLUSR2  exists for the  LIB parameter.   It allows
 all   files  on  the  system  to   be  considered  for  reorganization.
 *ALLUSR2 means:

       - All user libraries (those that do not begin with the letter Q)
       - QGPL is included
       - S/36 libraries (such as #LIBRARY) are excluded

 If  *ALLUSR2  is  specified,  you  must  have  *USE  authority  to  the
 TAACVTLIBD authorization list.

 If you are not  sure that all reorganizes will  be completed during the
 time  you have available,  specify the ENDDATE  and ENDTIME parameters.
 No new  reorganizations  will  be  attempted once  the  time  has  been
 reached.

 Testing RGZLIB
 --------------

 You  may test  what  RGZLIB  would have  done  by using  the  parameter
 TESTRGZ(*YES).    No  reorganizations  will  occur regardless  of  what
 entries exist in the exception file.

 This  provides a good  method of understanding what  can be achieved if
 actual reorganizations are performed.

 RGZLIB RBDACCPTH and ALWCANCEL parameters
 -----------------------------------------

 RGZLIB supports  the RBDACCPTH  and ALWCANCEL  parameters supported  by
 RGZPFM.   Both options exist  on the RGZLIB  command as well as  in the
 record that describes exceptions by file.

 See the parameter descriptions.

 While  the  ALWCANCEL(*YES) option  appears desirable,  it  is normally
 only of value on very large  files where rebuilding of access paths  is
 too  costly to  be performed  and the  file  needs to  remain open  for
 updates  as  long as  possible.    Note that  an  *EXCL  lock is  still
 required for the final step.

 RGZPFM Requirements
 -------------------

 The system RGZPFM  command is  used to  reorganize the files.   To  run
 the RGZPFM command, the following requirements exist:

   **   You  must  be authorized  to  use  RGZPFM  on the  file.    This
        includes the  rights of *OBJMGT,  *OBJOPR, and all  data rights.

   **   The   member  to  be  reorganized  requires  an  *EXCL  lock  if
        ALWCANCEL(*NO) is specified.   If ALWCANCEL(*YES) is  specified,
        the file  must be journaled and  an *EXCL lock  is only required
        for the final phase (see the parameter discussion).

 Requirements for KEYFILE specification
 --------------------------------------

 RGZPFM  allows a file to be  reorganized based on the  access path of a
 different file.    This function  is supported  by  RGZLIB by  using  a
 record in the exception file.

 To use  the KEYFILE function,  the key file must  have a member  of the
 same  name as the  key file.   and must be  in the same  library as the
 physical file.

 Exception file (RGZLIBP)
 ------------------------

 RGZLIB allows you  to name a  data base file  that contains  exceptions
 for  files   and  libraries   that  allow   you  to  provide   specific
 information such as:

   **   All files  in a library  should be omitted  (never reorganized).

   **   A specific file should be omitted (never reorganized).

   **   A  specific file  should always  be reorganized  whenever RGZLIB
        is run  against  the library  containing  the file  (unless  the
        *TEST function is used).

   **   Specific  delete percentage  or  delete space  values should  be
        used instead of what is specified on the command.

   **   All  files in a library that do  not have a specific file record
        in the exception  file should  use the same  default values  for
        the delete percentage or space requirements.

   **   A logical  file containing  a key should  be used  to reorganize
        the  physical file.  This  information is passed  to the KEYFILE
        parameter of the RGZPFM command.

 To create the exception file, use the CRTRGZLIB command.

              CRTRGZLIB    LIB(xxx)

 Two files will be created:

            - RGZLIBP   Physical
            - RGZLIBL   Logical

 RGZLIBP will be  created with PUBLIC(*USE).   This allows  any user  to
 read the  information in  the file and  use the  RGZLIB command.   Only
 the user who  created the RGZLIBP file may change  the data in the file
 unless other users are given *CHANGE authority.

 You  do not have to create  the files in the  same library as the files
 to  be reorganized.    You  can  have  one or  many  RGZLIBP  files  by
 specifying different libraries.

 For example, you  might have a single file that is  used to control the
 whole  system and use RGZLIB LIB(*ALLUSR2).   Or you may prefer to have
 an RGZLIBP file  for each critical  library to be  saved with  separate
 commands and  a general purpose RGZLIBP  file for the  other libraries.
 The general  purpose file would contain single  entries that would omit
 the critical libraries.

 After the RGZLIBP  file has been  created, you can  enter entries  into
 the file with the EDTRGZLIB command such as:

              EDTRGZLIB

 A subfile  display would  appear and allow  you to  enter the  files or
 libraries that  require exceptions.   Help text is  available to assist
 in entering the data.

 Typical Exception file entries
 ------------------------------

 To  omit all files  for a given  library (prevent any reorganizations),
 enter a record  with the library  name, the file as  *ALL, and a  Y for
 omit.

 To  process one  or  more  files differently  than  the command  values
 (either  to  omit the  file,  always  reorganize it,  or  use different
 values for deletion  percentage or  space requirements),  enter a  file
 record with for each required exception.

 To process  all files for  a given library  using criteria  that differ
 from  the command  values, enter a  record with  the library  name, the
 file as *ALL,  and specify  the required  values (such  as a  different
 space requirement).

 To process one  or more files with  unique exceptions and still  have a
 default record  if a file does not have  a specific exception, enter an
 *ALL  file record for the named  library as described previously.  Then
 enter the specific file records required.

 How the Exception file is processed
 -----------------------------------

 RGZLIB determines the physical data files that exist in a library.

   **   For each file,  the RGZLIBP file is  accessed to determine if  a
        specific file  record exists.   If not, a  check is made  to see
        if an *ALL file record exists.

   **   If  neither  a  specific  file record  or  an  *ALL  file record
        exists, the file is processed using the command values.

   **   If a specific  file record exists, the  file is processed  using
        the information from the file record.

   **   If  a specific  file record  does not  exist, but  an *ALL  file
        record  does exist  for the library,  the *ALL  file information
        is used.

 Note that a  specific file record  or an *ALL file  record can  specify
 the value  *CMD for  either or  both the delete  percentage or  deleted
 space requirement.   If this  is specified, the value  from the command
 is used.

 RGZLIB Command parameters                             *CMD
 -------------------------

    LIB           The  library to be processed  for physical data files.
                  Source files are excluded.

                  The  special value  *ALLUSR2  exists to  consider  all
                  physical  files in  all  libraries that  do not  begin
                  with  the letter Q except QGPL.   The S/36 # libraries
                  (such as  #LIBRARY) are  also excluded.   If  *ALLUSR2
                  is  specified, you  must have  *USE  authority to  the
                  TAACVTLIBD authorization list.

                  System  libraries  (except QS36F)  may  not  be named.
                  The user who created the library must be other than:

                    - *IBM
                    - QLPINSTALL
                    - QLPAUTO
                    - QDIRSRV
                    - QPM400
                    - QSYS

    DLTPCT        The delete percentage to  be considered.  The  default
                  is  10%.   If a  record  exists for  the  file in  the
                  RGZLIBP  file,  the  value  from  the record  will  be
                  used.

                  If  a value from  1 to 99 is  entered, then the member
                  must  have  at   least  that  percentage  of   deleted
                  records before RGZPFM will be used.

                  *ANY  may  be  specified  to  allow a  file  with  any
                  deleted records to be reorganized.

                  *NONE  should be  used when  the DLTPCT  amount should
                  not be  considered.   The  typical  use for  *NONE  is
                  when  you  only  want   to  reorganize  based  on  the
                  DLTSPACE criteria.

                  The  member  is reorganized  if either  the  DLTPCT or
                  DLTSPACE criteria are met.

                  If a  member  has all  deleted  records, it  would  be
                  reorganized  regardless  of the  percentage  or  space
                  requested.   These  files will  reorganize  quickly so
                  cleanup is preferred.

                  If  a member  has mostly  deleted records,  the delete
                  percentage could  be greater than  100%.  The  maximum
                  value   that   will   be    shown   is   999%.      If
                  DLTSPACE(*NONE)   is  specified  and   the  amount  of
                  deleted space  is  not  met,  a  file  with  a  delete
                  percentage  of  over  100% will  not  be  reorganized.
                  This  prevents a long  reorg if there  are many active
                  records.

    DLTSPACE      The amount  of  space  that can  be  reclaimed  before
                  RGZPFM  will  be   used.    The  default   is  50,000.
                  Deleted  record  space  is determined  by  multiplying
                  the   number  of  deleted  records  times  the  record
                  length.   If  a  record exists  for  the file  in  the
                  RGZLIBP  file,  the  value  from the  record  will  be
                  used.

                  If  the value  to be tested  is 50,000,  the amount of
                  record space that can be  reclaimed must be 50,000  or
                  greater before the file is reorganized.

                  The value  should be entered  in bytes.   For example,
                  the  value 100000  means the file  must have  at least
                  100,000  bytes   of  deleted   record  space   to   be
                  considered for RGZPFM.

                  *ANY  may  be  specified to  allow  a  file  with  any
                  deleted records to be reorganized.

                  *NONE should  be used when the  DLTSPACE amount should
                  not  be  considered.   The  typical use  for  *NONE is
                  when you only want  to reorganize based on  the DLTPCT
                  criteria.

                  The  member is  reorganized  if either  the DLTPCT  or
                  DLTSPACE criteria are met.

                  If  a  member has  all  deleted records,  it  would be
                  reorganized regardless  of  the  percentage  or  space
                  requested.

    FILE          A  file or  generic file  name  in the  library to  be
                  reorganized.  The default is *ALL for all files.

                  If   a  specific   library  is   named  for   the  LIB
                  parameter,  you  may  specify  a  single  file  or   a
                  generic file  name.  Only  the named file  (or generic
                  file names) will be reorganized.

    RBDACCPTH     The   value  determines   whether  access   paths  are
                  rebuilt  or maintained.   The value is  passed thru to
                  the  RGZPFM RBDACCPTH  parameter.    If  an  exception
                  record   exists   for    the   file,   the   exception
                  information is used.

                  *YES  is the  default to  rebuild all access  paths at
                  the end of  the reorganization.   The  file is  locked
                  until all rebuilds are complete.

                  *NO may be  specified to maintain the  access paths if
                  ALWCANCEL(*YES)  is specified.  As  active records are
                  moved, access paths are maintained.

    ALWCANCEL     ALWCANCEL determines the  type of reorganization  that
                  will  be used.    The  value  is passed  thru  to  the
                  RGZPFM  ALWCANCEL parameter.   If an  exception record
                  exists  for  the  file, the  exception  information is
                  used.

                  *NO is  the  default which  causes the  reorganization
                  to occur  with the  file locked.   The file  is copied
                  to  a  temporary  work  area  and  then  replaces  the
                  existing file.   Access  paths are  rebuilt after  the
                  replace occurs.   If  the reorg  job is cancelled,  it
                  depends  upon  what  step  was  in  process  when  the
                  cancellation occurred.    It  is likely  that  one  or
                  more access paths will have to be rebuilt.

                  *YES may be specified  to cause the reorg to  occur by
                  moving  active records forward  in the file  to occupy
                  deleted  record numbers.   The file  must be journaled
                  to use  this  option.   The reorganization  can  occur
                  mostly while  the file is  active.  When  only deleted
                  records  exist at the  end of the file,  an *EXCL lock
                  is required to move  the end-of-file marker after  the
                  last active record.

    TESTRGZ       A  *YES/*NO  value  for  whether  any  reorganizations
                  should  occur.    *NO is  the  default  that specifies
                  reorganizations will occur.

                  *YES may be  specified if you  are testing how  RGZLIB
                  will  act.    No  reorganizations  will  occur.    The
                  spooled  file  will  contain  a  description  of  what
                  would have occurred.

    ENDDATE       The  end date if  you want to  end the RGZLIB function
                  after a  certain time.    The default  is *NONE  which
                  means all reorganizes will be attempted.

                  A date  may be entered  (job format) which  will allow
                  the  function to end  after the end date  and time has
                  been reached.    The  end date/time  is  only  checked
                  after  each internal  RGZPFM is  performed.   Thus  no
                  new   reorganizations   will   occur   once  the   end
                  date/time has been reached.

                  An  end  date  cannot  be  used  if  TESTRGZ(*YES)  is
                  specified.   The end  date/time must  be greater  than
                  the  current  date/time  when  the command  begins  to
                  execute.

    ENDTIME       The  end time if  you want to  end the RGZLIB function
                  after a  certain time.    The default  is *NONE  which
                  means all reorganizes will be attempted.

                  A  time  may be  entered  (hhmmss  format) which  will
                  allow   the  RGZLIB   function   to  end   before  all
                  reorganizations  are  completed.    See  the   ENDDATE
                  parameter for a full discussion.

                  An   end   time   value   may  not   be   entered   if
                  ENDDATE(*NONE) is specified.

    PRTNODLT      Whether  to print  a line on  the listing  for members
                  that have 0 deleted records.

                  *YES is the default to print a line.

                  *NO may be specified to bypass printing a line.

    RGZLIBPLIB    The  library  containing   the  file  that   describes
                  exception  handling  such  as   a  different  deletion
                  percentage for  a specific file or library.   *LIBL is
                  the   default  meaning   the  RGZLIBP   file  will  be
                  searched for using the library list.

                  A specific  library name, *CURLIB,  or *NONE may  also
                  be entered.

                  The parameters  specified on  the RGZLIB  command will
                  be  used for every  file processed  except those files
                  (or libraries)  that  are  specified  in  the  RGZLIBP
                  file.    For  some  specific files  you  may  want  to
                  reorganize  regardless of the amount  of deleted space
                  (such as you want a  performance advantage) or if  you
                  have  a  very  large file,  you  may  want  a  smaller
                  deletion percentage or larger space limit.

                  To  create   the  RGZLIBP  file,   use  the  CRTRGZLIB
                  command.     Enter   data  into  the   file  with  the
                  EDTRGZLIB command.

 CRTRGZLIB Command parameters                          *CMD
 ----------------------------

    RGZLIBPLIB    The name  of  the library  where the  exception  files
                  will be created.   The physical file to  be created is
                  RGZLIBP and the logical file is RGZLIBL.

    SRCLIB        The  source  library  to  use  for  the  QATTDDS  file
                  source.   The default  is *TAAARC  to  use the  source
                  from the TAA Archive.

                  A specific user  library may be named,  but the source
                  file must be QATTDDS.

 EDTRGZLIB Command parameters                          *CMD
 ----------------------------

    RGZLIBPLIB    The  name  of the  library where  the  exception files
                  (RGZLIBP and RGZLIBL)  exist.  The  default is  *LIBL.

                  A specific library  name or *CURLIB may also  be used.

 DLTRGZLIB Command parameters                          *CMD
 ----------------------------

    RGZLIBPLIB    The  name of  the  library where  the  exception files
                  (RGZLIBP  and  RGZLIBL)  exist that  will  be deleted.
                  The default is *LIBL.

                  A specific library name  or *CURLIB may also  be used.

 Restrictions
 ------------

 If LIB(*ALLUSR2) is specified, you must have *ALLOBJ authority.

 If a  specific library is named,  you must have authority  to the files
 (as  defined by RGZPFM) and  an *EXCL lock is  required for each member
 to be reorganized.

 See the previously  described restrictions regarding the  use of a  key
 file.

 System libraries except QGPL and QS36F may not be named.

 Prerequisites
 -------------

 The following TAA Tools must be on your system:

      CHKALLOBJ       Check all object authority
      CHKNAM          Check name
      CHKOBJ2         Check object 2
      CPYTAA          TAA Archive
      CVTLIBDBF       Convert library data base files
      FILEFDBCK       File feedback
      HLRMVMSG        HLL Remove message
      LOCKMSG         Lock message
      RPGSTSDS        RPG status data structure
      RSNLSTMSG       Resend last message
      RTVDBFA         Retrieve data base file attributes
      RTVSYSVAL3      Retrieve system value 3
      SNDCOMPMSG      Send completion message
      SNDESCMSG       Send escape message
      SNDSTSMSG       Send status message
      WRTSRC          Write source

 Implementation
 --------------

 None, the tool is  ready to use.  You may use  the CRTRGZLIB command to
 create  the  exception   data  base  file  to  enter  data  to  provide
 exception control for files and libraries.

 Objects used by the tool
 ------------------------

    Object        Type    Attribute      Src member    Src file
    ------        ----    ---------      ----------    ----------

    RGZLIB        *CMD                   TAADBIE       QATTCMD
    EDTRGZLIB     *CMD                   TAADBIE2      QATTCMD
    CRTRGZLIB     *CMD                   TAADBIE3      QATTCMD
    DLTRGZLIB     *CMD                   TAADBIE4      QATTCMD
    TAADBIEC      *PGM       CLP         TAADBIEC      QATTCL
    TAADBIEC2     *PGM       CLP         TAADBIEC2     QATTCL
    TAADBIEC3     *PGM       CLP         TAADBIEC3     QATTCL
    TAADBIEC4     *PGM       CLP         TAADBIEC4     QATTCL
    TAADBIEC12    *PGM       CLP         TAADBIEC12    QATTCL
    TAADBIER      *PGM       RPG         TAADBIER      QATTRPG
    TAADBIER2     *PGM       RPG         TAADBIER2     QATTRPG
    TAADBIER9     *PGM       RPG         TAADBIER9     QATTRPG
    TAADBIED      *FILE      DSPF        TAADBIED      QATTDDS
    TAADBIEP      *FILE      PF          TAADBIEP      QATTDDS
    TAADBIEL      *FILE      LF          TAADBIEL      QATTDDS

 Structure
 ---------

 RGZLIB      Cmd
    TAADBIEC   CL pgm
        TAADBIER   RPG pgm
        TAADBIER9  RPG pgm

 CRTRGZLIB   Cmd
    TAADBIEC3  CL pgm

 EDTRGZLIB   Cmd
    TAADBIEC2   CL pgm
      TAADBIER2   RPG pgm
        TAADBIED    Display file
        TAADBIEC12  CL pgm

 DLTRGZLIB   Cmd
    TAADBIEC4   CL pgm

Added to TAA Productivity Tools August 1, 1997


Home Page

Powered by AS/400Powered by AS/400 Last modified on January 12, 2010 © 1995, 2010 - Jim Sloan, Inc.