After an IDMS migration to a new release, trying to compile an IDMS Cobol program, can cause a problem in copying system-defined records such as SUBSCHEMA-CTRL. An upgrade install can replace the existing SUBSCHEMA_CTRL and other system-supplied records, returning them to their "native" format and removing any user customization.
This can cause a recompile of these programs to abend.
Two things can cause this problem to occur:
1- An upgrade install may erase customizations and the client may not realize that they need to be re-done after the install.
2- The IDMS centralized dictionary (IDD) supports multiple versions of records. Clients may inadvertently make changes to the wrong version of a record.
This error can occur in any CA IDMS environment.
After upgrading a CA IDMS CV to a new release, check SUBSCHEMA_CTRL and any other system-provided records to see if previous user modifications were removed. If they were, you will need to modify these records again, to include the same modifications that were made previously. After this modification, if I display the SUBSCHEMA_CTRL record Version 1 in the dictionary, you will see that the record has the changes you made.
The IDMS centralized dictionary (IDD) supports multiple versions of records. In customizing any records, it’s important to ensure that the correct version of the record is being modified. The different versions of the record SUBSCHEMA_CTRL are differentiated by language clauses and mode. For example, in one of our test system this display shows those attributes:
DISPLAY RECORD NAME IS SUBSCHEMA-CTRL VERSION IS 1 .
*+ RECORD NAME IS SUBSCHEMA-CTRL VERSION IS 1
*+ RECORD LENGTH IS 320
*+ PUBLIC ACCESS IS ALLOWED FOR ALL
*+ LANGUAGE IS COBOL
*+ MODE IS IDMS-DC
*+ MODE IS IDMS-DC-NONAUTO
*+ MODE IS DC-BATCH.
As you can see, version 1 specifies ' LANGUAGE IS COBOL' and
MODE IS IDMS-DC
MODE IS IDMS-DC-NONAUTO
MODE IS DC-BATCH
So, if the program being compiled copies in SUBSCHEMA_CTRL, it will choose the highest version it can find that matches on the language of the program being compiled, and the protocol specified in the program. Ensure that the desired changes are being made to the copy which the program will copy.
Syntax on how to modify a record in IDD can be found in our "IDD DDDL Reference" manual, which can be found here: