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.

 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 October 10, 2008 © 1995, 2008 - Jim Sloan, Inc.