IBM Support

SI57613 - OSP-OTHER New API to register activation group exit procedur

PTF ( Program Temporary Fixes ) Cover letter


Order this fix

Abstract

OSP-OTHER New API to register activation group exit procedur


Pre/Co-Requisite PTF / Fix List

REQ  LICENSED           PTF/FIX  LEVEL

TYPE PROGRAM  RELEASE   NUMBER   MIN/MAX  OPTION
---- -------- --------- -------  -------  ------
NONE



NOTICE:
-------
Application of this PTF may disable or render ineffective programs that
use system memory addresses not generated by the IBM translator,
including programs that circumvent control technology designed to limit
interactive capacity to purchased levels.  This PTF may be a prerequisite
for future PTFs.  By applying this PTF you authorize and agree to the
foregoing.

This PTF is subject to the terms of the license agreement which
accompanied, or was contained in, the Program for which you are obtaining
the PTF.  You are not authorized to install or use the PTF except as part
of a Program for which you have a valid Proof of Entitlement.

SUBJECT TO ANY WARRANTIES WHICH CAN NOT BE EXCLUDED OR EXCEPT AS EXPLICITLY
AGREED TO IN THE APPLICABLE LICENSE AGREEMENT OR AN APPLICABLE SUPPORT
AGREEMENT, IBM MAKES NO WARRANTIES OR CONDITIONS EITHER EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON INFRINGEMENT,
REGARDING THE PTF.

The applicable license agreement may have been provided to you in printed
form and/or may be viewed using the Work with Software Agreements (WRKSFWAGR)
CL command.


APAR Error Description / Circumvention

-------------------------------------------------
Currently, the register activation group (AG) exit APIs
(CEE4RAGE and CEE4RAGE2) work by calling the exit procedures in
last in first out (LIFO) order when the AG ends.  If exit
procedures are registered in the order 1, 2, 3, when the AG ends
they will be called in the order 3, 2, 1.  A new API is needed
to force an exit procedure to be called last, no matter the
order in which it was registered.

CORRECTION FOR APAR 'SE62566' :
-------------------------------
A new register activation group exit API will be introduced to
perform the requested function.  A description of the new API
follows.

Register Activation Group Exit Procedure Last API

Name: CEE4RAGEL

+====================================================+
| No | Name      | In/Out | Type         | Required  |
+====================================================+
|  1 | procedure | Input  | RAGE_ENTRY2  | Yes       |
+----------------------------------------------------+
|  2 | fc        | Output | FEEDBACK     | No        |
+====================================================+

Service Program Name: QLEAWI

Default Public Authority: *USE

Threadsafe: Yes

The Register Activation Group Exit Procedure Last (CEE4RAGEL)
API is used to register procedures that are called when an
activation group ends. Activation group exit procedures,
registered by CEE4RAGEL, are called after HLL user exit
procedures, but before any system level activation group
resource clean up takes place.  Other APIs that can register
activation group exit procedures are CEE4RAGE and CEE4RAGE2.
When those APIs are called, the exit procedures are called in
the reverse order of their registration.  CEE4RAGEL, however,
will register the exit procedure so that it is called last, no
matter which order the registration took place.  The exit
procedure that previously would have been called last will now
be called just before the exit procedure registered with this
API (second to last).

For example, if E1, E2, E3, E4, and E5 are exit procedures
registered as follows:

CEE4RAGE2(E1,NULL);
CEE4RAGE2(E2,NULL);
CEE4RAGEL(E3,NULL);
CEE4RAGE2(E4,NULL);
CEE4RAGEL(E5,NULL);

When the activation group ends, they will be called in the
following order:  E4, E2, E1, E3. and E5.

If an exit procedure fails, subsequent exit procedures will not
be called.  There is no practical limit to the number of exit
procedures that can be registered. If the same exit procedure is
registered multiple times, it is called multiple times.

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
1. 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.
2. Once the activation group exit procedures start to run, the
register activation group exit APIs (CEE4RAGE, CEE4RAGE2, and
CEE4RAGEL) cannot be called.

CIRCUMVENTION FOR APAR 'SE62566' :
----------------------------------
None.


Activation Instructions


None.




Special Instructions

This PTF can, under rare circumstances, cause other PTFs installed at
the same time to be marked as damaged.  It is also possible for this
PTF to cause CEE9902 messages to be issued in other jobs that are
running at the time that this PTF is installed.  To avoid the first
problem it is recommended that this PTF be installed in a separate job.
Sign off the system and then sign back on before applying additional
PTFs.  To minimize the chances of the CEE9902 messages in other jobs
make sure that there are a minimal number of jobs running on the system
at the time that the PTF is applied.  Another option would be to apply
the PTF immediately prior to a scheduled IPL of the system.

If a PTF is marked as damaged as the result of being applied in the
same job as this PTF you can use RMVPTF with the RMV(*PERM) option to
remove the damaged PTF, then use LODPTF and APYPTF in a new job to
apply the PTF that was marked as damaged.  The APYPTF in the new job
should be successful.  If it is not then the PTF that was marked as
damaged was damaged for some reason unrelated to this PTF.

If you see CEE9902 exception messages in other jobs after installing
this PTF then ending the affected jobs and starting them again will
avoid the CEE9902 exception messages.  If the CEE9902 exception
messages persist after restarting the job then the messages are
unrelated to this PTF.


Default Instructions

THIS PTF CAN BE APPLIED IMMEDIATE OR DELAYED.



Supersedes

PTF/FIX NO(S).  APAR TITLE LINE
--------------  ------------------------------------------------------------
   SI52757      OSP-OTHER-F/QLEAWI-T/QLEAWI-MSGMCH4422 MCH4422 when running
   SI52318      OSP-OTHER-F/QLECWI-T/QLEDAGE-MSGCEE9902 During PTF install

Summary Information

System.............................. i
Models..............................
Release............................. V7R2M0
Licensed Program............... 5770SS1
APAR Fixed.......................... View details for APAR SE62566
Superseded by:...................... View fix details for PTF SI70699
Recompile........................... N
Library............................. QSYS
MRI Feature ........................ NONE
Cum Level........................... C5310720


IBM i Support

IBM disclaims all warranties, whether express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. By furnishing this document, IBM grants no licenses to any related patents or copyrights. Copyright © 1996,1997,1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 IBM Corporation. Any trademarks and product or brand names referenced in this document are the property of their respective owners. Consult the Terms of use link for trademark information.

Document information

More support for: i family

Software version: V7R2M0

Operating system(s): OS/400

Reference #: SI57613

Modified date: 21 January 2016