|
CEE3ABD requests that Language Environment terminate
the enclave with an abend. The issuing of the abend can
be either with or without clean-up. There is no return from this service,
nor is there any condition associated with it.
Syntax
>>-CEE3ABD--(--abcode--,--clean-up--)--------------------------><
- abcode (input)
- A fullword integer, no greater than 4095, specifying the abend
code that is issued. Under CICS®,
this fullword integer is converted to EBCDIC.
- clean-up (input)
- Indicates if the abend should result in clean-up of the enclave's
resources. The acceptable values for clean-up are
as follows:
- 0
- Issue the abend without clean-up
- 1
- Issue the abend with normal enclave termination processing
- 2
- Issue the abend with enclave termination processing honoring the
TERMTHDACT runtime option for taking a system dump of the user address
space but suppressing the CEEDUMP
- 3
- Issue the abend with enclave termination processing suppressing
both the CEEDUMP and system dump if requested by the TERMTHDACT runtime
option
- 4
- Issue the abend with enclave termination processing honoring the
TERMTHDACT runtime option for taking a CEEDUMP but suppressing the
system dump
- 5
- Issue the abend with enclave termination processing forcing a
system dump of the user address space and suppressing the CEEDUMP
If an illegal value for clean-up is passed,
the abend is issued without clean-up.
If clean-up is
0, no Language Environment dump
is generated. A system dump, however, is requested when issuing the
abend. Under CICS, a transaction
dump is taken. To get a dump under CMS, specify FILEDEF SYSABEND PRINTER
or FILEDEF SYSUDUMP PRINTER.
If clean-up is
0, Language Environment condition
handling is disabled for the current enclave and termination activities
are not performed. Event handlers are not driven; Debug Tool is not
invoked; user exits are not invoked; and user-written condition handlers
are not invoked.
When clean-up is
1, the abend is processed in the same manner as if it were a non-Language Environment abend.
Its processing is affected by the ABPERC and TRAP options, the filedef
abends percolated in the assembler user exit, and other elements of
the environment related to abend processing. In particular, the condition
handler can intercept the abend and give the application a chance
to handle the abend. If the condition remains unhandled, normal termination
activities are performed: information such as a Language Environment dump
is produced, depending on the setting of the TERMTHDACT option; event
handlers are driven; Debug Tool is
invoked; and user exits are invoked. Assembler user exit settings
control if the application actually terminates with an abend.
When clean-up is
2, it follows the abend processing as when clean-up is
1 except the CEEDUMP is suppressed.
When clean-up is
3, it follows the abend processing as when clean-up is
1, however CEEDUMP and system dumps are both suppressed
When clean-up is
4, it follows the abend processing as when clean-up is
1, however only the system dumps are suppressed.
When clean-up is
5, it follows the abend processing as when clean-up is
1, however forcing a system dump to be taken and suppressing the CEEDUMP.
z/OS® UNIX considerations - In a multithreaded environment, CEE3ABD applies to the enclave.
- When ALL31(ON) is in effect, Language Environment allocates
thread-specific control blocks from the anywhere heap.
Usage notes - Recommendation: Language Environment abend
codes are usually in the range of 4000 (X'FA0') to 4095 (X'FFF').
You should use the range of 0 to 3999 to avoid confusion with Language Environment abend
codes. The value specified for the abend code is passed directly to
the ABEND macro without further verification.
- When TRAP(OFF) is specified, CEE3ABD behaves in a similar manner
to clean-up 0.
- In a non-CICS environment, a system dump of the user address space
is taken only if a SYSMDUMP, SYSUDUMP, or SYSABEND DD card is present.
- Users can look at CEE3AB2 to include user reason codes separately
from abend codes.
Examples - An example of CEE3ABD called by C/C++.
/*Module/File Name: EDC3ABD */
/****************************************************/
/* */
/* Licensed Materials - Property of IBM */
/* */
/* 5688-198 (C) Copyright IBM Corp. 1991, 1995 */
/* All rights reserved */
/* */
/* US Government Users Restricted Rights - Use, */
/* duplication or disclosure restricted by GSA */
/* ADP Schedule Contract with IBM Corp. */
/* */
/****************************************************/
#include <leawi.h>
int main(void) {
_INT4 code, timing;
code = 1234; /* Abend code to issue */
timing = 0;
CEE3ABD(&code,&timing);
}
- An example of CEE3ABD called by COBOL.
CBL LIB,QUOTE
*************************************************
*Module/File Name: IGZT3ABD
**********************************************
** CBL3ABD - Call CEE3ABD to terminate the **
** enclave with an abend **
**********************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. CBL3ABD.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ABDCODE PIC S9(9) BINARY.
01 TIMING PIC S9(9) BINARY.
PROCEDURE DIVISION.
PARA-CBLMGET.
**********************************************
** 3415 is the abend code to be issued, **
** a timing of zero requests an abend **
** without clean-up **
**********************************************
MOVE 3415 TO ABDCODE.
MOVE 0 TO TIMING.
CALL "CEE3ABD" USING ABDCODE , TIMING.
GOBACK.
CBL LIB,QUOTE
*************************************************
*Module/File Name: IGZT3ABD
**********************************************
** CBL3ABD - Call CEE3ABD to terminate the **
** enclave with an abend **
**********************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. CBL3ABD.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ABDCODE PIC S9(9) BINARY.
01 TIMING PIC S9(9) BINARY.
PROCEDURE DIVISION.
PARA-CBLMGET.
**********************************************
** 3415 is the abend code to be issued, **
** a timing of zero requests an abend **
** without clean-up **
**********************************************
MOVE 3415 TO ABDCODE.
MOVE 0 TO TIMING.
CALL "CEE3ABD" USING ABDCODE , TIMING.
GOBACK.
- An example of CEE3ABD called by PL/I.
*PROCESS MACRO;
/***************************************************/
/* */
/* Licensed Materials - Property of IBM */
/* */
/* 5688-198 (C) Copyright IBM Corp. 1993, 1995 */
/* All rights reserved */
/* */
/* US Government Users Restricted Rights - Use, */
/* duplication or disclosure restricted by GSA */
/* ADP Schedule Contract with IBM Corp. */
/* */
/***************************************************/
/*Module/File Name: IBM3ABD
/****************************************************/
/** */
/** Function: CEE3ABD - terminate enclave with an */
/** abend */
/** */
/** In this example, CEE3ABD is called with a */
/** timing value of 1. This requests an abend that */
/** is deferred until clean-up takes place. */
/** */
/****************************************************/
PLI3ABD: PROC OPTIONS(MAIN);
%INCLUDE CEEIBMAW;
%INCLUDE CEEIBMCT;
DCL ABDCODE REAL FIXED BINARY(31,0);
DCL TIMING REAL FIXED BINARY(31,0);
ABDCODE = 3333; /* Choose code to abend with */
TIMING = 1; /* Specify 1, for an abend with */
/* clean-up */
/* Call CEE3ABD to request an abend 3333 with */
/* clean-up */
CALL CEE3ABD ( ABDCODE, TIMING );
END PLI3ABD;
|