CHECK: Perform all ADACHK Checks

The ADACHK CHECK function can be used to perform all ADACHK utility check functions while concurrent updates are running. This includes the ACCHECK, DSCHECK, ICHECK, and VALIDATE functions.

Before Adabas 8.3 introduced the ADACHK CHECK utility function, different utilities (ADAACK, ADADCK, ADAICK, and ADAVAL) were used to check the integrity of the entire database. Consequently, several reads of each database block were necessary to check the whole database. With ADACHK CHECK, each block is processed only once (except for rare occasions) thus greatly improving the performance of the integrity checks. Multiblock I/Os are also used whenever possible, also enhancing performance.

ADACHK CHECK can be performed on the file level, a range of files, or the entire database. It is the default function if ADACHK is run with no specified function.

The syntax of the ADACHK CHECK utility function is:

graphics/adachk_check.png

This document describes the syntax and parameters of the CHECK function.


Essential Parameters

There are no required parameters for this utility function.

Optional Parameters and Subparameters

The following optional parameters can be specified.

ABEND34: Change User Abend 35 to 34

This optional parameter can be used to change a user abend 35 to user abend 34 if a utility error occurs. This ensures that a dump is produced when the utility terminates abnormally.

The NOUSERABEND, TEST, and ABEND34 parameters affect the processing of the entire ADACHK run.

CODE: Cipher Code

The CODE parameter is required if the file or file(s) being processed by the ADACHK utility are enciphered. Specify the required cipher key.

If the data in a file processed by the ADACHK CHECK run is in ciphered form, the cipher key must be specified using the CODE parameter. In addition, you must also include the cipher file in the FILE parameter. Only one cipher file can be specified in the run. For more information, read Cipher File Considerations, earlier in this section.

For more information on the use of ciphering in Adabas databases, contact your Software AG technical support representative for more information about Adabas Security documentation.

DESCRIPTOR: List of Descriptors

The DESCRIPTOR parameter restricts ADACHK processing to one descriptor field, providing a way to limit the run in cases in which the Associator is very large or there is a need to evaluate a specific descriptor. If DESCRIPTOR is not specified, ADACHK validates all qualifying descriptor fields.

The following is an example of DESCRIPTOR use:

ADACHK CHECK FILE=4,DESCRIPTOR=’AA,BB’
ERRLIM: Error Threshold

The maximum number of errors that this ADACHK utility function will tolerate before terminating. Valid values are any positive integer <=5000. If no valid value is specified for this parameter, a default of "100" is used.

If a value less than 0 or greater than 5000 is specified, the following error will result, and the default value will be used:

CHK413E, ERROR: Parameter ERRLIM is incorrect.
FILE: Files To Be Checked

The file or single range of files to be checked. If no file or range of files are specified, all files in the database are checked.

If the file listed in the FILE parameter is enciphered, the CODE parameter is also required. You must specify the cipher key in the CODE parameter. For more information, read Cipher File Considerations, earlier in this section.

ISN: ISN Range To Be Checked

The ISN or range of ISNs to be checked. If no ISN or range of ISNs are specified, the entire range of ISNs (from MINISN through TOPISN) is checked.

LAYOUT: Report Detail Level

The level of data produced for the report. Valid values are described in the following table:

Valid Values Description
SHORT Specify this value to produce the minimum output. This is the default.
MEDIUM Specify this value to produce medium-level output (several interpreted lines).
LONG Specify this value to produce extensively-detailed output.
LWP: Sort Work Pool Size

LWP specifies the size of the work pool to be used for sorting, if SORTTYPE=INTERNAL. It cannot be specified with SORTTYPE=EXTERNAL. The LWP value can be specified in bytes or kilobytes (value followed by a "K"). If no value is specified, the default is 10485760 bytes (or 10240K).

If ADARUN parameter V64BIT=YES has been specified, the work pool is allocated in 64-bit addressable storage, on systems that support it.

The minimum value for LWP is 102,400 (100K). The maximum value is limited by how much 31-bit or 64-bit addressable virtual storage ADACHK can obtain from the system.

When the amount of data to be sorted exceeds the space declared by the LWP parameter, one or two sort data sets defined in the ADACHK job may be used as temporary storage. For more information, read Sort Data Set Considerations. The sort data set(s) should be at least as large as the combined ASSO and DATA extents of the largest file to be processed by ADACHK.

