The Check Duplicate Object command checks for duplicate object
type/names in multiple libraries. A listing is output describing the
duplicate groups. This can be helpful when attempting to clean up
the system or solving problems. There are legitimate reasons for
having duplicate type/names which may contain different data such as
a QCLSRC source file.
You must have *ALLOBJ special authority to specify a library value of
*ALL, *ALLUSR, *ALLUSR2, *ALLNONQ, or *IBM.
A typical command would be:
CHKDUPOBJ LIB(*ALLUSR)
A listing would be produced in object type order of any object
type/names that are duplicates.
You may also request one or more object types such as:
CHKDUPOBJ LIB(*ALLUSR) OBJTYPE(*CMD *DTAARA)
A list of libraries may be specified with an omit list if needed.
CHKDUPOBJ escape messages you can monitor for
---------------------------------------------
None. Escape messages from based on functions will be re-sent.
Command parameters *CMD
------------------
LIB The list of libraries to be processed. Up to 300
libraries may be entered (including generic names)
or the special values *LIBL, *USRLIBL, *CURLIB,
*ALLUSR, *ALLUSR2, *ALLNONQ, *IBM, or ALL.
For *LIBL and *USRLIBL, if a current library exists,
it will also be considered. If the current library
is also part of the user portion of the library
list, it will only appear once.
If *ALL or *IBM is entered, you may want to omit
certain libraries where duplicate type/names exist
on purpose. For example, the prior release
libraries (VnRnMn) will contain duplicates of
commands, files, etc found in QSYS.
*ALLUSR means any library that was not created by
the system according to the CHKIBMLIB command.
*ALLUSR2 means any library that meets the criteria
specified for the SAVLIB LIB(*ALLUSR) function.
This excludes # libraries such as #SEULIB and
includes QUSRSYS, QGPL, etc. See the help text for
the SAVLIB LIB parameter for a complete description.
*ALLNONQ means any library that does not begin with
the letter Q.
An entry of *IBM causes all libraries to be included
as per the definition of the CHKIBMLIB tool.
Product libraries are never included.
LIBTYPE Whether to select all or a specified library type.
*ALL is the default to select all types.
*PROD may be used to select only production (PROD)
libraries.
*TEST may be used to select only test (TEST)
libraries.
OBJ The object name or generic name to be compared. The
default is *ALL.
OBJTYPE A list of up to 30 object types may be specified.
The default is *ALL.
Use the prompter for the valid types.
ASPDEV Specifies the auxiliary storage pool (ASP) device
name where storage for the library containing the
object is allocated. If the library resides in an
ASP that is not part of the thread's library name
space, this parameter must be specified to ensure
the correct library is searched. If this parameter
is used when the library qualifier specified for the
Object prompt (OBJ parameter) is *CURLIB, *LIBL, or
*USRLIBL, ASPDEV(*) is the only valid value.
This parameter can be specified as a list of two
values (elements) or as a single value. The
possible single values are:
* = The ASPs that are currently part of the thread's
library name space will be searched to locate the
library. This includes the system ASP (ASP 1), all
defined basic user ASPs (ASPs 2-32), and, if the
thread has an ASP group, the primary and secondary
ASPs in the thread's ASP group.
*ALLAVL = All available ASPs will be searched. This
includes the system ASP (ASP 1), all defined basic
user ASPs (ASPs 2-32), and all available primary and
secondary ASPs, (ASPs 33-255) with a status of
'Available'.
*CURASPGRP = If the thread has an ASP group, the
primary and secondary ASPs in the thread's ASP group
will be searched to locate the library. The system
ASP (ASP 1) and defined basic user ASPs (ASPs 2-32)
will not be searched. If no ASP group is associated
with the thread, an error will be issued.
*SYSBAS = The system ASP (ASP 1) and all defined
basic user ASPs (ASPs 2-32) will be searched to
locate the library. No primary or secondary ASPs
will be searched even if the thread has an ASP
group.
Element 1:
ASP Device name. The device name of the primary or
secondary ASP to be searched. The primary or
secondary ASP must have been activated (by varying
on the ASP device) and have a status of 'Available'.
The system ASP (ASP 1) and defined user basic ASPs
(ASPs 2-32) will not be searched.
Element 2: Search type. Specifies that only the
*ASP = Specifies that only the single auxiliary
storage pool (ASP) device named in element 1 is to
be searched.
*ASPGRP = Specifies that the entire group of the
primary auxiliary storage pool (ASP) device named in
element 1 is to be searched.
OMITLIB A list of up to 300 libraries or generic library
names that should be omitted. *NONE is the default.
An omit list may not be entered for LIB(*CURLIB).
Any library entered is checked for existence.
No check occurs to see if an omit library would have
been selected. For example, if LIB(*LIBL) is
entered with OMITLIB(ABC) and library ABC is not on
the library list, no error occurs.
Restrictions
------------
You must have *ALLOBJ special authority to specify a library value of
*ALL, *ALLUSR, *ALLUSR2, *ALLNONQ, or *IBM.
Prerequisites
-------------
The following TAA Tools must be on your system:
CHKALLOBJ Check *ALLOBJ special authority
CHKDUPLST Check duplicates in list
CHKGENERC Check generic
CHKGENOBJ Check generic object
CHKOBJ3 Check object 3
CVTDAT Convert date
EDTVAR Edit variable
EXTLST Extract list
EXTLST2 Extract list 2
RTVSYSVAL3 Retrieve system value 3
SNDCOMPMSG Send completion message
SNDESCMSG Send escape message
SNDJLGMSG Send job log message
SNDSTSMSG Send status message
SORTDBF Sort data base file
Implementation
--------------
None, the tool is ready to use.
Objects used by the tool
------------------------
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
CHKDUPOBJ *CMD TAAOBKV QATTCMD
TAAOBKVC *PGM CLP TAAOBKVC QATTCL
TAAOBKVR *PGM RPG TAAOBKVR QATTRPG
|