AppNote: GWCheck Document Management Options

(Last modified: 07Feb2003)

This document (10063853) is provided subject to the disclaimer at the end of this document.

goal

GWCheck Document Management Options

fact

GroupWise 5.5

GroupWise 5.5 Enhancement Pack

GroupWise 6 Shipping

GroupWise 6

GroupWise 6 Shipping code

fix

GroupWise 5 and 6 uses a FLAIM database for storing its messaging, scheduling, and document management records.  The FLAIM engine has processes that proactively check for inconsistencies in the database.  These processes run in the background without requiring user intervention.  When not operating in client/server mode, database integrity can be compromised by lockups, general protection faults and other problems on client workstations.  In the event that the database contains inconsistencies that cannot be corrected by automated procedures, Novell has included the GWCheck utility.  GWCheck is used to detect and repair database corruption.  The purpose of this document is to explain how this corruption can occur and how it can be corrected by the GWCheck utility.  The scope of this document is only dealing with the document management features and databases in GroupWise 5.5.

Causes of Corruption

1.        Performing a backups of the GroupWise database while operations are running.  The problem with some backup programs is that they will interrupt a multiple file update operation after some files have been changed and before the change is completed to all or even one file.  Some backup programs have procedures for backing up live files.

2.        Crashing of the file server or client machines due to such things as network failures, power surges, insufficient memory, or insufficient disk space.

3.        Hardware problems are known to cause corruption.  This is especially true of failing routers, concentrators, hard drives and controller cards.

4.        Turning off or rebooting a workstation performing database operations.  This should  be carefully avoided when running utilities such as Stand Alone GWCheck.

Running GroupWise in client/server mode is very effective in preventing corruption.  For more information on this topic refer to the Novell "AppNote: Client/Server Architecture of GroupWise 5.5 Document Management Services (DMS)".

Content vs. Structural Checking

Structure database checking involves verifying relationships between various database files and/or records within those databases.  Content checking is an operation where the actual records in the databases are verified as complete.  You should always run structure checks before running content checks.

Accessing GWCheck

System administrators have two options for running the GWCheck utility.  For easy administration GWCheck is available as a snapin module within the NDS utility NWAdmin.  The snapin module is a graphical utility which is used to spawn check processes on the post office agent.  When the snapin version of GWCheck is used the workstation is only acting as a remote control to the check process.  There are a number of benefits in running the GWCheck process directly on the server.  First, the server has many of the databases in cache memory which speeds up the process.  Secondly, since the process and the database can be on the same machine, the problems associated with network traffic and workstation errors are eliminated.

In some cases it may be more convenient to run GWCheck from a workstation.  For this purpose Novell has included a stand alone version of GWCheck that can be downloaded from support.novell.com.

GWCheck from within NWAdmn32.exe

From within GWCheck, if you want to perform maintenance on a specific library you should highlight the library object and then enter the maintenance utility.  If you want to perform maintenance on all libraries under a post office you should highlight the post office object and then enter the maintenance utility.

From within NWAdmn32.exe, highlight the Post Office Object and select Tools|GroupWise Utilities|Mailbox/Library Maintenance.  When the GroupWise Mailbox/ Library Maintenance dialog box comes up, select the object type you want to check on the pull down menu to the left.

Stand-Alone Version

The stand alone version of GWCheck was created so customers could receive updates in an easily downloaded manner.  All check routines built into the stand alone version are also included in the snap-in version of GWCheck.  Because the stand alone version is available from online services such as the Novell Support Connection, it can be easily updated with the latest check routines.  In some cases the stand alone version may contain routines that have not yet been released in the snap-in version.

Recreating the DMSH.DB

If it becomes necessary to recreate the DMSH.DB file, you should perform the following operations.

1-        Rename the old DMSH.DB.  

2-        Run a "Structure Rebuild" on object DMSH.DB.  This will remove the old DMSH.DB from NGWGUARD.DB.
3-        Then run a "Verify Library" to rebuild a new DMSH.DB from the WPHOST.DB and the DMSDnnxx.DB's.  The verify library also updates NGWGUARD.DB with the record for the new DMSH.DB.

This option completely wipes out the DMSH.DB.  All custom field information and document types are lost.  The default document types will be restored.

DF17 Errors

These errors are common if document storage areas are no longer used. See TID 10007709: GroupWise POA will not load: DF17, F107, 8209 Errors.

8209 Errors

