The Change Data Base Increments command changes the number of size
increments for one or more data base files in a library based on the
current percentage of records and a specified new percentage. Only
data physical files are processed. The command defaults to 'check'
meaning no changes occur unless ACTION(*CHANGE) is specified.
You must have *ALLOBJ special authority to use CHGDBFINC.
Changing a file requires exclusive use of the file. You cannot use
ACTION(*CHANGE) to cause a change on a file that is in use.
A typical command would be:
CHGDBFINC FILE(xxx/*ALL) CURPCTLMT(75) NEWPCTLMT(65)
All data base files in the named library would be checked. One
record for the member with the largest number of records (including
deleted records) for each file would be listed. Each member listed
would describe:
- The number of existing records (including deletions)
- The record capacity based on the data base SIZE attribute
- The current percentage used of the capacity
- The current number of increments
- The maximum number of increments
- The increment size
If the percentage used is greater than the NEWPCTLMT specified:
- The number of increments to be added
- The new percentage of capacity
Source files are always bypassed and flagged. Files which have zero
for the maximum number of increments are also implicitly bypassed.
By default, files with one member and one record are bypassed (they
are considered to be control files).
Because the default is ACTION(*CHECK), no changes would occur which
allows you to review the changes that would occur if ACTION(*CHANGE)
was specified.
Using ACTION(*CHANGE) produces the same listing along with any errors
such as the file is allocated and cannot be changed. CHGPF is used
internally to change the file. This causes each member of the file
to be changed. You cannot change the SIZE value of just a single
member of a file.
A file with a capacity of *NOMAX is flagged and never changed.
Example
-------
Assume you created a file and used the defaults for the SIZE
parameter which allows for 10,000 initial records plus 3 increments
of 1,000 records. This provides for a capacity of 13,000 records.
If 11,000 records exist (including deleted records), there is an 85%
usage of capacity.
If the default of 75% is used for CURPCTLMT, the CHGDBFINC command
would identify that the file capacity must be increased. If you used
the default for NEWPCTLMT, you are requesting that the capacity be
raised to allow for 75% usage.
Adding one increment of 1,000 records would allow for a 14,000 record
capacity, but this would only produce a 78% usage. Adding 2
increments would increase the capacity to 15,000 records and produce
a 73% usage. Therefore, 2 increments would be proposed to be added
by ACTION(*CHECK) and the 2 increments would be added by
ACTION(*CHANGE).
Note that for each file, only the member with the largest number of
records is considered. Deleted records are also counted in terms of
using up capacity. The CHGPF command used will change the number
increments for both existing and new members added to the file.
CHGPF may only be used when the file is not allocated.
In some cases, you may prefer to increase the increment size in
addition or instead of letting the CHGDBFINC command change the
number increments. In the previous example, if after reviewing the
the ACTION(*CHECK) listing, you had specified:
CHGPF FILE(xxx/yyy) SIZE(*SAME 5000 *SAME)
you would have increased the capacity to 18,000 records and had a 61%
usage. CHGDBFINC would not flag the file after this change.
Recovering from a CHGDBFINC error
---------------------------------
The most typical error is that the file is in use when
ACTION(*CHANGE) is specified.
You can recover by waiting for a time when the file is not in use and
run CHGDBFINC again or just use CHGPF with the recommended SIZE
value.
CHGDBFINC escape messages you can monitor for
---------------------------------------------
None. Escape messages from based on functions will be re-sent.
CHGDBFINC Command parameters *CMD
----------------------------
FILE The qualified name of the file to be processed. A
single or generic name may be entered or the special
value *ALL. A specific library must be named.
Only data physical files are processed. Source
files are flagged and bypassed.
CURPCTLMT The current percent of capacity limit that will
cause a change. The default is 75%.
See the previous example to understand a specific
situation.
NEWPCTLMT The new percent limit of capacity. The default is
*CURPCTLMT meaning the value specified for
CURPCTLMT.
If the CURPCTLMT is greater than the percentage of
capacity used, the number of increments needed to
decrease the percentage of capacity used is
calculated until the NEWPCTLMT is reached.
If a value is entered, it cannot be greater than the
CURPCTLMT.
BYPONERCD A *YES/*NO parameter for whether to bypass files
that have one member and one record. These are
typically control files that will not grow.
*YES is the default to flag these files and bypass
them. This allows you to specify the size as
containing only one record.
*NO may be specified to treat these files the same
as other files.
ACTION The type of action to be performed.
*CHECK is the default that produces a listing of
what would be changed.
*CHANGE may be specified to change the number of
increments for a file if the NEWPCTLMT capacity
percentage is not met.
OUTPUT How to output the results. * is the default to
display the spooled file if the command is entered
interactively. If the display is ended with F3/F12
or the Enter key, the spooled file is deleted after
it is displayed. To retain the spooled file, you
may use the the System Request 'Cancel' function and
the spooled file will exist in a HLD status.
If the command is entered in batch or *PRINT is
specified, the spooled file is output and retained.
Restrictions
------------
** You must have *ALLOBJ special authority to use CHGDBFINC.
** Changing a file requires exclusive use of the file. You
cannot use ACTION(*CHANGE) to cause a change on a file that is
open or in use.
** If a member has more than 2GB of records, the system does not
return the actual number of records. If a member is found
with more than 2GB of records, a flag is set.
** A file with a capacity of *NOMAX is flagged and never changed.
** A file cannot be changed if the number of increments is at
32,767 and will be flagged.
Prerequisites
-------------
The following TAA Tools must be on your system:
CHKALLOBJ Check *ALLOBJ special authority
CHKOBJ3 Check object 3
EDTVAR Edit variable
RSNLSTMSG Resend last message
RTVDIAGMSG Retrieve diagnostic message
RTVSYSVAL3 Retrieve system value 3
SNDCOMPMSG Send completion message
SNDESCINF Send escape information
SNDESCMSG Send escape message
SNDSTSCNT Send status count
SNDSTSMSG Send status message
Implementation
--------------
None, the tool is ready to use.
Objects used by the tool
------------------------
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
CHGDBFINC *CMD TAADBOI QATTCMD
TAADBOIC *PGM CLP TAADBOIC QATTCL
TAADBOIC2 *PGM CLP TAADBOIC2 QATTCL
TAADBOIR *PGM RPG TAADBOIR QATTRPG
|