This section describes the errors that can be detected and repaired when using the JADE Logical Certifier utility to check the consistency of your JADE database, particularly the validation of inverse references and collections. For details, see "Overview", earlier in this chapter.
The errors that can be detected when using the Logical Certifier utility to check the referential integrity of user meta (system) schema data are:
Error 98 – Errors to meta schema structure with fixes
Error 99 – Errors to meta schema structure without fixes (that is, no repair is provided and it is your responsibility to repair this error yourself)
Error 88 – Errors to versioning structure without fixes (that is, no repair is provided and it is your responsibility to repair this error yourself)
In the meta data errors, entity names are output where possible. However, in some cases the fully qualified name may not be available because the required meta schema entities required to output the full name may be null.
When using this section, the key for user data errors is as follows.
In addition, manual repair indicates that you can repair the error if the property refProp is maintained manually and automatic repair indicates that the error can be repaired if the property refProp is maintained automatically.
In each of the user data errors in the range 1 through 32 described in this section, the repair that is documented after each diagram corresponds to the fixcommand line in the _logcert.fix file.
An error 1 is detected when the collection does not include a reference to an inverse object.
Repair:
add inverseColl obj
An error 2 is detected when a property references an invalid object.
Repair:
If refProp is part of a keyPath then
nullKP obj refProp
else
null obj refProp
An error 3 is detected when a collection contains an object at invalid keys.
Repair:
rebuild coll
If the object has an invalid key path, it is your responsibility to repair the error yourself.
Repair:
rebuild coll
If the object has an invalid key path, it is your responsibility to repair the error yourself.
An error 4 is detected when a collection size header does not match the number of entries in the collection.
The number of entries is found when foreach relatedObj in coll does not agree with coll.size.
Repair:
rebuild coll
An error 5 is detected when a collection does not include a reference to an inverse collection.
Repair:
add inverseColl obj
An error 6 is detected when a property references an invalid inverse object.
Manual repair:
If inverseProp is part of a keyPath then
setKP relatedObj inverseProp obj
else
set relatedObj inverseProp obj
Automatic repair:
If inverseProp is part of a keyPath then
nullKP obj refProp
else
null obj refProp
An error 7 is detected when a property does not reference an inverse object.
Repair:
set relatedObj inverseProp obj
Repair:
null obj refProp
Repair:
set relatedObj inverseProp obj
An error 8 is detected when no inverses are found for a reference property.
Manual/automatic repair:
Select null or lines to populate all inverses.
Automatic repair:
null obj refProp
The JADE Logical Certify utility error 9 is reserved for future use.
An error 10 is detected when a collection has a bad root block.
Repair:
rebuild coll
If the repair action is unsuccessful, contact your local JADE support center or JADE Support if your JADE licenses include support.
An error 11 is detected when a collection contains a null member. The collection is not an array.
Repair:
rebuild coll
An error 12 is detected when a collection contains an invalid reference.
Repair:
rebuild coll
An error 13 is detected when a collection contains invalid references to an inverse object.
Manual repair:
set relatedObj inverseProp obj
Automatic repair:
remove coll inverseProp null relatedObj inverseProp
An error 14 is detected when a member of a collection does not reference an inverse object.
Repair:
set relatedObj inverseProp obj
Repair:
remove coll relatedObj
Repair:
set relatedObj inverseProp obj
An error 15 is detected when no inverse references are found for a reference property in a collection.
Manual/automatic repair:
Select remove or lines to populate inverse.
Automatic repair:
remove coll relatedObj
An error 16 is detected when a collection exists but no sub-object is set in the parent object.
Repair:
setBit obj subObj
An error 17 is detected when an object instance references an invalid object.
Repair:
No repair provided. It is your responsibility to repair this error yourself.
An error 18 is detected when an object instance contains a null reference.
Repair:
No repair provided. It is your responsibility to repair this error yourself.
An error 19 is detected when an object contains an invalid collection reference.
Repair:
No repair provided. It is your responsibility to repair this error yourself.
An error 20 is detected when an object contains a null reference to a collection.
Repair:
No repair provided. It is your responsibility to repair this error yourself.
An error 21 is detected when an object contains a reference that is not to a collection.
Repair:
No repair provided. It is your responsibility to repair this error yourself.
An error 22 is detected when no inverse references are found in a collection (that is, when none is possible).
Repair:
remove coll relatedObj
An error 23 is detected when no inverse references are found to a property (that is, when none is possible).
Repair:
null obj refProp
An error 24 is detected when an inverse has not been defined correctly in the schema.
Repair:
No repair provided. It is your responsibility to repair this error yourself.
Update your schema definition and remove the invalid inverse definition.
An error 25 is detected when an object is not found in a collection because coll.includes(obj) caused an exception. The possible causes are an invalid collection block or the object has an invalid key path.
Repair:
rebuild inverseColl
An error 26 is detected when a collection contains a reference to an inverse object that does not meet the constraint.
Repair:
remove inverseColl obj
An error 27 is detected when a reference is set to an object that does not satisfy a constraint.
Repair:
null relatedObj inverseProp
An error 28 is detected when a String Large Object (slob) or Binary Large Object (blob) contains an error.
Repair:
fixSlobOrBlob obj prop
An error 29 is detected when an array with inverse references contains a duplicate entry.
Repair:
No repair provided. It is your responsibility to repair this error yourself.
An error 30 is detected when an illegal inverse is added to a shared collection.
Repair:
No repair provided. It is your responsibility to repair this error yourself.
An error 31 is detected when a collection is found to have a missing or invalid collection block.
Repair:
rebuild coll
An error 32 is detected when instances of an abstract class are found, or when instances of a class are found in the wrong database map file.
This fix is commented out in the repair file that is generated. Instances of abstract classes should not exist. Instances of non‑abstract classes should exist only in the database map file in which the class is defined.
Any class instances that the JADE Logical Certifier utility reports in the wrong file cannot be accessed directly. You should investigate the nature of these instances before they are deleted, and consider restoring these instances.
Repair:
deleteInstances fileName className classNumber
An error 33 is detected when a DynaDictionary references a missing or inconsistent class or property definition; for example, when the membership class of the DynaDictionary is deleted, or when a property that is used as a member key property of a DynaDictionary is deleted.
Repair:
delete oid
An error 40 is detected when a dictionary block is found but the parent instance that owns the dictionary does not exist.
Repair:
orphanBlock filename
An error 41 is detected when a blob or slob subobject is found but the parent instance that owns the Blob or Slob does not exist.
Repair:
orphanSlobOrBlob filename
An error 42 is detected when a dynamic property cluster is found but the parent instance that owns the cluster does not exist.
Repair:
orphanCluster filename
An error 43 is detected when a collection subobject is found but the parent instance that owns the collection does not exist.
Repair:
orphan oid