After successful termination of the REORG utility, programs start to abend due to database corruption in index or calc sets. Records may not be found when doing symbolic reads through an index due to an invalid symbolic key being stored within the index.
Release: All supported releases.
The REORG utility was run using a subschema that rearranges the physical sequence of the elements in a record relative to the sequence defined in the associated schema. The portions of the database to most likely be affected are index keys within the index structure and the sequence of records within the CALC chain where duplicate calc keys are used.
Example: assume the following database record and (index) set definition:
ADDRECORD NAME IS CUSTOMER-REC VERSION IS 1.02 CUST-KEY-ALPHA. 03 CUST-BANKID PIC 9(5). 03 CUST-NOM-ALPHA PIC X(24).02 CUST-N-PSN PIC 9(13).02 CUST-PSN PIC 9.02 CUST-TY-MAR PIC 99.02 CUST-O-NAME PIC 99.02 CUST-AG-REL PIC 9(5).02 CUST-FIL-040 PIC X(40).
ADDSET NAME IS IX-CUST-BANK ORDER IS SORTED MODE IS INDEX BLOCK CONTAINS 35 KEYS OWNER IS SYSTEM WITHIN AREA INDEX-AREA MEMBER IS CUSTOMER-REC MANDATORY AUTOMATIC KEY IS ( CUST-BANKID ASCENDING CUST-PSN ASCENDING CUST-NOM-ALPHA ASCENDING ) DUPLICATES ARE LAST NATURAL SEQUENCE UNCOMPRESSED .
The REORG utility was executed using a subschema which defines the CUSTOMER-REC as follows:
ADDRECORD NAME IS CUSTOMER-REC ELEMENTS ARE CUST-KEY-ALPHA CUST-N-PSN CUST-O-NAME CUST-PSN CUST-AG-REL CUST-TY-MAR CUST-FIL-040
.
Note that this subschema definition rearranges the record elements of the CUSTOMER-REC.
The REORG job will complete successfully, but the IX-CUST-BANK set will be built incorrectly because of this subschema. The utility was never intended to support such subschemas.
Rerun the REORG using a subschema that does not rearrange the order of the elements with respect to the schema. This would require a subschema that does not use the ELEMENTS ARE clause in the definition of its records.
The following PTFs add a validity check to disallow using such a subschema in REORG.
RO87776 (r19.0)
RO87756 (r18.5)
RO87768 (r18.0)
After application of one of these PTFs, the REORG utility will terminate with an UT003038 message:
UT003038 SUBSCHEMA <subschema-name> CONTAINS SEGMENTED RECORD <record-name>
Note: If the subschema contains an ELEMENTS ARE clause that defines the elements in the same order that they appear in the schema, the above PTFs will still issue the UT003038 message. With the PTF applied, there must be no ELEMENTS ARE clause at all for REORG not to issue the message.