z/OS Language Environment Customization
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Load notification user exit

z/OS Language Environment Customization
SA38-0685-00

The purpose of the load notification user exit is to provide customers running applications with LRR active the ability to improve performance by preventing the use count for frequently used modules from dropping below one.

The load notification user exit registered via CEEBLNUE is invoked:
  • Once during region initialization processing
  • After each successful load of a module by Language Environment®
  • Once during region termination processing.

When invoked during region initialization processing, the load notification user exit can initialize some form of module list which can be used during subsequent invocations to keep track of modules which have an extra load.

When invoked after the successful load of a module, the load notification user exit would perform an extra load, if desired, and update the module list.

When invoked during region termination processing, the load notification user exit would delete the modules identified in the list so that they are actually removed from storage.

The load notification user exit will be loaded and called only when Library Routine Retention (LRR) is active.

For more information about creating and using the load notification user exit, see Customizing user exits.

Syntax: Load_Notification_User_Exit (CEELNUEPTR)

CEELNUEPTR (INPUT)
A pointer to the load notification user exit control block.
Figure 1. CEELNUE control block map
What the CEELNUE control block map looks like
The CEELNUE control block elements shown in Figure 1 are described as follows:
eye-catcher (INPUT)
A 4-byte character field containing "LNUE" indicating this is the CEELNUE control block.
version (INPUT)
A 1-byte binary field containing the control block version. This field is set to 0x01 for the first version.
flags (INPUT)
A 1-byte binary field containing flags as shown:
   x... .... load-type
   0... .... OS
   1... .... HFS
   .000 0000 reserved
The flags are defined as follows:
load-type (INPUT)
0
OS module was loaded
1
z/OS UNIX module was loaded
size (INPUT)
A 2-byte integer field containing the size of the CEELNUE control block. This field will be set to 0x0018 for the first version.
function-code (INPUT)
A 2-byte integer field containing the code of the function being performed when the load notification user exit gets control. The following function code values for the first version are:
0
Initialization
1
Load
2
Termination
module-name-length (INPUT)
A 2-byte integer field. When the function-code is 1, this field contains the length of the name of the module that was just loaded. This value will be 8 when an OS module was loaded. When the function-code is 0 or 2 the value should be ignored.
module-name-ptr (INPUT)
A 4-byte address. When the function-code is 1, this field contains the address of the name of the module that was just loaded. The module name pointed to will be 8 characters in length, padded on the right with blanks as necessary, when an OS module was loaded. When the function-code is 0 or 2 the value should be ignored.
user-word (INPUT/OUTPUT)
A 4-byte binary field. This field is to be used to communicate information between successive calls to the load notification user exit. The very first time the load notification user exit is called, this field will be 0. The load notification user exit may modify the value in this field. The value will be saved by Language Environment and returned on subsequent invocations. Language Environment will only honor changing the field during the initialization function.
reserved
A 4-byte reserved field.

Usage notes

  • The load notification user exit must be written in Assembler. If you write the load notification user exit in Language Environment-enabled assembler, be sure to specify MAIN=NO on the CEEENTRY macro.
  • The load notification user exit must not call any HLL programs.
  • The load notification user exit must not create a Language Environment enclave.
  • The load notification user exit must not use any Language Environment services.
  • Language Environment issues a system dependent LOAD for the name contained in CEEBLNUE. If the load is successful, then the load notification user exit is invoked.
  • Upon return from the load notification user exit, Language Environment takes no action other than continuing with its processing, as no return codes are defined.
  • The load notification user exit is invoked in AMODE(31). The RMODE can be either ANY or 24.
  • Registers provided on entry to the load notification user exit are:
    Register 1
    Points to a word which contains the address of the CEELNUE control block.
    Register 12
    Points to the CAA.
    Register 13
    Points to a standard save area. The exit routine can save the registers here across its processing.
    Register 14
    Contains the return address.
    Register 15
    Contains the entry point address upon entry.
  • Registers provided on exit to the load notification user exit are:
    Registers 15-1
    Undefined.
    Registers 2-13
    Unchanged.
    Register 14
    Contains the return address.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014