A fix is available
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:
APAR is sysrouted TO one or more of the following:
UK97509
Modules/Macros
DFHPGCR
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