IBM Support

PM42022: MCH1202 COBOL runtime error from EGL source with ForEach loop

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Product name: IBM? Rational? Business Developer
    Program Version    :  7.5.1.5
    Operating System: IBM i (i5/OS / OS/400)
    Description.
    When the EGL source includes a ForEach loop the generated COBOL
    code at runtime produces an unmonitored message, MCH1202
    ('Decimal data error'), and then the application will terminate.
    
    Documentation for the MCH1202 (Decimal data error ) from
    i/Series indicates this is normally thrown where a field is not
    initialized or when the program references or attempts to modify
    a field,data element etc.
    
    The defect then concerns the erroneous handling of the foreach
    loop which when trying to move data could result in an attempt
    to move in corrupted data to the respective fields.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The problem occurred when a foreach statement was used with
    an open statement that had an into clause using decimal
    fields. When a sql return code 100 (no more records) was
    found and no previous records were found, then the decimal
    field had not been initialized to a valid decimal value.
    This caused the machine check.
    An additional symptom of this problem would have been that
    the value in an into clause was being being updated, even
    when there was no record read (when last record in sql
    result set was already processed). Normally this wouldn't
    affect the program, unless the user had other code that went
    and changed the value in the variable being used by the into
    clause.
    

Problem conclusion

  • The code has been modified to additionally check that were
    are not using a 100 status code along with the foreach loop
    mode when moving the data.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM42022

  • Reported component name

    RBD EGL FOR COB

  • Reported component ID

    5724S5001

  • Reported release

    751

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-06-20

  • Closed date

    2012-03-15

  • Last modified date

    2012-03-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

    RBD EGL FOR COB

  • Fixed component ID

    5724S5001

Applicable component levels

  • R751 PSN

       UP

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

Document Information

Modified date:
27 October 2021