If a sort data set is provided and large enough, the default value of 10 megabytes is sufficient for checking Adabas files of about three gigabytes. For checking larger files, LWP should be increased. As a rule of thumb, an LWP of size n*10 MB supports files sizes of about n*n*3 GB. For example, LWP=102400K (100 megabytes = 10*10 MB) is sufficient for processing files of about 300 gigabytes (= 10*10*3 GB).

It is generally recommended you make LWP larger than the required minimum to reduce the number of I/Os for sorting and thus to improve the performance of ADACHK.

MAXCALLS: Maximum Number of Nucleus Calls

The maximum number of nucleus calls allowed per file. Once this limit is hit, no more nucleus calls can be made and a warning message that the limit has been reached is printed. Valid values are any positive integer, with no upper limit.

The default for MAXCALLS is either the value "200" or the result of the TOPISN setting divided by 100 (TOPISN/100), whichever is greater.

MAXDESCLEN: Maximum Length of Descriptor Value

Use the MAXDESCLEN parameter to specify the maximum length of a descriptor value present in the file during compressed record extraction. If the MAXDESCLEN parameter is not specified, the default is to extract the largest default descriptor length from the FDT.

NOSYNC: Transient Error Confirmation

Note:
Use of this parameter is not recommended and is only intended for users who want to limit calls to their nucleus.

Use this parameter to control whether transient errors are confirmed via the active nucleus. If this parameter is specified, no nucleus calls are made and the errors reported may be due to concurrent updates. A warning message is generated informing you.

NOUSERABEND: Termination without Abend

When a parameter error or a functional error occurs while this utility function is running, the utility ordinarily prints an error message and terminates with user abend 34 (with a dump) or user abend 35 (without a dump). If NOUSERABEND is specified, the utility will not abend after printing the error message. Instead, the message "utility TERMINATED DUE TO ERROR CONDITION" is displayed and the utility terminates with condition code 20.

Note:
When NOUSERABEND is specified, we recommend that it be specified as the first parameter of the utility function (before all other parameters). This is necessary to ensure that its parameter error processing occurs properly.

The NOUSERABEND, TEST, and ABEND34 parameters affect the processing of the entire ADACHK run.

NOVALIDATE: No Validation

Specify the NOVALIDATE parameter when you want to run the ADACHK utility without validation (the VALIDATE function).

SORTTYPE: Sort Type Used

The type of sort to use. Valid values are "INTERNAL" (the default) and "EXTERNAL".

Value Meaning
EXTERNAL An external sort facility will be used to sort the data. For information about operating system considerations related to this option, read SORTTYPE=EXTERNAL Operating System Considerations.
INTERNAL An internal sort facility will be used to sort the data. This is the default. For information about the use of sort data sets with this setting, read Sort Data Set Considerations.
TEST: Test Syntax

The TEST parameter tests the operation syntax without actually performing the operation. Note that the validity of values and variables cannot be tested: only the syntax of the specified parameters can be tested. See Syntax Checking with the TEST Parameter for more information about using the TEST parameter in ADACHK functions.

The NOUSERABEND, TEST, and ABEND34 parameters affect the processing of the entire ADACHK run.

Note:
If your database contains cipher files, note that the TEST parameter does not check the types of files in the database. This means that the TEST run will not show any ADACHK errors related to cipher files in the run; these errors will only become apparent when you perform the ADACHK run without the TEST parameter. For more information, read Cipher File Considerations, earlier in this section.

UTYPE: User Type

The user type in effect for the ADACHK run. Valid values are:

Value Identifies
ACC An access-only user. This is the default. When ACC is specified, parallel updates are allowed on the file by normal users (but not by other utility processes).
EXF An exclusive file control user. When EXF is specified, only the ADACHK process can use the file; no other users can read or write to the file in parallel with the ADACHK run.
EXU An exclusive control user. When EXU is specified, parallel reads are allowed on the file by normal users. This option might provide better performance if there are a lot of concurrent updates ongoing.

Example

The following example runs the ACCHECK, DSCHECK, ICHECK, and VALIDATE functions of ADACHK:

ADACHK CHECK