z/VSE System Dumps and LE z/VSE Applications
LEzVSE 0600025UDN Visits (5031)
For my final 2014 blog entry and after recieving a few questions over the year on this subject I thought it would be a good idea to define what options are available for those programmers (or system programmers) that want to get a system dump produced when an LE z/VSE application failure occurs.
LE z/VSE's condition handling is enabled by default and is a requirement for normal application execution. By using the various different options available to the programmer in minimising the handling of failures by LE z/VSE means careful review of each one's varing different side-effects before deciding on which to implement. These side-effects are documented here :
To get a z/VSE system dump from an LE z/VSE application failure the first and safest method to use is the TER(UADUMP,,) option setting. This will instruct LE z/VSE to produce its normal formatted dump (which will contain useful addresses and contents of program-related fields when reviewing the system dump) and then to first attempt to re-execute the failing instruction after disabling internally all condition handling. If it is not possible to re-execute the instruction that caused the failure then LE z/VSE will instead issue a z/VSE JDUMP macro to force a system dump to be produced.
Under CICS TER(DUMP) should be used as using UADUMP will force a 4039 CICS abend to be issued by LE z/VSE.
If for some reason the TER(UADUMP,,) option does not provide you with the system dump that you are after the next option to try is TRAP(ON,MIN), Make sure you carefully review the side-effects related to using this option before using it - especially on a production application that may be updating critical VSAM or Database files on z/VSE. The TRAP(ON,MIN) option will effectively perform the same processing as the TER(UADUMP,,) option except that no LE z/VSE formatted dump will be producedt. Instead, when a failure is trapped, LE will immediately disable its own condition handling and then attempt to re-execute the instruction that was responsible for the failure. If this is not possible a JDUMP macro will instead be issued to produce a z/VSE System dump.
Note that this option is not available under CICS.
There is one other method of essentially by-passing any LE z/VSE condition handling but its not as "general" as the two above as it requires you to know what sort of failure your application has before setting the run-time option to by-pass that failure. If this sounds like something that you would like to use then have a look at the ABPERC run-time option in the LE z/VSE Customisation Guide.
Carefully the read all the side-effects documented before deciding if your application is a good fit for this option or that should the worse happen that you have a good backup available to revert everything back if required.
With each of the above options, you can control the content and destination of the z/VSE system dump using the // OPTION JCL card in your application jobstream.
I would like to wish everyone a very merry Christmas for 2014 and a Happy and safe New Year.