IBM Support

PH64735: ABEND (CODE 0C4/AKEA) IN MODULE DFHPIJG DURING CONVERT_DATA_TO_JSON FUNCTION

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The customer has created a JSON web service bottom up (DFHLS2JS)
    using a Cobol copybook that contains a NATIONAL field.  This is
    flagged by DFHLS2JS and means that at runtime, DFHPIJG converts
    all the application data it has been given into UTF-16 when
    generating the JSON.
    
    The application data provided by the customer's program for the
    response is also smaller than expected, but DFHLS2JS was run
    with DATA-TRUNCATION=ENABLED, so CICS tolerates this. When CICS
    comes to process a zoned, binary, or packed decimal value, it
    finds there isn't a value, so it handles this by setting
    output_ptr = addr("0") and output_len = 1 in format_zoned,
    format_binary, and format_decimal in DFHJUGEN, respectively.
    
    This is fine when UTF-16 conversion is not taking place. In
    DFHJUGEN's format_data, we simply call json_out() which will
    write out the zero value. However, in this customer's scenario,
    we drive the path that first calls simple_EBCDIC_to_UTF16().
    This attempts to alter key-0 storage, so the TR fails with an
    0C4.
    
    Additional Keyword: KIXREVACC
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All CICS Users.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: A JSON web service created using        *
    *                      DFHLS2JS from a Cobol copybook (bottom  *
    *                      up) that contains a NATIONAL field      *
    *                      may return errors to requests and abend *
    *                      0C4/AKEA in module DFHPIJG, when        *
    *                      defined with DATA-TRUNCATION=ENABLED,   *
    *                      and the called application does not     *
    *                      return all fields on the output         *
    *                      copybook structure.                     *
    ****************************************************************
    A bottom up JSON web service is created using DFHLS2JS, to
    create the web service from a Cobol copybook. If the copybook
    defines NATIONAL fields, the output/response fields will be
    converted to UTF-16. When DATA-TRUNCATION=ENABLED has been set
    for the created web service, it allows null or empty fields
    to be returned into the output Cobol structure from the called
    application, allowing the web service to put a 0 value into
    these fields in the returned JSON structure.
    
    In the case where the output should be translated to UT-16, but
    the response structure has null fields allowed due to
    DATA-TRUNCATION=ENABLED may result in the error. This is due to
    the value used to replace the null field with 0. This can
    result on the address of the output value being within
    executable code. As such the translate will fail and abend
    S0C4-4 due to a storage protection violation. This then results
    in CICS abend 0C4/AKEA in DFHPIJG:
    
    DFHPI0001 IYCKZCCE An abend (code 0C4/AKEA) has occurred at
    offset X'000079C0' in module DFHPIJG.
    DFHME0116 IYCKZCCE (Module:DFHMEME) CICS symptom string for
    message DFHPI0001 is PIDS/5655YA100 LVLS/740 MS/DFHPI0001
    RIDS/DFHPIJG PTFS/UI98904 AB/S00C4 AB/UAKEA ADRS/
    
    This results in the web service request failing with HTML
    response body e.g.:
    
    <html><h1>Internal Server Error</h1><h2>CICS TS: Unhandled
    Pipeline Error</h2><h3>Release: 740</h3></html>
    

Problem conclusion

  • DFHPIJG logic has been corrected to use accessible storage for
    the 0 null values returned by the called application, when
    DATA-TRUNCATION is enabled and NATIONAL fields are within the
    Cobol copybook.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH64735

  • Reported component name

    CICS TS Z/OS V6

  • Reported component ID

    5655YA100

  • Reported release

    400

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2025-01-08

  • Closed date

    2025-03-06

  • Last modified date

    2025-04-02

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

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

    UO02357 UO02358

Modules/Macros

  • DFHPIJG
    

Fix information

  • Fixed component name

    CICS TS Z/OS V6

  • Fixed component ID

    5655YA100

Applicable component levels

  • R400 PSY UO02358

       UP25/03/07 P F503

  • R500 PSY UO02357

       UP25/03/11 P F503

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":"BU048","label":"IBM Software"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.1","Line of Business":{"code":"LOB70","label":"Z TPS"}}]

Document Information

Modified date:
02 April 2025