A new NUMCHECK compiler option was introduced in Cobol version 5.2.
This option will generate code in a program to validate the contents of cobol data according to their definition.
When using PIC S9(8) USAGE COMP to hold dbkey values in IDMS programs, this option may cause unexpected errors depending on the values involved.
Programs will encounter UFC6 abends, IGZ0315S errors or IGZ0316W warning messages depending on the NUMCHECK options and CEEUOPT/RHDCLEFE options specified.
IDMS, all supported releases.
The code generated by NUMCHECK appears to check for values that exceed the logical value allowed by their PIC definition.
For example, if a PIC S9(8) USAGE COMP field value exceeds 99,999,999, the validation check fails, even if the value fits physically as a binary value in the four bytes allocated for the field.
This means that (given the normal 8-bit dbkey radix) a page number of 390,625 or more (x'05F5E1' in the first three bytes) will cause this check to fail.
NUMCHECK did not exist prior to Cobol version 5.2.
To make Cobol version 5.2+ treat IDMS dbkey fields as Cobol version 4 and earlier did, use NONUMCHECK or at least NOBIN as documented at NUMCHECK.