ACSCAN: Scan the address converter to identify reusable ISNs

The ADACHK ACSCAN function can be used to scan the AC (using multi block I/O) looking for reusable ISNs. The user can specify one file, multiple files, or a range of files and ADACHK will

  1. Read through the AC for the file using multi block I/O.

  2. Identify the first and largest range of reusable ISNs per file.

  3. Call the nucleus to reset the rotating ISN pointer if the parameter RESET is specified.

As with the other ADACHK functions, if multiple files are specified ADACHK will process one file at a time.

ACSCAN will not be a "CHECK" function and therefore will not check the physical layout of the entire database, which includes checks for overlaps, gaps, and the integrity of expanded file chains as ACCHECK, DSCHECK, ICHECK, CHECK, and VALIDATE do currently. This also means that when ADACHK CHECK is specified, ACSCAN will not be included.

ACSCAN can also be run online while concurrent updates are running or when the nucleus is inactive. The nucleus must be active for the RESET to take effect but if the nucleus is down and the ACSCAN with RESET is requested, the function will still print the recommended rotating ISN and also print an informational message that the nucleus must be up to RESET to rotating ISN pointer.

The only interaction with the nucleus will be to issue an ACC open at start (allowing normal file activity but no UTI/UTL utilities), close at the completion, set a DIB entry, and send the RESET ISN call to the nucleus if RESET is specified. No interactive error validations are necessary or will with occur with this function.

Only the primary rotating ISN will be affected by this function. There is no need at this point to scan the secondary AC or to reset the pointer to a specific secondary ISN.

The syntax of the ADACHK ACSCAN utility function is:

ADACHK ACSCAN FILE = file-number | file1-filex
                                   [RESET]
                                   [ABEND34]
                                   [ERRLIM={error-threshold-count|100}]
                                   [LAYOUT={SHORT|MEDIUM|LONG}|
                                   [NOUSERABEND]
                                   [TEST]

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


Essential parameters

FILE: Files To Be Checked

The file or single range of files to be checked.

Optional Parameters and Subparameters

The following optional parameters can be specified.

RESET:

The RESET parameter causes the rotating ISN pointer in the FCB to point to the optimal AC block where reusable ISNs exists as identified by the ACSCAN function. The nucleus must be active for this to be effective.

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.

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 will be used:

CHK413E, ERROR: Parameter ERRLIM is incorrect.

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 Provides same output as LAYOUT=SHORT
LONG Specify this value to produce extensively-detailed output.

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.

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.

Examples

The following example scans the address converter for file 1 in the database identifying the reusable ISNs. Since RESET is specified, the rotating AC pointer will be set to the first largest range of reusable ISNs.

ADACHK ACSCAN FILE=1,LAYOUT=LONG,RESET

Sample output:

****************************************************************
                                                                          
 ACSCAN function for File 1                                               
                                                                          
****************************************************************                                                                         
                                                             
CHK025I, The Adabas nucleus is currently INACTIVE                         
                                                                          
Allocated AC Extents:                                                     
                                                                          
           From RABN          = x'00000A7C' (2684)                        
           To   RABN          = x'00000A7D' (2685)   
           Highest ISN        = x'000004F7' (1271)              
           ISNs per Block     =     x'027C' (636) 
                
Unused ISN-ISN          AC RABN      Unused ISNs      Used ISNs
---------------------------------------------------------------
00000001-0000027B  2684 (x'00000A7C')          0            636
0000027C-000004F7  2685 (x'00000A7D')        164            472
---------------------------------------------------------------
Totals                                       164           1108 
             
Total unused ISNs:                           164                 
Total used ISNs  :                                         1108
Rotating ISN in AC will be set to 636 (x'0000027C')