Previous Topic: PATH-GROUP StatementsNext Topic: Security Checking


Subschema Validation and Generation

After you describe the subschema, the dictionary contains the subschema description, but no subschema load module yet exists in the load area of the dictionary. A load module can be generated only from a valid subschema description.

Subschema Status

Each subschema description in the dictionary carries a status of either IN ERROR or VALID as follows:

Status

Indicates...

Status set by...

IN ERROR

The subschema has been added or modified but has not been validated. This status prevents the generation of a load module for the subschema.

  • An ADD SUBSCHEMA or MODIFY SUBSCHEMA statement
  • Any schema modification that affects the subschema (for example, deletion of a set)

VALID

The subschema has been validated and load modules can be generated

  • The error-free execution of a VALIDATE or GENERATEstatement
  • The error-free execution of a schema compiler REGENERATE statement.

You can validate the subschema and generate the load module in a single step (using the GENERATE statement) or you can validate the subschema at any time without generating a load module (using the VALIDATE statement).

VALIDATE

The VALIDATE statement instructs the subschema compiler to verify the relationships among all components of the subschema. Based on this verification, the compiler takes one of the following actions:

Result

Compiler action

No errors found

Compiler sets subschema status to VALID

Errors found

Compiler issues messages indicating the exact nature of each error

You usually use VALIDATE for dry runs of the subschema compiler since it causes the compiler to check the components but not to create subschema load modules.

Procedure

Issue the VALIDATE statement:

validate.

GENERATE

The GENERATE statement instructs the compiler to create subschema tables for the subschema that is current and to store them as a load module in the dictionary load area. For GENERATE to produce the new subschema load module, the current subschema must be valid. So, if a VALIDATE statement has not been specified for the subschema, the GENERATE statement causes the compiler to perform validation before creating the subschema tables.

Procedure

  1. Issue the GENERATE statement, as follows:
    generate.