IBM Support

PI20481: ABEND 0C4 WHEN DOING A MOVE STATEMENT FROM A DYNAMIC ARRAY OF FIXED TYPES TO A DYNAMIC ARRAY OF STRING TYPES

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Example error output:
    +DFHSR0001 DCMCT2F An abend (code 0C4/AKEA) has occurred at
    offset X'00005D50' in program ERC7AW.
    +DFHME0116 DCMCT2F  224
    (Module:DFHMEME) CICS symptom string for message DFHSR0001 is
    PIDS/5655M1500 LVLS/650 MS/DFHSR0001 RIDS/DFHSRP PTFS/UK48267
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Any user using the EGL move statement between two arrays     *
    * that are of different types and without any "for" argument   *
    * being used.                                                  *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * When a move statement is done, without any annotations (like *
    * for all) between 2 dynamic arrays, if the arrays are         *
    * different types, it still calls the runtime deepcopy         *
    * function which does not perform type conversion. This        *
    * results in bad data being directly copied from the source    *
    * set of records to the target set. If the target set is a     *
    * heap type, is will cause 0C4 abends when the records are     *
    * attempted to be used.                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    

Problem conclusion

  • The fixtest simply checks for the move statement being done
    against 2 array fields and if so, it checks the types to make
    sure they are the same before using the runtime deepcopy
    function. If they are not the same type, then the fix
    automatically adds the "for all" operand to the statement, as
    long as there are no other operands already. This causes the
    statement to be broken up into a loop with assignments and those
    assignments will do proper data conversion if necessary.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI20481

  • Reported component name

    RATL BUS DEV

  • Reported component ID

    5724S5000

  • Reported release

    910

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-06-20

  • Closed date

    2014-12-15

  • Last modified date

    2014-12-15

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

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

Fix information

  • Fixed component name

    RATL BUS DEV

  • Fixed component ID

    5724S5000

Applicable component levels

  • R851 PSY

       UP

  • R901 PSY

       UP

  • R911 PSY

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMQ79","label":"Rational Business Developer"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.1","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
17 October 2021