After the earlier topic on obtaining a z/VSE system dump from an LE application failure, its worth discussing
the same functionality, but in a more CICS specific direction. It is possible to use the CICS/TS dump CEMT
commands to get CICS to produce a system dump for specific CICS and LE z/VSE abend codes. There are
times when these are useful and can be a good tool for analysing a failure. But with the more technically
difficult LE abends that may occur they can be taken by CICS too late and be missing vital information
that is needed for a complete analysis.
Since the elimination of 4083 abends under CICS (via APAR PQ15103 in LE/VSE 1.4.0) the main abend codes
that may now occur under CICS that are application failure related are 4038 or 4088 abends. With the
4038 abend the majority of times there will be related messages issued in the CICS output log that
indicate what language run-time issue occurred which can then be corrected and the application
re-executed. With a 4088 abend there will be no such messages. This means that identifying the
language issue or application problem that is responsible for the abend can be a lot more difficult
and involved. Combine this situation with no LE dump produced and most times only a CICS transaction dump
to use for analysis.
Often the most useful dumps for application analysis are those taken as close as possible (with respect
to time) to when the failure occurred. This minimises the modification of important storage areas by
internal abend processing meaning data available in the dump is more reflective of what happened at the
time of the abend rather than partially descriptive of the abend situation and what processing occurred
To aid in gathering both an early and system dump for these LE abends under CICS, a modified version
of the standard CEEUOPT is provided that can be included into applications that are experiencing such
abends under CICS. This modified version is CEEXUOPT.Z and it is available in your LE z/VSE installation
library - usually PRD2.SCEEBASE.
To use this member you need to tailor it to fit your applications specific abend situation. This will
mean changing the ABPERC value to one that fits the abend being experienced by your application. It is
very important that none of the other settings are changed unless you have been instructed to do so by
IBM service personnel. Once you have set the ABPERC option to what you need you and set the target output
library (marked as "yourlib.sublib") you can then tailor the other JCL statements as required for your
specific z/VSE system. Then submit for execution. Once complete a CEEUOPT.OBJ member will be created in
the library you specified.
Next we need to included this special "debugging" version of the CEEUOPT.OBJ into the application that
is experiencing the abend under CICS. To do this you need to at least re-link (a re-complile can be done
but is not needed) the application with the statement "INCLUDE CEEUOPT" as a linkedit JCL directive.
Ensure that the library you stored the debugging version is ahead of the LE z/VSE installation library
(PRD2.SCEEBASE) in any LIBDEF object search chain otherwise the default CEEUOPT.OBJ will be included
and no system dump will be produced. If you use the linkeditor MAP directive you can review the output
and ensure that the CEEUOPT being included was indeed taken from the correct library.
Now that the application has been re-linkedited with the customized version of the debugging CEEUOPT
we need to ensure CICS uses the updated version. You can accomplish this any way you see fit. One
simple way is to use the CEMT S PROG command with the PHASEIN option. If no previous CEEUOPT had
been included in your application you should see an increase in the size reported by CICS when the
CEMT command is complete.
Now you are ready to run the application again. There is no need to set any CICS dump setting to
capture a system dump. Instead LE z/VSE will perform this function when the specified LE abend
occurs again. The combination of options set in the debugging version of the CEEUOPT gives special
instructions to the LE CICS abend interface to produce a z/VSE system dump when the abend specified
on the ABPERC option matches the abend being issued. This allows LE to take the system dump early
in the abend processing stage to minimise the changes to storage from when the abend occurred.
Using the CICS functions would still produce a system dump however this would be taken by CICS
long after both LE and CICS have finished their respective abend processing.
To control the dump produced you can set in your CICS JCL the // OPTION statements that most reflect
where and what level of information you want to be included in the dump produced.
For those applications where it is not possible to re-link with the debugging CEEUOPT version, another
option is available to get a system dump taken early for LE abend codes. Instead you can use the
supplied CLER CICS transaction to dynamically set the same options as included in the CEEXUOPT.Z
member in the CICS system your application is experiencing the abend. Set the ABPERC abend code
just as you would in the CEEXUOPT.Z member and then also change each of the other listed run-time
options from the CEEXUOPT.Z member in the CLER screen. When complete make sure you save the
After you have done that you can run the ROPC CICS transaction to get a console report of the current
LE CICS run-time options. You should see all your over-rides set as per the same run-time options
shown in the CEEXUOPT.Z member.
Once everything is correct you can run the abending application and if the matching abend occurs again
LE will request a z/VSE system dump to be produced.
You may notice in the LE z/VSE documentation that it states the ABPERC run-time option is not
supported under CICS. So why use it here?
This is true and is still correct even when using the CEEXUOPT or the CLER run-time option
transaction. In this situation the ABPERC run-time options behaviour is not used or
supported under CICS. Instead the ABPERC option is used simply as a method of telling LE what
abend code to "watch" for and when a match occurs when the other run-time option settings
have also been made to take a system dump.