Considerations for External Files

In general, all definitions of an external file should be identical. If there is a mismatch, the program will fail at start up when the definitions are compared. The following attributes of external files are compared:
  • If any of the definitions corresponding to the file are externally described (for example, by using Format 2 of the COPY statement), all other definitions must also be externally described. The level check information associated with all definitions must match.
  • The name specified on the ASSIGN TO clause must be the same for all definitions. This includes the device type.
  • The ORGANIZATION and ACCESS modes must be the same for all definitions of the file.
  • The OPTIONAL phrase, if specified, must be specified for all definitions of the file.
  • The external data item specified for the RELATIVE KEY phrase must be in the same physical location and occupy the same number of bytes for all definitions of the file.
  • The location of the record key within the associated record must be the same for all definitions of the file.
  • The blocking information associated with the file must be the same for all file definitions. This includes whether blocking is to be performed and the size of the block.
  • The values for the maximum or minimum number of characters on the RECORD clause must be the same for all definitions of the file.
  • The character set specified on the CODE-SET clause must be the same for all definitions of the file.
  • The value specified for the DUPLICATES phrase must be the same for all definitions of the file.
  • All of the values specified for the LINAGE clause must be the same for each definition of the file.
  • The specification of the attribute for the ASSIGN clause (separate indicators) must be the same for all definitions of the file.
  • The specification for the COMMITMENT CONTROL clause must be the same for all definitions of the file.
  • The specification for the *DUPKEYCHK or the *INZDLT compile-time option must be the same for all modules containing definitions of the file.
  • The specifications of the CCSID parameter for the CRTCBLMOD or CRTBNDCBL command must be the same for all modules containing definitions of the file.