IBM Support

PM89417: CICS RETURNS ABOVE THE LINE ADDRESS ON GET CONTAINER SET COMMAND FOR AMODE(24) PROGRAM WITH DATALOCATION(BELOW)

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Your application abends with an 0C4 because an AMODE(24)
    program was trying to access a 31 bit address. This storage was
    returned to the application by CICS on a GET CONTAINER SET
    command.
    
    The problem happens when a AMODE(24) program links to an
    AMODE(31) bit program. In this case, both programs do a PUT
    CONTAINER/GET CONTAINER SET. If the container size does not
    change, the DFHPGCR does not do a freemain/getmain for the
    storage for the AMODE(24) program. Because it is not doing
    this, the AMODE(24) program is using the same container that
    was setup by the AMODE(31) container. This causes CICS to
    return a 31 bit addresss to a amode(24) program even though the
    program has defined datalocation(below). This leads to a
    program check when it tries to access the 31 bit storage.
    
    Additional Symptom(s) Search Keyword(s): KIXREVRJL
    

Local fix

  • Use different size lengths for the containers so DFHPGCR is
    forced to getmain/freemain storage rather than reuse.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All CICS users                               *
    ****************************************************************
    * PROBLEM DESCRIPTION: Application abends with 0C4 because an  *
    *                      AMODE(24) program is trying to access   *
    *                      the above line address which is         *
    *                      returned by CICS on GET CONTAINER SET   *
    *                      command.                                *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    An AMODE(24) program links to an AMODE(31) program. Both
    programs do PUT CONTAINER and GET CONTAINER SET with the same
    container size.
    When AMODE(31) program does GET CONTAINER SET FLENGTH(13),
    DFHPGCR allocates the above line storage and copies the data
    from container into this area. Now SET size is 13.
    Then AMODE(24) program does GET CONTAINER SET FLENGTH(13), as
    the container size is the same as the SET size, DFHPGCR does
    not freemain and getmain for this storage, but just uses the
    previous one created in the AMODE(31) program, which is above
    the line.
    Then GET CONTAINER SET command returns a 31 bit address even
    though the program is defined as datalocation(below). This
    leads to an 0C4 abend when it tries to access the 31 bit
    storage.
    
    Additional Keywords: S0C4 abendS0C4 abend0C4
    

Problem conclusion

  • DFHPGCR has been changed to do freemain and getmain for the SET
    storage on GET CONTAINER SET command when DATALOCATION(BELOW)
    is associated with the current program.
    
    CICS Transaction Server for z/OS Version 5 Release
    Application Programming Reference (SC34-2845-02),Chapter 'CICS
    API Commands', command 'GET CONTAINER (CHANNEL)', Option
    SET(ptr-ref) will be updated to add following description after
    the first sentence 'Specifies a data area in which the address
    of the retrieved data is returned.':
    
    If the application program that issues the GET CONTAINER command
    is defined with DATALOCATION(ANY), the address of the data can
    be above or below the 16 MB line.
    If the application program is defined with DATALOCATION(BELOW),
    the address of the data is below the 16 MB line.
    If TASKDATAKEY (USER) is specified for the executing
    transaction, the data returned is in user key; otherwise it is
    in CICS key.
    

Temporary fix

  • FIX AVAILABLE BY PTF ONLY
    

Comments

APAR Information

  • APAR number

    PM89417

  • Reported component name

    CICS TS Z/OS V5

  • Reported component ID

    5655Y0400

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-05-21

  • Closed date

    2013-09-10

  • Last modified date

    2015-03-04

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

    PM89207

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

    UK97509

Modules/Macros

  • DFHPGCR
    

Publications Referenced
SC34284502    

Fix information

  • Fixed component name

    CICS TS Z/OS V5

  • Fixed component ID

    5655Y0400

Applicable component levels

  • R800 PSY UK97509

       UP13/09/21 P F309

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":"SSGMGV","label":"CICS Transaction Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
04 March 2015