The Check Program Release command allows you to check for programs
and modules that were created on a specific release. You may run the
command over multiple or all libraries. Options exist to exclude
certain releases, omit a list of libraries, and to replace the
program or module if the source exists.
You must have *ALLOBJ special authority to specify *ALLUSR libraries.
The release information is based on the level of the compiler and not
necessarily the release of the system when the program was compiled
(see later discussion).
You may enter a generic value for a release such as V5*, V5R1*. If
the value is not generic, it must contain 6 characters (V5R1M would
be invalid). The release value must start with a 'V'.
A typical command to check for a list of releases would be:
CHKPGMRLS RLS(V3* V4R1M0) LIB(xxx)
A spooled file would be displayed of all programs and modules that
exist in the specified library and were created on the specified
releases. If the source no longer exists for the objects, the object
The RLS parameter is either an 'include' or 'exclude' list. For
example, if you want to display all the programs that were not
created on V4R5M0, you would specify:
CHKPGMRLS RLS(V4R5M0) LIB(xxx) SELECT(*EXCLUDE)
What release information is checked for
DSPOBJD provides several fields relative to the release of the
compiler and system. However, this does not describe the release the
program was created for by using the TGTRLS parameter.
DSPPGM describes the 'earliest release that the program can run on'.
This is known as the 'minimum release' and is used to check against
the release specified on the CHKPGMRLS command.
Some compilers (such as RPG) will show a much earlier minimum release
because the compiler has not changed since that time. For example,
if you create an OPM RPG program with a TGTRLS of V4R4M0, the minimum
release will be V2R3M0 in most cases.
CHKPGMRLS escape messages you can monitor for
None. Escape messages from based on functions will be re-sent.
Command parameters *CMD
RLS The list of releases and/or generic releases to be
included or excluded. Up to 40 releases may be
specified in a format of VxRxMx such as V3R2M0,
V4R3M0, etc. No checking occurs to ensure that
valid releases are entered.
The release must start with a 'V'. A generic value
may be entered such as V5* or V5R1*. If a
non-generic value is entered, it must be 6
characters (V5R1M would be invalid).
The release checked for is the 'earliest release
that the program may run on' and not necessarily the
system release the object was created on. See the
By default, any releases specified are 'included'
meaning the objects created on these releases are
the only ones that will appear in the listing. To
make an 'exclude' list, specify SELECT(*EXCLUDE).
LIB The library or libraries to be checked. A list of
to 300 libraries or generic libraries may be
entered. A generic name may be used or the special
values *LIBL, *USRLIBL, *CURLIB, or *ALLUSR.
You must have *ALLOBJ special authority to specify
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
*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
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
*ASPGRP = Specifies that the entire group of the
primary auxiliary storage pool (ASP) device named in
element 1 is to be searched.
OBJTYPE The object type to be checked. The default is *ALL
for both *PGM and *MODULE object types. Either *PGM
or *MODULE may also be entered.
OMITLIB A list of up to 300 libraries to be omitted.
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.
PGMATR The program or module attribute to be checked for.
A list of up to 100 values may be entered. The
default is *ALL.
A specific value such as RPG or CLP may be entered.
There is no checking to ensure that a valid value is
The special value *ALLCL exists to check for CLP,
CLP38, and CLLE.
The special value *ALLRPG exists to check for RPG,
RPG36, RPG38, RPT, RPT36, RPT38, RPGLE, RPGMOD,
SQLRPG, SQLRPGLE, and SQLRPGMOD.
The special value *ALLCBL exists to check for CBL,
CBL36, CBL38, CBLLE, CBLMOD, SQLCBL, SQLCBLLE, and
SELECT Whether to use the RLS list as an 'include' or
'exclude'. The default is *INCLUDE meaning that
objects created on the releases specified in the RLS
parameter are the only ones that will appear in the
*EXCLUDE may be specified to make the RLS list an
'exclude' meaning only objects created on releases
that are not specified would appear in the listing.
*EXCLUDE may not be used when RLS(*ALL) is
ACTION The type of action to perform on selected objects.
*CHECK is the default, meaning that the source is
checked to see if it exists in the same
library/file/member where the object was created
from. If the source does not exist, it is flagged.
The objects are not replaced.
*REPLACE may be specified to replace the objects if
the source exists. The replace function will fail
if required externally described files do not exist
(such as not on the library list). Any errors are
flagged on the listing.
OUTPUT How the output should be displayed. * means a
display appears if the command is used
interactively. If the command is run in batch or
*PRINT is specified, a spooled file is output.
You must have *ALLOBJ special authority to specify *ALLUSR libraries.
The following TAA Tools must be on your system:
CHKALLOBJ Check *ALLOBJ special authority
CHKDUPLST Check duplicate list
CHKGENERC Check generic
CHKGENOBJ Check generic object
CHKOBJ3 Check object 3
CMPLSTPARM Compare list parameters
CRTDUPPF Create duplicate physical file
EDTVAR Edit variable
EXTLST Extract list
EXTLST2 Extract list 2
RPLMOD Replace module
RPLPGM Replace program
RTVILEMODA Retrieve ILE module attributes
RTVMODA Retrieve module attributes
RTVPGMA Retrieve program attributes
RTVSYSVAL3 Retrieve system value 3
SNDCOMPMSG Send completion message
SNDESCMSG Send escape message
SNDJLGMSG Send job log message
SNDSTSMSG Send status message
None, the tool is ready to use.
Objects used by the tool
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
CHKPGMRLS *CMD TAAPGNO QATTCMD
TAAPGNOC *PGM CLP TAAPGNOC QATTCL
TAAPGNOC2 *PGM CLP TAAPGNOC2 QATTCL
TAAPGNOR *PGM RPG TAAPGNOR QATTRPG