434 lines
11 KiB
HTML
434 lines
11 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
|
|
<title>Register Activation Group Exit Procedure (CEE4RAGE) API</title>
|
|
<!-- Begin Header Records ========================================== -->
|
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
|
<!-- US Government Users Restricted Rights -->
|
|
<!-- Use, duplication or disclosure restricted by -->
|
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
|
<!-- Change History: -->
|
|
<!-- YYMMDD USERID Change description -->
|
|
<!-- ILE2A SCRIPT A converted by B2H R4.1 (346) (CMS) by NLJONES at -->
|
|
<!-- RCHVMX on 25 Feb 1999 at 10:45:20 -->
|
|
<!-- Edited by Kersten Oct 2001 -->
|
|
<!-- 030127 AARONA: V5R3 Support 64-bit marks, XPF DCR 99214 -->
|
|
<!-- End Header Records -->
|
|
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
|
</head>
|
|
<body>
|
|
<!--Java sync-link-->
|
|
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
|
|
</script>
|
|
|
|
<a name="Top_Of_Page"></a>
|
|
|
|
<h2>Register Activation Group Exit Procedure (CEE4RAGE) API</h2>
|
|
|
|
<div class="box" style="width: 60%;">
|
|
<br>
|
|
Required Parameter:<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
<table width="100%">
|
|
|
|
<tr>
|
|
<td align="center" valign="TOP" width="10%">1</td>
|
|
<td align="LEFT" valign="TOP" width="30%">procedure</td>
|
|
<td align="LEFT" valign="TOP" width="30%">Input</td>
|
|
<td align="LEFT" valign="TOP" width="30%">RAGE_ENTRY</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
Omissible Parameter:<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
<table width="100%">
|
|
|
|
<tr>
|
|
<td align="center" valign="TOP" width="10%">2</td>
|
|
<td align="LEFT" valign="TOP" width="30%">fc</td>
|
|
<td align="LEFT" valign="TOP" width="30%">Output</td>
|
|
<td align="LEFT" valign="TOP" width="30%">FEEDBACK</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
Service Program Name: QLEAWI<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
Default Public Authority: *USE<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
Threadsafe: Yes<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
</div>
|
|
|
|
<p>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.</p>
|
|
|
|
<p>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.</p>
|
|
|
|
<p><strong>Note:</strong> This API cannot be called from code running in the
|
|
default activation group.</p>
|
|
|
|
<p><strong>Note:</strong> The CEE4RAGE API and the <a href="CEE4RAGE2.htm">Register Activation Group Exit Procedure</a> (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.</p>
|
|
|
|
<br>
|
|
|
|
<h3>Authorities and Locks</h3>
|
|
|
|
<p>None.</p>
|
|
|
|
<br>
|
|
|
|
<h3>Required Parameter</h3>
|
|
|
|
<dl>
|
|
<dt><strong>procedure (input)</strong></dt>
|
|
|
|
<dd>An entry variable or constant for the procedure that is to be called at
|
|
activation group termination.</dd>
|
|
</dl>
|
|
|
|
<br>
|
|
<h3>Omissible Parameter</h3>
|
|
|
|
<dl>
|
|
<dt><strong>fc (output)</strong></dt>
|
|
|
|
<dd>A 12-byte feedback code.</dd>
|
|
</dl>
|
|
|
|
<br>
|
|
<h3>Feedback Codes and Conditions</h3>
|
|
|
|
<table cellpadding="3">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">CEE0000</td>
|
|
<td align="LEFT" valign="TOP">The API completed successfully</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Severity: 00</td>
|
|
<td align="LEFT" valign="TOP"> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>CEE0257</td>
|
|
<td align="LEFT" valign="TOP">The procedure provided for &1 is not
|
|
valid</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Severity: 30</td>
|
|
<td align="LEFT" valign="TOP"> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">CEE3101</td>
|
|
<td align="LEFT" valign="TOP">&1 cannot be called in the default activation
|
|
group</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Severity: 30</td>
|
|
<td align="LEFT" valign="TOP"> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>CEE3103</td>
|
|
<td align="LEFT" valign="TOP">Cannot allocate storage in &1</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Severity: 30</td>
|
|
<td align="LEFT" valign="TOP"> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>CEE3111</td>
|
|
<td align="LEFT" valign="TOP">&1 cannot be called at this time</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Severity: 30</td>
|
|
<td align="LEFT" valign="TOP"> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>CEE9902</td>
|
|
<td align="LEFT" valign="TOP">Unexpected user error occurred in &1</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Severity: 30</td>
|
|
<td align="LEFT" valign="TOP"> </td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<h3>Usage Notes</h3>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The message CEE0257 occurs if <em>procedure</em> is not a procedure pointer,
|
|
or if the procedure identified by <em>procedure</em> is not in either the
|
|
current activation group or the default activation group.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Once the activation group exit procedures start to run, the CEE4RAGE API
|
|
cannot be called.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<br>
|
|
<h3>Interface to the Activation Group Exit Procedure</h3>
|
|
|
|
<p>An activation group exit procedure is called when the activation group is
|
|
ended. The procedure is coded as <strong>activation_group_exit</strong> with
|
|
the following parameters.</p>
|
|
|
|
<br>
|
|
<div class="box" style="width: 60%;">
|
|
<br>
|
|
Required Parameter Group:<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
<table width="100%">
|
|
|
|
<tr>
|
|
<td align="center" valign="TOP" width="10%">1</td>
|
|
<td align="LEFT" valign="TOP" width="30%">ag_mark</td>
|
|
<td align="LEFT" valign="TOP" width="30%">Input</td>
|
|
<td align="LEFT" valign="TOP" width="30%">UINT4</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="TOP">2</td>
|
|
<td align="LEFT" valign="TOP">reason</td>
|
|
<td align="LEFT" valign="TOP">Input</td>
|
|
<td align="LEFT" valign="TOP">UINT4</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="TOP">3</td>
|
|
<td align="LEFT" valign="TOP">result_code</td>
|
|
<td align="LEFT" valign="TOP">I/O</td>
|
|
<td align="LEFT" valign="TOP">UINT4</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="TOP">4</td>
|
|
<td align="LEFT" valign="TOP">user_rc</td>
|
|
<td align="LEFT" valign="TOP">I/O</td>
|
|
<td align="LEFT" valign="TOP">UINT4</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
</div>
|
|
|
|
<!-- Please NOTE: DO NOT DELETE THIS SECTION if this API has no authorities and locks. -->
|
|
<!-- Instead, use the commented out coding below to indicate NONE. -->
|
|
<h3>Authorities and Locks</h3>
|
|
|
|
<!-- Use this if there are no authorities and locks. -->
|
|
<p>None.</p>
|
|
|
|
<br>
|
|
|
|
<h3>Required Parameter Group</h3>
|
|
|
|
<dl>
|
|
<dt><strong>ag_mark (input)</strong></dt>
|
|
|
|
<dd>The activation group mark that uniquely identifies the activation group
|
|
within the job.</dd>
|
|
|
|
<dd> </dd>
|
|
|
|
<dt><strong>reason (input)</strong></dt>
|
|
|
|
<dd>The reason for the activation group being ended. See <a href=
|
|
"#TBLCNLR">Common Reason Codes for Ending Activation Groups and Call Stack
|
|
Entries</a> for a description of the reason codes.</dd>
|
|
|
|
<dd> </dd>
|
|
|
|
<dt><strong>result_code (I/O)</strong></dt>
|
|
|
|
<dd>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.</dd>
|
|
|
|
<dd>
|
|
<dl>
|
|
<dt><strong>No action</strong></dt>
|
|
|
|
<dd>
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>0</em></td>
|
|
<td align="left" valign="top">Do not change the action.</td>
|
|
</tr>
|
|
</table>
|
|
</dd>
|
|
|
|
<dt><strong>Recover</strong></dt>
|
|
|
|
<dd>
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>10</em></td>
|
|
<td align="left" valign="top">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.</td>
|
|
</tr>
|
|
</table>
|
|
</dd>
|
|
|
|
<dt><strong>Failure</strong></dt>
|
|
|
|
<dd>
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>20</em></td>
|
|
<td align="left" valign="top">Send message CEE9901 to the caller of the control
|
|
boundary after the remaining exit procedures are called.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>21</em></td>
|
|
<td align="left" valign="top">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.</td>
|
|
</tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p><strong>Note:</strong> The application error message CEE9901 is sent after
|
|
the activation group resources of the system are taken down and the activation
|
|
group has ended.</p>
|
|
</dd>
|
|
|
|
<dd> </dd>
|
|
|
|
<dt><strong>user_rc (I/O)</strong></dt>
|
|
|
|
<dd>The value passed as input is the <em>user_rc</em> returned as output from
|
|
the previous exit procedure. The value passed to the first exit procedure is
|
|
0.</dd>
|
|
</dl>
|
|
|
|
<br>
|
|
<p><strong><a name="TBLCNLR">Common Reason Codes for Ending Activation Groups
|
|
and Call Stack Entries.</a></strong></p>
|
|
|
|
<table border cellpadding="3">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<th align="LEFT" valign="TOP">Bit</th>
|
|
<th align="LEFT" valign="TOP">Description</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Bits 0</td>
|
|
<td align="LEFT" valign="TOP">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Bits 1</td>
|
|
<td align="LEFT" valign="TOP">Call stack entry is canceled because an exception
|
|
message was sent.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Bits 2-15</td>
|
|
<td align="LEFT" valign="TOP">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Bit 16</td>
|
|
<td align="LEFT" valign="TOP">0 - normal end 1 - abnormal end</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Bit 17</td>
|
|
<td align="LEFT" valign="TOP">Activation Group is ending.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Bit 18</td>
|
|
<td align="LEFT" valign="TOP">Initiated by the Reclaim Activation Group
|
|
(RCLACTGRP) command.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Bit 19</td>
|
|
<td align="LEFT" valign="TOP">Initiated as a result of the job ending.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Bit 20</td>
|
|
<td align="LEFT" valign="TOP">Initiated by an exit verb, for example exit() in
|
|
C, or the CEETREC API.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Bit 21</td>
|
|
<td align="LEFT" valign="TOP">Initiated by an unhandled function check.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Bit 22</td>
|
|
<td align="LEFT" valign="TOP">Call stack entry canceled because of an
|
|
out-of-scope jump, for example <em>longjmp()</em> in C.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="LEFT" valign="TOP">Bits 23-31</td>
|
|
<td align="LEFT" valign="TOP">Reserved (0)</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
|
|
|
|
<hr>
|
|
API introduced: V2R3
|
|
|
|
<hr>
|
|
<center>
|
|
<table cellpadding="2" cellspacing="2">
|
|
<tr align="center">
|
|
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
|
|
"ile1a1.htm">ILE CEE APIs</a> | <a href="aplist.htm">APIs by category</a></td>
|
|
</tr>
|
|
</table>
|
|
</center>
|
|
</body>
|
|
</html>
|
|
|