These errors occur when a document storage area is not available. The POA is trying to access it but it is not found. 8209 errors show up most often when the QuickFinder Indexer is running. If a document is being requested but is not found, then a C06A will be given.

C06A Error

These errors are caused by two operations. Either deleting the NGWGUARD.DB and recreating it or by running GWCheck "Remove Deleted Document Storage Areas" without selecting "Move Document First". In each case, documents referenced in the DMDDXXXX.DB database are not able to be accessed because the document storage area record is not in the NGWGUARD.DB. This must be resolved by sending your WPHOST.DB and NGWGUARD.DB database into Novell.

Options Explained

The biggest difference between running the document management checks from a post office vs. library level, is the scope.  When you run a check from the post office level (object), the check runs on all libraries under that post office.  If you run it on a library level, you specify the specific library you want the option to be performed on.  From User/Resource you can narrow the check to a specific database.

The options to be discussed are specifically for the stand-alone version of GWCheck.  Some of the following options are not available in the snap-in version of GWCheck.

Object: Library

From NWAdmin32.exe, highlight a library object and select Tools | GroupWise Utilities | Mailbox/Library Maintenance.

Action: Analyze/Fix Databases
        Options:
                Structure-
                        Checks the library databases for structural consistency.  Should be run before all contents checks.  If you select Post Office and check Documents, this will run on all libraries under the post office.  You can also select Library and specify a library name to run this on only one library.

                When to run:
                        Run before all running contents checks.  

                        Should be run either Daily or Weekly.

                        Run when getting "C" class errors on documents or libraries.

                Note:        You can change the resource to User/Resource and specify a specific database.  For instance, you can run a structure check on a specific partition such as DMDD0101.DB.

                Index Check-
                        Every database file has an internal (not QuickFinder) index.  This option will rebuild the index in every library database.  This check can take a substantial amount of time to run.

                When to run:
                        Run if your trying to open document number x and document number y is loaded.

                Contents-
                        It is a basic sanity check of the library scheme.  It checks to see if all the libraries listed in the WPHOST.DB file are also listed in the DMSH.DB and that the library databases have been created.  It also verifies that the document index is unique.  It checks to see if the doc types table exists.  If it doesn't exist it will rebuild it based on the defaults.  

                When to run:
                        If you run "structure" checks daily, Novell recommends "contents" checks be run weekly.  If you run "structure" checks weekly, Novell recommends "contents" checks be run monthly.

                        If the libraries listed in the client are incorrect.

                        If custom fields or document types are corrupted.                        

                Collect Statistics- N/A

                Fix Problems-
                        Select fix problems if you want GWCheck to repair the problem rather than just reporting it.

                When to run:
                        In some cases you may want to see how your system is doing without actually running the fix routine.                        

Action: Archive/Delete Documents
                Executing this option will cause all documents whose document life has expired, to be either archived or deleted.  Document life expiration is based on the document type specified on the document property sheet.

                When to run:
                        This option is used to reclaim disk space.  It will move document BLOB files eligible for archive to the ARCHIVE directory under the library.  Documents eligible for deletion will be deleted from the system.

Action: Delete Activity Logs
                Specify the number of days old you want activity logs to be before they are deleted.

                When to run:
                        This option is used to reclaim disk space.  It will delete non-privilaged activity records older than the specified number of days and privilaged activity records older than six months, from the DMDLnnxx.DB files.

