A fix is available
APAR status
Closed as new function.
Error description
Some users wish to use NUMCHECK in production to detect invalid data. As NUMCHECK checks every data item of the specified types each time they're used, using NUMCHECK can significantly decrease performance.
Local fix
Use NUMCHECK for testing only, not production
Problem summary
**************************************************************** * USERS AFFECTED: Users of Enterprise COBOL V6.2 wanting to * * use NUMCHECK to detect invalid data in * * their production environment. * **************************************************************** * PROBLEM DESCRIPTION: Some users wish to use NUMCHECK in * * production to detect invalid data. As * * NUMCHECK checks every data item of the * * specified types each time they're * * used, using NUMCHECK can significantly * * decrease performance. * **************************************************************** * RECOMMENDATION: Apply the provided PTF. * **************************************************************** The initial version of NUMCHECK is thorough and guarantees accuracy, but since it checks every possible case, even those that are redundant, it is bad for performance.
Problem conclusion
Temporary fix
Comments
The compiler has a new optimization that analyzes the program for NUMCHECKs that are redundant, because the value is known to be good or bad, or because a value has previously been checked. This increases the performance of NUMCHECK. Because some checks are removed, there will be fewer runtime messages produced by NUMCHECK. Invalid data that is preserved over multiple COBOL statements will still be checked at least once. Using NUMCHECK(ABD), for checks where the data is known invalid at compile time, the compiler removes the check and issues an error message. Using NUMCHECK(MSG), for checks where the data is known invalid at compile time, the compiler does not remove the check and issues a warning message. That check will fail, and produce a message, at runtime. The full analysis required to remove the redundant checks can take a lot of compilation time for larger programs. At OPT(0), a simpler version of the analysis is run, in order to keep compilation time low; at OPT(1|2), a more expensive analysis is run. Programs compiled with NUMCHECK at OPT(1|2) may perform better than programs compiled with NUMCHECK at OPT(0) because the more expensive analysis at OPT(1|2) may remove more redundant checks than the cheaper analysis at OPT(0). Because of this, there may be more runtime messages shown using NUMCHECK(MSG) at lower OPT levels than higher OPT levels. Checks where data is known invalid at compile time may only be able to be detected by the compiler at higher OPT levels, and so there may be more compile time errors, using NUMCHECK(ABD), or messages, using NUMCHECK(MSG), at higher OPT levels.
APAR Information
APAR number
PH08642
Reported component name
ENT COBOL FOR Z
Reported component ID
5655EC600
Reported release
620
Status
CLOSED UR1
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2019-02-15
Closed date
2019-03-27
Last modified date
2019-04-02
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
IGY8RWTU IGYCASMB IGYCCBE IGYCCCRT IGYCCICS IGYCCSRV IGYCDGEN IGYCDIAG IGYCDMAP IGYCEN$0 IGYCEN$1 IGYCEN$2 IGYCEN$3 IGYCEN$4 IGYCEN$5 IGYCEN$8 IGYCEN$D IGYCEN$R IGYCFGEN IGYCFREE IGYCINIT IGYCJA$0 IGYCJA$1 IGYCJA$2 IGYCJA$3 IGYCJA$4 IGYCJA$5 IGYCJA$8 IGYCJA$D IGYCJA$R IGYCLIBH IGYCLIBO IGYCLIBR IGYCLSTR IGYCLVL0 IGYCLVL1 IGYCLVL2 IGYCLVL3 IGYCLVL8 IGYCMALL IGYCOB2 IGYCOB2E IGYCOPI IGYCOPT IGYCOSCN IGYCPGEN IGYCRCTL IGYCRDPR IGYCRDSC IGYCREAL IGYCRWT IGYCSCAN IGYCSIMD IGYCUE$0 IGYCUE$1 IGYCUE$2 IGYCUE$3 IGYCUE$4 IGYCUE$5 IGYCUE$8 IGYCUE$D IGYCUE$R IGYCXREF IGYDRV IGYEQCWI IGYMSGE IGYMSGK IGYMSGT IGYQCBE IGYZQDRV IGYZQENU IGYZQJPN
Fix information
Fixed component name
ENT COBOL FOR Z
Fixed component ID
5655EC600
Applicable component levels
R620 PSY UI62019
UP19/03/29 P F903
R621 PSY UI62020
UP19/03/29 P F903
R622 PSY UI62021
UP19/03/29 P F903
R62H PSY UI62022
UP19/03/29 P F903
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"620","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]
Document Information
Modified date:
12 December 2023