z/OS DFSMSdfp Advanced Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Using the DESERV Exit

z/OS DFSMSdfp Advanced Services
SC23-6861-01

The DESERV exit was designed to support those programs which, before the binder, used SVC screening or replacement of the SVC table to trap SVC 21 (STOW) in order to monitor STOWs. DESERV provides an equivalent function to that obtained by SVC Screening or replacing the SVC table entry for SVC 21 (or SVC 12, BLDL). The DESERV exit can be used along with the SVC screening and SVCUPDTE facilities to monitor accesses and updates to PDS and PDSE directories.

The system calls the DESERV GET function when the following occurs:
  • The binder is used to bind a program object or a load module and it is searching for member names to be included. (Note the linkage editor does not use DESERV).
  • The system is searching for modules to load into storage while processing the ATTACH, LINK, LOAD or XCTL functions.
In these situations the system uses DESERV GET rather than issuing BLDL. However, in some situations DESERV GET issues BLDL to perform the directory search (the BLDL function does not issue DESERV calls). The system calls the DESERV PUT function when the following occurs:
  • The binder is creating a program object in a PDSE (note the linkage editor does not use DESERV, nor does the binder use DESERV PUT when creating a load module in a PDS).
  • An IEBCOPY job is loading a program object from an IEBCOPY unloaded data set.
  • An IEBCOPY job is copying a member to a PDSE where one of the member‘s names is greater than 63 bytes long.

In these situations the system uses DESERV PUT rather than issuing STOW. The DESERV PUT and STOW code do not interact. STOW does not issue DESERV PUT nor does DESERV PUT issue STOW.

Currently the system does not use the RENAME or UPDATE functions. SMP/E is the only known user of the DELETE function. The rename, update and delete functions and the STOW code do not interact.

With SVC screening, an SVC screen table is associated with a task control block (TCB). The table marks specific SVC numbers as not valid. The table also defines the address of a routine that gets control when an SVC that is not valid is issued. Then it's possible for the screen routine to inhibit the function, perform the function itself, or temporarily disable the SVC screening and re-issue the SVC. This technique provides a front and back end mechanism for SVC routines.

With SVCUPDTE, an application can dynamically replace or delete SVC table entries for the system or obtain the SVC number of a routine at a specified entry point. One specific use of the replace function of SVCUPDTE would use a scenario like the following to replace an IBM® supplied SVC routine.

  1. Extract the SVC entry for SVC 18 (BLDL) from the SVC table.
  2. Issue SVCUPDTE to install the vendor's version of the BLDL function.
  3. When an SVC 18 is issued, the vendor's BLDL module gets control.
  4. The vendor's BLDL either performs the function and returns to the caller, or branch enters the IBM supplied BLDL code whose address was obtained earlier from the SVC table.

For more detail and explanation of the DESERV functions, see z/OS DFSMS Using Data Setsz/OS DFSMS Using Data Setsz/OS DFSMS Using Data Sets; for their macros, see z/OS DFSMS Macro Instructions for Data Sets.

DESERV provides a task level exit for an interface that is similar to SVC screening for the SVC routines BLDL and STOW. DESERV also provides a global exit for an interface that is similar to the SVCUPDTE replace option. For more information on using SVC Screening and SVCUPDTE, refer to z/OS MVS Programming: Authorized Assembler Services Reference SET-WTO and z/OS MVS Programming: Authorized Assembler Services Guide.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014