The CHKDBD command checks for data base dependencies where the
dependent files are in different libraries from the 'based on' files.
CHKDBD would note any physical files in the library you are checking
that have dependent logicals in other libraries.
The command can be executed against one or all libraries. If you
want to check 'all libraries' you should use the CHKALLDBD command
which will operate more efficiently.
CHKBOF is the companion tool. CHKBOF would note any logical files in
the library you are checking that are 'based on' physical files in
The purpose of the commands are to assist in understanding
dependencies which cross library boundaries so that they can be
minimized or eliminated. Dependencies which cross library boundaries
can cause problems if a restore occurs where the objects do not exist
on the system. This is typical of a total restore situation onto a
If all the dependencies are within the same library, the system will
correctly process the restore. If they are not in the same library,
the following rules exist:
1. Physical files must be restored before the dependent logical
files. If the logical file is attempted to be restored first,
the system will not restore the logical file.
2. If logical file access paths are saved as part of the save of
a physical file and the physical and logical files are in
differ- different libraries, the advantage of saving the
access path will be lost if a total restore is performed. The
option to save access paths causes them to be saved with the
physical file and not with the logical file. In order to
restore the access path, both files must exist on the system.
If the logical file is attempted to be restored first, it will
not be restored based on rule number 1.
The physical file must be restored first, but since the
logical file does not exist at that point in time, the saved
access path is ignored. If the logical file is restored
following the physical, the access path for the logical will
be automatically rebuilt by the system. This does not cause a
loss of function, but the access path rebuild time can delay
the use of the system when a total restore is needed.
3. The system will implicitly attempt to share access paths.
This may result in a logical file sharing the access path of a
physical or another logical file. When the system first
builds an access path, it assigns ownership of the access path
to the file that caused the build. If another logical file is
added that can share the access path, the first file is still
the owner. If the first file is deleted (it can only be a
logical file in this case), the system will transfer ownership
of the access path to the second logical.
The system will save the access paths even if the owning
logical file is in a different library than the physical. For
example, assume the following:
Lib 1 Lib 2
Physical file Logical file A
Owns the access path
Logical file B
shares access path
of Logical A
If Library 1 is saved with ACCPTH(*YES), the access path will
be saved with the physical. Assume both libraries are then
deleted. If Library 1 is restored first, the system will
transfer the ownership of the access path to Logical File B
(it will not rebuild the access path). If Library 2 is then
restored, Logical File B will share the same access path, but
no longer be the owner.
Since the rules can result in a significant amount of handling and
confusion, it is desirable to eliminate or minimize the dependencies
in different libraries. The CHKDBD command will identify the
dependencies so they may be minimized.
The CHKDBD command uses the DSPDBR command to create an output file.
The file is read to examine all files in a library or all libraries.
A listing is produced if there are dependent files and they are not
in the same library as the based on file.
The printed output occurs to the spooled file of the same name as the
library if a single library is requested. If *ALL libraries are
requested, QPRINT is used.
Command parameters *CMD
LIB The library to be checked for dependent files.
*ALL libraries may be specified, but a more
efficient solution is to use the CHKALLDBD command.
If *ALL is specified, you must have *USE authority
to the TAADSPADP authorization list. If the user is
not authorized to a specific library, authorization
to TAADSPADP may also be used.
ESCAPE A *YES/*NO parameter for whether an escape message
should be sent if dependencies outside of the
library are found. The default is *NO. The command
would end normally with a completion message.
If *YES is specified, TAA9891 is sent as an escape
message if dependencies outside of the library are
The following TAA Tools must be on your system:
DSPFDA DSPFD with adopt (part of DSPADP tool)
RTVSYSVAL3 Retrieve system value 3
SNDCOMPMSG Send completion message
SNDESCMSG Send escape message
None, the tool is ready to use.
Objects used by the tool
Object Type Attribute Src member Src file
------ ----- --------- ---------- -----------
CHKDBD *CMD TAADBFA QATTCMD
TAADBFAC *PGM CLP TAADBFAC QATTCL
TAADBFAR *PGM RPG TAADBFAR QATTRPG