IBM Support

PH35434: 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.3 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

    PH35434

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    630

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-03-17

  • Closed date

    2021-03-23

  • Last modified date

    2021-04-02

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

    PH34020

  • 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 IGYCLIBR IGYCLSTR IGYCLVL0 IGYCLVL1 IGYCLVL2
    IGYCLVL3 IGYCLVL8 IGYCMALL 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  IGYQSPLT IGYZQEN6 IGYZQENU IGYZQJP6
    IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R630 PSY UI74566

       UP21/03/30 P F103

  • R631 PSY UI74567

       UP21/03/30 P F103

  • R632 PSY UI74568

       UP21/03/30 P F103

  • R63H PSY UI74569

       UP21/03/30 P F103

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":"630","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
12 December 2023