Hi all you ILE COBOL, export/import and OS version control gurus. I have a problem that starts to drive me crazy (slowly, but fast enough). Here is the story: Program A consists of COBOL modules A1, A2, A3, A4 and A5, created under V3R7M0. A1 is PEP for program A and calls other modules. These modules share a lot of EXTERNAL data, among others 9 files. That works (used to work) fine. Now here is a trouble: Modules A1, A2 and A3 are changed and recompiled under V4R3M0 and program A is recreated (CRTPGM) using newly created modules A1, A2, A3, and old, unchanged versions of A4 and A5 (we do keep our modules with programs, don't ask why we don't use UPDPGM). Now, when A1 calls A4, we get "Consistency check on file" for all 9 files (err. description attached), reason code 18 (yes, eighteen). Firstly, modules were created in the same environment (e.g. none of files changed since first creation of modules and program, not to mention 9 of them). For a last few days I was trying to find any single difference in file definition or file usage between old and newly created versions of modules. I also checked all reasons for this type of error as they are listed in ILE COBOL/400 Reference, 126.96.36.199 Considerations for External files as well as all 17 possible reasons listed in the description for message LNR7801 (note that there are 17 different codes, but I got reason code 18). Nope. This problem is easily solved recompiling module A4 and recreating (or updating) a program. But, we have a very rich ILE environment and I'd like to know exact reason for it. Same problem occurred few more times (caught in testing) and I'd hate an idea of recompiling everything created under V3. Now, I'm starting to think that there is something in V4R3 that won't work with V3R7. Especially because compiler under V4 can't create template for V3, and command CRTCBLMOD would let you put V3R7M0 as target release. Any ideas???? Vanja Jovic, Canada Message ID . . . . . . . . . : LNR7801 Message file . . . . . . . . : QLNRMSG Library . . . . . . . . . : QSYS Message . . . . : Consistency check on file &7, reason code &1. Cause . . . . . : The definition for external file &7 in COBOL program &5 in program object &3 in library &4 does not match the current definition of that file in use in the run-unit. The reason code identifies which item does not match the current definition. The reason codes are as follows: 01 - The record format level identifiers 02 - The name specified on the ASSIGN TO clause 03 - The ORGANIZATION or ACCESS mode 04 - The OPTIONAL phrase 05 - The external data item specified for the RELATIVE KEY phrase 06 - The location of the record key within the associated record 07 - The value for the maximum size of the block 08 - The values for the maximum or minimum number of characters on the RECORD clause 09 - The character set specified on the CODE-SET clause 10 - The value specified for the DUPLICATES phrase 11 - One or more of the values specified for the LINAGE clause 12 - The specification of the attribute for the ASSIGN clause 13 - The specification for the COMMITMENT CONTROL clause 14 - The specification for the *DUPKEYCHK or the *INZDLT compile time option 15 - The record blocking/deblocking information 16 - No further information 17 - The specification of the CCSID parameter for the CRTCBLMOD or CRTBNDCBL CL commands. Recovery . . . : For reason code 01, recompile the program. For reason code 14, recompile the program and specify the same compile time options as specified for other compilation units containing definitions of the external file. For reason code 15, change the programs that use the external file to ensure that blocking/deblocking on the file will be performed consistently within those programs. For reason code 17, recompile the program and specify the same CCSID parameter value as specified for other compilation units containing definitions of the external file. For all other reason codes, change the definition of the external file so that it matches all other definitions of the same external file used in the run-unit. +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: email@example.com +---
As an Amazon Associate we earn from qualifying purchases.
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.