IBM Support

PH34020: ARCH(12/13) PERFORMANCE WORSE THAN ARCH(11) FROM MIXED-LANGUAGE APPLICATION'S TRUNCATION & DECIMAL OVERFLOW

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The generated code for the MOVE converts the BINARY value to
    PACKED-DECIMAL and then converts to USAGE DISPLAY. At
    ARCH(12|13), the instruction used to convert from BINARY to
    PACKED-DECIMAL generates an overflow exception whenever it
    truncates. In a pure COBOL application, the overflow exception
    is suppressed at the hardware level, but in a mixed-language
    application, other programs can set a hardware flag that causes
    overflow exceptions to be generated. The overflow is handled by
    LE, which silently suppresses the overflow in COBOL programs
    (as COBOL programs silently truncate on overflow), so the
    behaviour of the program isn't changed, but the overhead
    required in LE handling the overflow has an impact on the
    program's performance.
    
    
    Users Affected:  Users of Enterprise COBOL 6.x compiling
    programs at ARCH(12|13) that are part of an application with
    C++, PL/I, or JAVA programs, MOVE from a BINARY sender to a
    USAGE DISPLAY receiver where the number of digits in the value
    being moved exceeds the picture clause of the receiver
    

Local fix

  • Compile at ARCH(11)
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.2 compiling      *
    *                 programs at ARCH(12|13) that are part of an  *
    *                 application with C++, PL/I, or JAVA          *
    *                 programs, MOVE from a BINARY sender to a     *
    *                 USAGE DISPLAY receiver where the number of   *
    *                 digits in the value being moved exceeds the  *
    *                 picture clause of the receiver.              *
    ****************************************************************
    * PROBLEM DESCRIPTION: Performance is worse at ARCH(12|13)     *
    *                      than ARCH(11).                          *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    The generated code for the MOVE converts the BINARY value to
    PACKED-DECIMAL and then converts to USAGE DISPLAY. At
    ARCH(12|13), the instruction used to convert from BINARY to
    PACKED-DECIMAL generates an overflow exception whenever it
    truncates. In a pure COBOL application, the overflow exception
    is suppressed at the hardware level, but in a mixed-language
    application, other programs can set a hardware flag that causes
    overflow exceptions to be generated. The overflow is handled by
    LE, which silently suppresses the overflow in COBOL programs
    (as COBOL programs silently truncate on overflow), so the
    behaviour of the program isn't changed, but the overhead
    required in LE handling the overflow has an impact on the
    program's performance.
    

Problem conclusion

  • The compiler was fixed to delay truncation until the conversion
    from PACKED-DECIMAL to USAGE DISPLAY, done with an instruction
    that doesn't produce an overflow exception.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH34020

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    620

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-02-01

  • Closed date

    2021-02-18

  • Last modified date

    2021-03-17

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PH35434

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 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 UI74024

       UP21/02/23 P F102

  • R621 PSY UI74025

       UP21/02/23 P F102

  • R622 PSY UI74026

       UP21/02/23 P F102

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"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"620","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
12 December 2023