ANALYZE The new ANALYZE tool, formerly used primarily only by cc:Mail Technical Support, has been enhanced and is now available to all administrators and users. After this tool analyzes your database files (without shutting down the post office), it suggests exactly what you should do to fix any detected errors. You should run ANALYZE before using any of the other administrative tools to check the status of your database. ANALYZE also lets administrators and individual users check a single USR file. To do this, type ANALYZE /Dpath /USR/xxxxx or ANALYZE /N"username" /Dpath Your ANALYZE results will differ depending on whether you are logged in as a user, post office administrator, or user with access rights. (See note below.) For example, if you are logged in as a user, you can analyze only your USR mailbox file. If you are logged in as the post office administrator (or user with access rights), you can use all command-line parameters to analyze any database file. Note: in the ADMIN.EXE program, 5.0 release, the administrator can assign access rights to local users to allow them to manage specific post office utilities. Which access rights a user has also determines which options they enter on the command line. The ANALYZE optional parameters, listed in the following table, are similar to the CHKSTAT and RECLAIM parameters. Parameter Purpose /BATCH Sets program not to wait for user's response. In batch mode, pressing the Esc key will not interrupt ANALYZE. /DIAGNOSTICS Displays detailed information about any database errors (during and after ANALYZE has run). The default is set to check for every database file type. /DIRECTORY Checks only the central Directory database file (CLANDATA). /MESSAGES Checks only the message database (MLANDATA). /USERS Checks all users' USRxxxxx mailbox files. /USR/xxxxx Checks only one user's mailbox specified by USRxxxxx number. (You can also check a single user's mailbox by name.) /? Provides brief on-line information for parameters. Syntax: ANALYZE [/Nname] [/Dpath] [optional parameters] Examples: ANALYZE /DM:\CCDATA /BATCH /DIAGNOSTICS ANALYZE /DM:\CCDATA /MESSAGES ANALYZE /DM:\CCDATA /USERS ANALYZE /DM:\CCDATA /DIRECTORY ANALYZE /N"JOE SMITH" /DM: Optional parameter defaults: /DIRECTORY, /MESSAGES, and /USERS Note: the optional parameter defaults list what optional parameters automatically run if you enter only the program name. For example, if you simply enter ANALYZE, the program checks the following three areas: /DIRECTORY, /MESSAGES, and /USERS. Probable Causes of Database Corruption Although you typically shouldn't have to worry about network reliability, the following conditions could cause database corruption requiring that you run ANALYZE to determine how to fix the problem. o File server crashes o Faulty hardware (cabling, and so on) o Software that alters memory o Incorrect backup and restore procedures o Certain combinations of software o DOS operating system, version 4.0x o Network traffic consuming entire bandwidth o Faulty network interface cards (NICs) installed in the workstation or file server o Network file locking failure If ANALYZE reports Network Fault Tolerance (NFT) errors, check your NFTERROR.LOG file for a list of users who have received NFT errors. If your network experiences NFT errors, you should not run the maintenance utilities without first determining the cause of the error by running CHKSTAT /DIAGNOSTICS or ANALYZE. Refer to the Technote titled "Interpreting NFT Errors," posted on the cc:Mail Tech Support BBS (bulletin board service) for more information. cc:Mail automatically generates errors in an NFTERROR.LOG file whenever database file integrity is threatened by a network problem. Check this file, which is located in the CCDATA directory (or wherever your database files are stored), for detailed information on network fault tolerance errors and warnings. Types of Problems Detected by ANALYZE If ANALYZE detects an error, it offers suggestions about how to resolve the condition. If ANALYZE finds no discrepancies, it offers no suggestions, and simply displays a return code of 0. A list of the ANALYZE return codes appears in the table below. Code Meaning 0 Success 1 Any database file critical errors 2 Program aborted by a user 3 Command-line errors 4 - 32 Severe post office errors 33 - 63 Minor post office errors 64 - 95 Severe USRxxxxx files errors 96 -127 Minor USRxxxxx files errors Note: ANALYZE suggests what you should do (if applicable) to fix any discrepancies. Also, if you run ANALYZE on live database files, you may get false errors. ANALYZE Output ANALYZE returns two levels of detailed output, depending on whether you run the program with or without entering the /DIAGNOSTICS parameter on the command line. If you run ANALYZE without the /DIAGNOSTICS parameter, the program completely analyzes the database file, but only lists the Directory entry statistics and the error statistics summary, as shown in the following sample. Directory entries statistics (D): 5 - L Number of local users. 0 - R Number of remote users. 0 - A Number of local aliases. 0 - P Number of direct post offices. 1 - p Number of indirect post offices. 153 - l Number of remote users (but local) at other post offices. 0 - r Number of remote users (but remote) at other post offices. 0 - a Number of remote aliases at other post offices. Error statistics: Error = 4, Count = 3, NFT compatibility errors. Error = 9, Count = 1, Post office profile files errors. Error = 10, Count = 42, Directory chain errors. Error = 33, Count = 10, Directory entries. Error = 34, Count = 29, Directory index. If you run ANALYZE with the /DIAGNOSTICS parameter, the program generates detailed error information, along with the same statistics shown in the preceding example. Running ANALYZE with the /DIAGNOSTICS parameter lists each specific error type found along with its associated address. An excerpt of sample ANALYZE output with /DIAGNOSTICS follows: Checking directory chain. 4e00 -- Rel loc dir entry. a16 -- Rel loc next entry. a38:56ea80ac -- Rel loc prev entry does not match dir entry. 8c4 -- Rel loc dir entry. fa2 -- Rel loc prev entry. fa2:8478e661 -- Rel loc next entry does not match dir entry. a16 -- Rel loc dir entry. a16:53299119 -- Rel loc next entry out of range. Checking directory entries. Checking directory index. 6ba: a16 -- Rel loc dir entry for user 4. a20:947b7a73 -- User number does not match index number. 6be: a70 -- Rel loc dir entry for user 5. a7a: 24a392b -- User number does not match index number. Analyzing Database Corruptions The following table shows some of the types of problems ANALYZE may find in database files, as well as suggestions for how to fix them. This table does not include every possible message and solution. Problem Solution Message allocation errors Run CHKSTAT /MESSAGES /DIAGNOSTICS/R or Run CHKSTAT /DIAGNOSTICS/M/R and then run RECLAIM User's file is missing Either use a backup of the user's file or run ADMIN and delete the user entry. If you delete the entry, re-enter the user in the Directory to recreate the mailbox. (All mail in the old mailbox will be lost.) Invalid file size Run CHKSTAT /DIRECTORY /DIAGNOSTICS/R Critical errors in USR file(s). Either use a backup of the damaged user's file or run ADMIN and delete the user's name(s). If you delete the entry, re-enter the user in the Directory to recreate the mailbox. (All mail in the old mailbox will be lost.)