DBCHECK help updated: 2015-03-27 DBCHECK checks the integrity of a TurboIMAGE (or IMAGE) database. DBCHECK options may be specified via the INFO string, interactively, and/or via the PARM= option of the RUN command. (PARM bits shown at the end of this help text.) You can specify options via the INFO parameter: ;INFO = "[options] BASE basename [options]" The possible options are: 132 132 tells DBCHECK to enter 132-column mode on a 700/92 terminal. Default: 80 80 80 tells DBCHECK to enter 80-column mode on a 700/92 terminal. Default: 80 ASK Enter an interactive dialog to specify dataset names to select for testing. (A "BASE" must be seen first.) BASE [=] databasename Specifies name of database to check. All datasets will be checked. If any options are specified via an INFO string, then BASE must also be specified. When run interactively, a line with a "BASE" command will trigger the actual test of the database. [no]CHECKDATES CHECKDATES tells DBCHECK to compare the allocation date of the various files against the date recorded in the root file, to see if a partial database restore might have been done. DATASET <# [/#] | ASK> Specifies wh`ch datasets should be tested. Note: if the DATASET option is not used, all datasets will be tested. The ASK option starts an interactive dialog to allow you to specify the datasets to test. [NO]DATES SHOWDATES causes DBCHECK to report the allocation/restore date/times of the all datasets. DECimal DECimal tells DBCHECK that you want decimal values. The DECIMAL keyword is equivalent to specifying all of the following keywords: DECDUMP, DECNAMES, and DECNUMBERS. See also: HEX... and OCT... options. DECDUMP HEXDUMP OCTDUMP DECDUMP, HEXDUMP, and OCTDUMP specify what base the "dumping" of array values are in. DECNAMES HEXNAMES OCTNAMES DECNAMES, HEXNAMES, and OCTNAMES specify what base entry names are printed in. DECNUMBERS HEXNUMBERS OCTNUMBERS DECNUMBERS, HEXNUMBERS, and OCTNUMBERS specify what base entry numbers are printed in. DSTART # Tells DBCHECK to start the BITMAP check at the specified detail dataset entry. EXIT Terminates DBCHECK. [no]FULLERASE FULLERASE erases the entire media record before each dbget, NOFULLERASE erases a smaller section of the buffer. HELP Displays this text. HEX HEX tells DBCHECK that you want hex values. The HEX keyword is equivalent to specifying all of the following keywords: HEXDUMP, HEXNAMES, and HEXNUMBERS. See also: DEC... and OCT... options. IGNoreerrors IGNOREERRORS tells DBCHECK to suppress reporting the specified errors. When DBCHECK reports an error, the type (or "number") of the error is reported in parenthesis with a lower-case "e", as in: #Error # 1 (e38) ... this is error 38 (and it is the first one that has been reported). To suppress error 38, do: IGNORE 38 To un-suppress error 38, do: NOIGNORE 38 A range of error numbers may be specified with a slash, as in: IGNORE 1/9 INTERACTIVE When seen an an INFO string, tells DBCheck that although you are specifying some options via INFO, you want to be prompted for database names to check. INTERVALmins [=] # INTERVALMINS tells DBCHECK that you want periodic progress messages sent every # minutes. (Does an implicit INTERVALSSECS of # times 60.) INTERVALSecs [=] # INTERVALSECS tells DBCHECK that you want periodic progress messages sent every # seconds. INTERVALSECS defaults to 120 (2 minutes) for sessions, and 300 (5 minutes) for batch jobs. MAXEACH # When you are hitting many instances of the same error number (e.g.: several hundred "e8" errors), you might decide that it would be nice if DBCHECK would stop reporting that particular error. The MAXEACH number is the maximum number of each particular error that DBCHECK will report. If this value is non-0, and DBCHECK generates that many errors for a particular error number, then it will stop reporting that error number (but will count them) until it reaches the end of the dataset. (Then, it will report the counts as a summary.) Setting # to 0 disables this check. Default: 100 MAXERRors # Tells DBCHECK to terminate upon hitting the "#"th error. When the limit is hit, DBCHECK will do: SETJCW JCW # and then call terminate. Note: STOP sets MAXERRORS to 1. Setting # to 0 disables this check. Default: 0 MAXSETErrors # Tells DBCHECK to skip testing the rest of a dataset after the specified number of errors are found. Setting # to 0 disables this check. Default: 0 MSTART # Tells DBCHECK to start several tests at the specified detail master entry. Tests affected: all master dataset tests, and the PATHPTRS tests of detail datasets. [NO]NAMES The NAMES option tells DBCHECK to display an entry's location as an "entry name" in the following format: block# / number-in-block The numeric base used to report these two values is hex if the HEX or HEXNAME option has been used, or octal if the OCT or OCTNAME option has been used. NONAMES tells DBCHECK to not report entry names. If both NAMES and NUMBERS are requested, then an entry location will be displayed as: number (block# / number-in-block) For example, if a dataset has a block factor of 10, then entry number 21 would be displayed as: 21 (2/1). Note: this option is ignored for LargeSet databases. Default: NUMBERS, NAMES [NO]NUMBERS The NUMBERS option tells DBCHECK to display an entry's location as a simple numeric value. The base used to report this value is hex if the HEX or HEXNUMBER option has been used, or octal if the OCT or OCTNUMBER option has been used. NONUMBERS tells DBCHECK to not report entry numbers. Default: NUMBERS, NAMES OCTal OCTal tells DBCHECK that you want octal values. The OCT keyword is equivalent to specifying all of the following keywords: OCTDUMP, OCTNAMES, and OCTNUMBERS. See also: DEC... and HEX... options. [NO]PAGING PAGING tells DBCHECK to suspend output to the screen after about 22 lines. PAGING is only available when DBCHECK is run in a session. Default: PAGING if interactive, NOPAGING if batch Note: PAGING is not in effect for the first 200 lines of output. This allows a no-error run of DBCHECK to work without waiting at a page-prompt for interactive users. If you don't like this, do: SET PAGING which will reset the line counter to 0 (and output will be paginated after the next 22 lines). PRINTER Tells DBCHECK that you want output sent to a file whose formal name is PRINTER as WELL as to $STDLIST. Note: PRINTER should not be specified for JOB runs of DBCHECK. PRIORITY Sets DBCHECK's priority to the specified value. NOPROGRESS PROGRESS [=] # PROGRESS tells DBCHECK that you want periodic progress messages sent every # records seen. NOPROGRESS tells DBCHECK not to report progress. See also: INTERVALMINS [NO]QUIET NOQUIET tells DBCHECK to report at the start of each dataset. QUIET tells DBCHECK to not report at the start of each dataset. Default: NOQUIET [NO]QUIETOP NOQUIETOP tells DBCHECK to inform the system console of progress. QUIETOP tells DBCHECK not to inform the system console of progress. Default: NOQUIETOP RESET Changes the default option setting to "false" for the rest of the line (or until a SET is seen) SET Changes the default option setting to "true" for the rest of the line (or until a RESET is seen) [NO]SHOWTimes SHOWTIMES causes DBCHECK to report the CPU and elapsed time used by DBOPEN, and by the complete set of tests. [NO]SKIP The SKIP option allows various tests to be skipped. SKIP BITMAP tells DBCHECK to skip checking the validity of the bitmap for each media record in a detail dataset. SKIP FREE tells DBCHECK to skip checking the free chain validity for detail datasets. (See also: MDXFREE) SKIP MDXFREE tells DBCHECK to skip checking the free chain validity for MDX master datasets. SKIP PATHS tells DBCHECK to skip checking the various pointers to/from a detail dataset for all paths. SKIP PATH # tells DBCHECK to skip checking the various pointers to/from a detail dataset for the specified path. (You may use multiple SKIP PATH # options to skip more than one path.) SKIP PTRSCAN tells DBCHECK to skip serially scanning sets to check their pointers. Note: this scan is "free" for detail datasets if the BITMAP test is not being skipped, and is "free" for master datasets. SKIP SYNCHAIN tells DBCHECK to skip checking synonym chain pointers for master dataset entries. SKIP ALL tells DBCHECK to skip all tests. This would typically be used as: SKIP ALL NOSKIP FREE SKIP NONE tells DBCHECK to not skip any tests. NOSKIP tells DBCHECK to not skip the specified test. STATUS Lists the state of various DBCheck options. [NO]STOP STOP tells DBCHECK to stop examining a database when it finds the first error. NOSTOP tells DBCHECK to find all of the errors it can. STOP is equivalent to saying: MAXERROR 1 Default: NOSTOP [NO]SUMMARY Tells DBCheck to report a summary of whether the datasets tested cleanly. [NO]TIMEs TIMES tells DBCHECK to report CPU and Elapsed times at the end of every dataset and database examined. NOTIMES tells DBCHECK to not report these times. Default: TIMES TO | > filename [options]* APPENDTO | >> filename [options]* options ::= APPEND | | AOPTIONS # | BLOCKFACTOR # | FILECODE # | FOPTIONS # | KEEP LIMIT # | RECCHARS # Directs a copy of the report to the specified (new) disk file. (You cannot specify both TO and PRINTER) In addition to specifying the above options via the INFO string, they can also be specified whenever DBCHECK is prompting with the "DBCheck:" prompt. ----------------------------------------------------------------- Specifying datasets to test After entering the name of a valid database (in your account), DBCHECK will allow you to specify the datasets to be tested by specifying the DATASET option. Examples: BASE SALES DATASETS ALL -4 tests all sets except set 4 BASE SALES ASK will ask you which datasets to test. BASE SALES will test all datasets. When specifying datasets, "@" will select all sets, NONE will deselect all sets. Datasets may be selected by name, number, or number range (e.g.: 9/10). Sets may also be deleted by -name, -number, or -number range (e.g., -9/10). Entering a "?" will cause DBCHECK to display a list of all sets in the database. Any currently selected for testing will be marked. When entering datasets interactively, you will be prompted for dataset names until you enter a "/". ----------------------------------------------------------------- During testing, interactive users may press control-Y to interact with DBCHECK. Options presented will include: terminating DBCHECK, terminating the database test, and terminating the current dataset test. When DBCHECK finishes, it sets the jcw "JCW" to the number of errors found (0 if no errors). ----------------------------------------------------------------- PARM PARM Add# Bit# Meaning ----- ---- ----------------------------------------------------- 1 15 Suppress most output (unless an error occurs). 2 14 Show entry numbers, names, and 'dumps' in hex. 4 13 Suppress output to system console in batch (QUIETOP). 8 12 Don't show times for every set checked. 16 11 Don't report progress periodically. 32 10 Stop on finding the first error. 64 9 Send copy of all output to PRINTER. 128 8 Show record numbers in errors (NUMBERS). 256 7 Show record names in errors (NAMES). 512 6 Show entry numbers, names, and 'dumps' in octal. 1024 5 Show allocation/restore date of all datasets (DATES). 2048 4 (internal) 4096 3 Check allocation/restore date (CHECKDATES). 8192 2 (internal) 16384 1 (internal) If both Parm bit 14 (HEX) and Parm bit 6 (OCTAL) are on, HEX will be used. On MPE/iX, HEX is the default, and on MPE V OCTAL is the default. ----------------------------------------------------------------- DBCHECK was written by Stan Sieler, of Allegro Consultants, Inc. Stan can be reached via email at: sieler@gmail.com Much of the R&D that went into DBCHECK was made possible by the courtesy of Adager Corporation. ----------------------------------------------------------------- Recent History -------------- 2008-12-02 Added "TO filename" option. 2008-03-25 Major changes to the parsing code. Added code to report creator of database if we failed to open it because we aren't the creator. Improved error reporting by adding set names ... so if many errors have been reported, and the original set name has scrolled off the top of terminal memory, the user won't have to guess which set the error pertains to. Changed some numbers to print with commas. 2004-12-20 Added CHECKDATES option, made default be NOCHECKDATES. 2004-04-23 Fixed problem where dump of a buffer would have octal half-word indices, even if user's output base was hex or decimal 2004-04-22 Fixed problem where we'd report error 1, 2, or 9 when DSTART used. Added FULLERASE option to enable fill inside partial'erase'buf. 031113 Added DATASET # option 031108 Added code to not check pointers for ASCII text if they're within the legal range! Otherwise, sets with legitimate entry names >= $20202020 report false problems. (Rene) Fixed problem where we were checking path pointers for a master even if SKIP PATHS requested. Added SKIP SYNCHAINS (test'syn'chain) 030723 Minor text revision for "Paths to skip" text. 021115 Added report/check of restore/allocation dates 021102 Added MDXFREE test and support for MDX datases. 000607 Added "C"5" and "C"6. 000605 Sped up by removing some calls to "fill". 000531 Added first support for Largeset databases (entry #s) 000302 Added support for larger IMAGE limits (250 sets, 64 paths from master) 970722 Added more DDX support. 970407 Fixed (?) percent calculation where d is > 2**31 / 100. Added code to check for negative percentage. 960703 Added code to make paging be false if from'info. 951122 Added TrueOnline info. 941116 Fixed problem with IMAGE-B chains > 32767, < 65536. // SS 20150327