Action: Analyze/Fix Library
        Options:
                Verify Library-
                        This option performs a logical check of the library databases.  Synchronizes the WPHOST.DB and DMSH.DB.  The WPHOST.DB is dominant.  If the DMSH.DB has references to a library that are not referenced in the WPHOST.DB, the references are deleted.  If the DMSH.DB does not exist it will recreate it.  The default document types will be restored and the library information will be built from the WPHOST.DB and the DMSDnnxx.DB's. This option alone should only take a seconds/minutes to complete.  This function also validates that the next available document number in the DMSDnnxx.DB's are correct.

                When to run:
                        If users cannot access one or more libraries in the post office because of a problem with the DMSH.DB.  

                        If you have a problem accessing document type tables, this option will as well as restore the default document types.

                        Because document type is a required field on document property sheets, corruption in this area may be manifested by not being able to add a document or version.

                        Use this option to recreate the DMSH.DB if necessary.

                Fix document/version/element-
                        Goes to all the records in the library to verify that it is logically consistent.

                When to run:
                        Use this option in cases where documents cannot be accessed by either the GroupWise Client or the QuickFinder indexer.  This problem is sometimes manifested by the error E811.

                Verify document files-
                        Goes to each element record to find the BLOB location.  It then opens each BLOB to verify that it can be opened and decrypted.

                When to run:
                        Run if you are unable to open documents.

                Validate author/creator security-
                        This process goes through every document and recreates a new enforcement field.  Enforcement fields are created for the document, version and element records.  These fields are indexed by QuickFinder to speed up document access.  These fields are reindexed the next time the POA spawns the indexing process.

                When to run:
                        Run if the author or creator can't open one or more of their documents. Run if the author or creator has been moved to another post office.

                Validate all document security-
                        This process is identical to "Validate author/creator security" with the additional function of validating all users on the sharing tab.  It reads each document record to verify that the users Global Unique Identifier (GUID) still matches the GUID for that user in GroupWise.

                        This operation does the equivalent of a Ctrl-Shft-Q on the POA. This is because all the security enforcement ID·s must be reindexed. After running this operation, you can expect the indexer to run longer.

                When to run:
                        Run if you can't access a document that you know you have righ.ts to.  Run if the author, creator or user on the security tab, has been moved to another post office.

                Synchronize user name-
                        Verifies that the full user names listed on the document and version records match the user names in the address book.  This feature is used to synchronize user name changes.

                When to run:
                        Run when a users name changes in NDS.

                Remove deleted storage areas-
                        Gets a list of all document storage areas listed in NGWGUARD.DB that are not listed in the WPHOST.DB.  If "Move Documents First" is selected, it will see if documents are still located in the invalid document storage area.  If documents are in the document storage area, it opens each BLOB to validate which library it belongs to and moves them to a valid document storage area for that library.  It will do this until all the BLOBs with references in a valid library are removed.  The directories are not deleted.  Any documents left in these directories are orphaned and can be imported by the librarian.
                        
                                Move Documents First-        If this option is deselected the process will only delete the invalid document storage areas from NGWGUARD.DB.

                Caution:
                        Deselecting "move documents first" is the most common cause of C06A errors. It is only in rare circumstances that you would turn this option off.

                When to run:
                        Run this option if you deleted a document storage area and the storage area was deleted from the WPHOST.DB but not the NGWGUARD.DB.  This problem may manifest itself as a DF17 error when loading the post office agent.

                Reassign orphaned documents-
                        In general, this option has been replaced by the GroupWise 5.5 Mass Change operations feature in the client.  This option reassigns documents that no longer have a valid author, to the user specified in the "New Author" field below.  This feature will change the author of the documents but not the creator.

                                New Author- Specify the name of the individual who you want orphaned documents to be assigned too.

                Note:
                        A hidden operation found in this option is to regenerate wordlist blobs. This is performed by putting a ·*wl· in the ·New Author· field. Caution should be used in causing a wordlist regeneration. It forces a considerable amount of indexing to be performed. It also should not be run if you have archived documents.

                When to run:
                        If a user has been deleted from GroupWise and their documents need to be reassigned to another GroupWise user.

Note:        When selecting any of the options under Analyze/Fix Library, each record in the library database is going to be scanned.  Selecting all the options will add very little additional time to the process.

Object: Post Office

Action: Analyze/Fix Databases
        Options:
                Structure-
                        Checks all the library databases under the post office for structural consistency.  Should be run before all "Contents" checks.  If this item is selected and "Document" is checked on the databases tab, all libraries under the post office will be checked for structural integrity.  The DMSH.DB will be synchronized with the WPHOST.DB.

                When to run:
                        Run before all running contents checks.

                        Should be run either Daily or Weekly.  

                        Run when getting c class errors on documents or libraries.

                        If QuickFinder indices are abnormal in size because INC and IDX files have not been deleted properly, a structure check will clean them up.

                Index Check-
                        Every database file has an internal (not QuickFinder) index.   If this item is selected and "Document" is checked on the databases tab, this option will rebuild the index in every library database under the post office.  This check can take a substantial amount of time to run.

                When to run:
                        Run if your trying to open document number x and document number y is loaded.

