Register Activation Group Exit Procedure (CEE4RAGE) API
Required Parameter:
1 | procedure | Input | RAGE_ENTRY |
Omissible Parameter:
2 | fc | Output | FEEDBACK |
Service Program Name: QLEAWI
Default Public Authority: *USE
Threadsafe: Yes
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: 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.
Authorities and Locks
None.
Required Parameter
- procedure (input)
- An entry variable or constant for the procedure that is to be called at activation group termination.
Omissible Parameter
- fc (output)
- A 12-byte feedback code.
Feedback Codes and Conditions
CEE0000 | The API completed successfully |
Severity: 00 | |
CEE0257 | The procedure provided for &1 is not valid |
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 |
Usage Notes
-
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.
Interface to the Activation Group Exit Procedure
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.
Required Parameter Group:
1 | ag_mark | Input | UINT4 |
2 | reason | Input | UINT4 |
3 | result_code | I/O | UINT4 |
4 | user_rc | I/O | UINT4 |
Authorities and Locks
None.
Required Parameter Group
- ag_mark (input)
- The activation group mark that uniquely identifies the activation group within the job.
- reason (input)
- The reason for the activation group being ended. See Common Reason Codes for Ending Activation Groups and Call Stack Entries for a description of the reason codes.
- result_code (I/O)
- The value passed as input is the action to be taken as specified by a previous exit procedure. The value passed to the first exit procedure is 0. The output value can specify an action to be taken. If the result code does not match any of the following actions, the output value is ignored and the previous action remains unchanged.
-
- No action
-
0 Do not change the action. - Recover
-
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. - Failure
-
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.
- user_rc (I/O)
- The value passed as input is the user_rc returned as output from the previous exit procedure. The value passed to the first exit procedure is 0.
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) |
API introduced: V2R3
[ Back to top | ILE CEE APIs | APIs by category ]