Hi,
I'm currently modernizing a build pipeline for C/C++ programs on z/OS, who is over 20 years old, and I have some questions regarding localization management.
I'm working on a French context, and the CCSID used is EBCDIC IBM-1147. Db2 subsystems are configured with CCSID 1147.
- Before: CICS standalone precompilation, Db2 standalone precompilation, XL C/C++ compilation, prelink, linkedit (binder) to PDS
- After: XL C/C++ compilation with CICS and Db2 integrated coprocessors, linkedit (binder) to PDS-E
Apparently, to use the Db2 integrated coprocessor in the XL C/C++ compiler, with a CCSID 1147 for Db2, I'm forced to manage the C/C++ source code in EBCDIC IBM-1147 as well, and to declare a LOCALE("Fr_FR.IBM-1147"). Otherwise, I get warning messages about the inconsistance between the CCSID declared in the DSNHDECP module and the source code encoding.
Until now, C/C++ source code was managed using IBM-1047 EBCDIC on z/OS. I don't know the consequences of switching to IBM-1147 EBCDIC on program behavior (which are all designed to run under "MVS" and not "USS").
I've also noticed that the XL C/C++ compiler/integrated Db2 coprocessor ignores all the SQL options I might pass; it imposes its own after mines!
My knowledge of the C/C++ context on z/OS is limited... my expertise is the COBOL language on z/OS. I am surprised by the lack of flexibility in managing SQL compilation options at the XL C/C++ compiler level... The COBOL compiler is much more flexible and accommodates multiple possible configurations.
I also have questions about the use of others XL C/C++ compilation options:
- CONV(1147) or not...
- GOFF or not...
Any help will be welcome.
Best regards.
------------------------------
Denis FALLAI
BPCE SI, BPCE group.
------------------------------