&.nbsp;               Content-
                        If you run a "Contents" check and "Document" is checked on the databases tab, this option walks through every record in every partition to make sure the contents of the records are valid.  This process goes through the DMDDnnxx.DB's, DMDLnnxx.DB's, DMSDnnxx.DB's and the DMSH.DB database files.  It also goes through the QuickFinder index files and checks them for validity.  When a contents check is run on the post office object, it has the additional feature of  scanning for orphaned documents. To do this it goes to the NGWGUARD.DB to get the locations of the document storage areas.  It then goes through each blob directory, opens each BLOB and checks to make sure it has a valid library record.  If a BLOB does not have a library record anywhere in the post office, it considers the BLOB orphaned and copies it to a directory structure underneath the log directory. After this operation is completed, the administrator should check the log location for orphaned BLOBs.  These files can be imported back into the system by the librarian.  

                When to run:
                        If you run "structure" checks daily, Novell recommends "contents" checks be run weekly.  If you run "structure" checks weekly, Novell recommends "contents" checks be run monthly.

                        If you experienced corruption in a library or for some other reason needed to restore library databases from backup.

                        If QuickFinder indices are abnormal in size because .INC and/or .IDX files have not been deleted properly.

                Note:
                        If you are running a Stand-Alone copy of GWCheck dated April 99 or later, the orphaned BLOBs will be in native file format (decrypted).  The GWCheck log file will report the library name, original document number, version number, element number, the path to the orphaned document and the author name. If you have a large number of documents that have been exported you can download a utility called gwdocnam.exe from support.novell.com. This utility will parse your log file and move and rename the exported documents into an easier to user directory structure.

                        The GroupWise 6 GWCheck sorts the documents by author for you. It also names the documents document number_version number.extension. Therefore it is unnecessary to run gwdocnam.exe.

                        Sometimes when this operation is run, you will receive "error 52" messages. This error indicates that documents with missing trailers have been found. This is generally not an error you need to worry about. If GWCheck finds a wordlist BLOB that does not have a trailer it will export it as well. Wordlist BLOBs are used by QuickFinder. Trailers are not used in wordlist BLOBs so the error is not important. If you find BLOBs with missing trailers you can open them to verify that they are wordlists. A wordlist BLOB is a WordPerfect 6.1 file that contains words listed in alphabetical order. We have fixed this issue in GWChecks dated later than May 2001.

Action: Expire/Reduce Messages
                No document management options.

Action: Mailbox Statistics
                No document management options.

Action: Archive/Delete Documents
                Executing this option will cause all documents in the post office whose document life has expired to be either archived or deleted.  This information is based on the document type specified on the property sheet.

                When to run:
                        This option is used to reclaim disk space.  It will move BLOB files eligible for archive to the ARCHIVE directory under the library.  Documents eligible for deletion will be deleted from the system.

Action: Delete Activity Logs
                This is used to clean up activity records that are no longer needed.  Specify the number of days old you want activity logs to be, in all libraries under the post office, before they are deleted.

                When to run:
                        This option is used to reclaim disk space.  It will delete document activity information older than the specified number of days in the DMDLnnxx.DB files.
                                                        
Action: Analyze/Fix Library
                The options under analyze/fix when executed under the post office object will perform the same actions as described above except they are performed to all library objects under the post office.  Refer to the Object: Library, Action: Analyze/Fix Library section of this document.

Note:        Each of the options discussed, allow you to turn on verbose or normal error logging.  You can specify the name of the log file and if you want the results sent to the system administrator or to the individuals affected by the check.

Object: Users/Resources

From the Stand-Alone copy of GWCheck, the Users/Resources object can be used to run maintenance on specific document management databases.  If you know a specific library database is corrupt, you can use this option to reduce the amount of time a broader based check of the databases would take.  The types of checks available are: structure, index, contents and structural rebuilds.  The structure, index and contents checks have been discussed previously in this document.  
To run maintenance on a specific database, select the post office directory and post office name and object "Users/Resources".  In the box below users/resources, type in the database name you want to perform maintenance on.  You must select either message or user from the databases tab.  Either one will allow GWCheck to continue.  Choose your check options and click run.

Action: Structural Rebuild
                When you select "Structural Rebuild", the database specified is renamed to a .DBA extension and a new one is created, record by record from the old one.

                When to run:
                        If the DMSH.DB has been deleted and you need its reference removed from the NGWGUARD.DB.

                        If a "Structure Check" has not resolved your corruption issue in a specific database, a "Structural Rebuild" will often clean it up.

.

document

Document Title: AppNote: GWCheck Document Management Options
Document ID: 10063853
Solution ID: NOVL54360
Creation Date: 30Jul2001
Modified Date: 07Feb2003
Novell Product Class:Groupware

disclaimer

The Origin of this information may be internal or external to Novell. Novell makes all reasonable efforts to verify this information. However, the information provided in this document is for your information only. Novell makes no explicit or implied claims to the validity of this information.
Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information.