User exit
Encyclopedia
A user exit is a subroutine
invoked by a software package for a predefined event in the execution of the package. Clients of the package can substitute their own subroutines in place of the default ones provided by the package vendor to provide customized functionality.
A typical use is replacing the user exits provided by a sort/merge
package, whereby the user program provides its own subroutines for comparing records. The procedures provided by the user take the place of the default routines (usually stubs that do nothing but return
to their caller) provided by the package vendor.
Procedures provided as user exits are typically compiled
into a static library
and linked directly with the package to produce an executable program
. Another approach employs dynamic libraries to accomplish the same thing.
If the user site specific code is substituted for the software vendor provided default exit it must interface to the software package using the defined parameters as documented for the default exit. User exits are important because while they enable site specific customization they isolate such installation specific customization to defined and supported points enabling the site to upgrade to follow-on releases of the software package without adverse impact to preexisting customized functionality. Some references to IBM user exit manuals are given below. Other vendors such as SAP, Oracle, HP, Macro4, Compuware, CA all employ user exits in some of their software products.
Title: z/OS V1R10 DFSMS Installation Exits Document Number: SC26-7396-11 Title: z/OS V1R10.0 JES2 Installation Exits Document Number: SA22-7534-10 Title: z/OS V1R10.0 MVS Installation Exits Document Number: SA22-7593-14
Subroutine
In computer science, a subroutine is a portion of code within a larger program that performs a specific task and is relatively independent of the remaining code....
invoked by a software package for a predefined event in the execution of the package. Clients of the package can substitute their own subroutines in place of the default ones provided by the package vendor to provide customized functionality.
A typical use is replacing the user exits provided by a sort/merge
Sorting algorithm
In computer science, a sorting algorithm is an algorithm that puts elements of a list in a certain order. The most-used orders are numerical order and lexicographical order...
package, whereby the user program provides its own subroutines for comparing records. The procedures provided by the user take the place of the default routines (usually stubs that do nothing but return
Return statement
In computer programming, a return statement causes execution to leave the current subroutine and resume at the point in the code immediately after where the subroutine was called, known as its return address. The return address is saved, usually on the process's call stack, as part of the operation...
to their caller) provided by the package vendor.
Procedures provided as user exits are typically compiled
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...
into a static library
Static library
In computer science, a static library or statically-linked library is a set of routines, external functions and variables which are resolved in a caller at compile-time and copied into a target application by a compiler, linker, or binder, producing an object file and a stand-alone executable...
and linked directly with the package to produce an executable program
Executable
In computing, an executable file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a data file that must be parsed by a program to be meaningful. These instructions are traditionally machine code instructions for a physical CPU...
. Another approach employs dynamic libraries to accomplish the same thing.
If the user site specific code is substituted for the software vendor provided default exit it must interface to the software package using the defined parameters as documented for the default exit. User exits are important because while they enable site specific customization they isolate such installation specific customization to defined and supported points enabling the site to upgrade to follow-on releases of the software package without adverse impact to preexisting customized functionality. Some references to IBM user exit manuals are given below. Other vendors such as SAP, Oracle, HP, Macro4, Compuware, CA all employ user exits in some of their software products.
Title: z/OS V1R10 DFSMS Installation Exits Document Number: SC26-7396-11 Title: z/OS V1R10.0 JES2 Installation Exits Document Number: SA22-7534-10 Title: z/OS V1R10.0 MVS Installation Exits Document Number: SA22-7593-14
Applications
Some applications that provide user exits:- IBMIBMInternational Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
sort/merge package - SAP R3
- IBM CICSCICSCustomer Information Control System is a transaction server that runs primarily on IBM mainframe systems under z/OS and z/VSE.CICS is a transaction manager designed for rapid, high-volume online processing. This processing is mostly interactive , but background transactions are possible...
- IBM JES 2 and 3Job Entry Subsystem 2/3IBM's MVS and z/OS operating systems use a job entry subsystem to receive jobs into the operating system, schedule them for processing by MVS or z/OS, and to control their output processing.There are three job entry subsystems; Master, JES2 and JES3...
- IBM MVSMVSMultiple Virtual Storage, more commonly called MVS, was the most commonly used operating system on the System/370 and System/390 IBM mainframe computers...
, SMSHierarchical storage managementHierarchical storage management is a data storage technique which automatically moves data between high-cost and low-cost storage media. HSM systems exist because high-speed storage devices, such as hard disk drive arrays, are more expensive than slower devices, such as optical discs and magnetic...
, z/OSZ/OSz/OS is a 64-bit operating system for mainframe computers, produced by IBM. It derives from and is the successor to OS/390, which in turn followed a string of MVS versions.Starting with earliest:*OS/VS2 Release 2 through Release 3.8...
and dozens of sub-components such as RACF, SMF, etc. - Oracle CC&B
See also
- CallbackCallback (computer science)In computer programming, a callback is a reference to executable code, or a piece of executable code, that is passed as an argument to other code. This allows a lower-level software layer to call a subroutine defined in a higher-level layer....
- Linking