A fix is available
APAR status
Closed as program error.
Error description
Abend0C4 in DFHMQTRU when using a CSQCAPX crossing exit and that exit makes MQ API calls. The abend0C4 happens just after the EXEC CICS LINK to CSQCAPX returns back to DFHMQTRU. If trace is active the last trace entry prior to the abend0C4 *EXC* trace entry is EIP EXIT LINK. The RET address on that trace entry will be at +X'2794' into DFHMQTRU (UK27574). This is right after the call to DFHMQPRH. If you have the corresponding EIP ENTRY LINK trace, the RET on that will be pointing to +X'2E82' into DFHMQTRU. This the point where DFHMQTRU does the EXEC CICS LINK to CSQCAPX. The abend0C4 can occur in different spots. One spot is at +X'26D0' on a 58207024 because Reg7 is bad.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: ALL * **************************************************************** * PROBLEM DESCRIPTION: DFHMQTRU abends when using the API * * crossing exit CSQCAPX. * **************************************************************** * RECOMMENDATION: * **************************************************************** Customers report abends occurring in the MQ TRUE (DFHMQTRU) occurring during the execution of transactions that utilize the MQ API. These abends occur at various points within DFHMQTRU. In all cases the use of the API Crossing Exit, CSQCAPX, was evident. The problem was shown to be an error in the code, within DFHMQTRU, that which handled the calling of the API exit via an EXEC CICS LINK. It is possible for the MQ TRUE to be called recursively should the API exit itself make MQ API calls. To protect the contents of its working storage the TRUE adjust an address in an MQLOT, the new value addressing a "Second Level" working storage area. A section at the top of each of these areas is reserved as a register savearea. When the link to the API exit completes the adjustment is undone and the address in the MQLOT is returned to its original value. The EXEC CICS LINK call requires a savearea and one is provided by setting R13 to the adjusted working storage value. However this action is incorrect When the MQ TRUE is re-entered to process an MQ API call issued by the API exit the EXEC CICS LINK register save area is corrupted. The incoming MQ request requires the TRUE to call MQ interface code. This call requires a savearea and one is provided again by setting R13 to the address of the current working storage. As this is the same location where the EXEC CICS LINK registers are stored, they are now overwritten. When the EXEC CICS LINK to the API exit completes invalid data is restored into the registers, leading to abends at unpredictable locations.
Problem conclusion
The setting up of the savearea address for the EXEC CICS LINK, to the API exit has been amended. DFHMQTRU will now use the working storage address before the adjustment carried out to handle recursive calls.
Temporary fix
FIX AVAILABLE BY PTF ONLY
Comments
APAR Information
APAR number
PK66562
Reported component name
CICSTS V3 Z/OS
Reported component ID
5655M1500
Reported release
500
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2008-05-23
Closed date
2008-06-30
Last modified date
2008-08-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK37779
Modules/Macros
DFHMQTRU
Fix information
Fixed component name
CICSTS V3 Z/OS
Fixed component ID
5655M1500
Applicable component levels
R500 PSY UK37779
UP08/07/03 P F807
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":"3.2","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":"3.2","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
01 August 2008