1 | procedure | Input | RAGE_ENTRY |
2 | fc | Output | FEEDBACK |
The Register Activation Group Exit Procedure (CEE4RAGE) API is used to register procedures that are called when an activation group ends. Activation group exit procedures, registered by CEE4RAGE, are called after HLL user exit procedures, but before any system level activation group resource clean up takes place. The procedures are called in the reverse order of their registration. If a procedure fails, subsequent procedures will not be called.
There is no practical limit to the number of procedures that can be registered. If the same procedure is registered multiple times, it is called multiple times.
Note: This API cannot be called from code running in the default activation group.
Note: The CEE4RAGE API and the Register Activation Group Exit Procedure (CEE4RAGE2) API perform the same function. The CEE4RAGE API takes as its first parameter a procedure that takes a 32 bit activation group mark as a parameter. The CEE4RAGE2 API takes as its first parameter a procedure that takes a 64 bit activation group mark as a parameter.
None.
CEE0000 | The API completed successfully |
Severity: 00 | |
CEE0257 | The procedure provided for &1 is not valid |
Severity: 30 | |
CEE3101 | &1 cannot be called in the default activation group |
Severity: 30 | |
CEE3103 | Cannot allocate storage in &1 |
Severity: 30 | |
CEE3111 | &1 cannot be called at this time |
Severity: 30 | |
CEE9902 | Unexpected user error occurred in &1 |
Severity: 30 |
The message CEE0257 occurs if procedure is not a procedure pointer, or if the procedure identified by procedure is not in either the current activation group or the default activation group.
Once the activation group exit procedures start to run, the CEE4RAGE API cannot be called.
An activation group exit procedure is called when the activation group is ended. The procedure is coded as activation_group_exit with the following parameters.
1 | ag_mark | Input | UINT4 |
2 | reason | Input | UINT4 |
3 | result_code | I/O | UINT4 |
4 | user_rc | I/O | UINT4 |
None.
0 | Do not change the action. |
10 | Do not perform any pending error requests. This is used if a previous exit procedure specified a result code of 20 and a subsequent procedure recovers from the error. The message CEE9901, indicating an application error, is not sent. |
20 | Send message CEE9901 to the caller of the control boundary after the remaining exit procedures are called. |
21 | Send message CEE9901 to the caller of the control boundary. The remaining exit procedures registered by the CEE4RAGE API are not called. This is used if an unrecoverable error occurs in the exit procedure requesting this action. |
Note: The application error message CEE9901 is sent after the activation group resources of the system are taken down and the activation group has ended.
Common Reason Codes for Ending Activation Groups and Call Stack Entries.
Bit | Description |
---|---|
Bits 0 | Reserved |
Bits 1 | Call stack entry is canceled because an exception message was sent. |
Bits 2-15 | Reserved |
Bit 16 | 0 - normal end 1 - abnormal end |
Bit 17 | Activation Group is ending. |
Bit 18 | Initiated by the Reclaim Activation Group (RCLACTGRP) command. |
Bit 19 | Initiated as a result of the job ending. |
Bit 20 | Initiated by an exit verb, for example exit() in C, or the CEETREC API. |
Bit 21 | Initiated by an unhandled function check. |
Bit 22 | Call stack entry canceled because of an out-of-scope jump, for example longjmp() in C. |
Bits 23-31 | Reserved (0) |
Top | ILE CEE APIs | APIs by category |