Overview

The RootSchema provides the JADE Logical Certifier diagnostic utility, which performs various database consistency checks, particularly the validation of inverse references and collections. You can check the referential integrity of user data and the user meta schema definition.

The logical certification process analyzes each class in a schema and performs various cross-checks on each instance, to verify its logical integrity.

Certify your schemas in production systems regularly as data is updated, so that any problems can be detected as soon as possible. (You can certify schemas in a development environment less frequently, as data is generally more stable.)

Certify meta data in:

Although you could certify meta data in a backed up version of your JADE development environment, any fixes that are required apply only to a system in the same structural state.

You should check the meta-structure of schemas only when schemas are not versioned and you are running in single user mode. If entities are versioned, only the current version is checked for integrity.

You should use the JADE Logical Certifier utility in addition to the Certify Files command in the JADE Database utility, which checks the physical integrity of your database files.

Any errors that are detected are reported in the _logcert.err file in the specified output log directory.

If you want to perform an online repair of a collection while it is concurrently updated, call the repairCollection method of the Application class to remove invalid object references and fix up dictionary keys in a specified collection, including dynamic dictionaries.

When there are a relatively small number of entries to be repaired in a large collection, the Application class repairCollection method, designed to be invoked online, is significantly faster than Collection::rebuild method used by the JADE Logical Certifier utility.

Use the Application::repairCollection method only when you know that the collection is structurally sound and that only the entries in that collection are invalid. You can obtain an indication of the structural integrity of the collection by iterating the collection and counting entries. If the iteration completes without encountering an exception and the number of entries is equal to the value of the Collection::size property, it is likely the collection is structurally sound. When in doubt about the structural integrity, use the JADE Logical Certifier utility, which uses the Collection::rebuild method.

Because the repair is done by a background process, you can use the repairCollection method only with committed persistent or shared transient collections.

The JADE Logical Certifier: