SMP/E for z/OS Commands
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Deleted SYSMODs

SMP/E for z/OS Commands
SA23-2275-01

A function SYSMOD can delete another function by naming the function to be deleted as an operand of the ++VER DELETE operand. SMP/E deletes that function and all functions, PTFs, APARs, and USERMODs dependent on it. The functions specifically named in the DELETE operand list are considered explicitly deleted SYSMODs; all SYSMODs deleted because of their dependence on the explicitly deleted SYSMODs are termed implicitly deleted SYSMODs.

When one function SYSMOD deletes another, SMP/E attempts to remove from the target zone all information related to the deleted SYSMOD. In addition, SMP/E removes from the target libraries all elements currently owned by the deleted function SYSMOD. The following processing is done:

  1. SMP/E determines whether there are any function SYSMODs in the hierarchy of the function SYSMOD being deleted, and considers those function SYSMODs to also be eligible for delete processing.
  2. SMP/E deletes any SYSMOD having the same FMID value as one of the function SYSMODs being deleted.
  3. SMP/E determines all the elements that are currently owned by one of the function SYSMODs to be deleted.
  4. SMP/E deletes from the target libraries all the elements of the SYSMODs to be deleted. After the elements are successfully deleted, SMP/E deletes the element entries from the target zone.

    If a module is being deleted, SMP/E checks whether the module is contained in any cross-zone load modules. If so, SMP/E deletes the contents of the MOD entry, except the XZLMOD subentries. If the module is not reintroduced and the AUTOMATIC option is in effect for the cross-zone, the module is deleted from the cross-zone load module during cross-zone processing. For more information, see SMP/E for z/OS Reference.

  5. For load modules composed entirely of modules that are to be deleted, SMP/E deletes the load modules and any aliases for the load modules from the target libraries. If the load modules were successfully deleted, SMP/E deletes the MOD and LMOD entries from the target zone. The load modules are also deleted from the SMPLTS, if applicable.
    Note: If all the modules in a load module are being deleted or replaced, SMP/E checks whether the load module contains cross-zone modules. If so, SMP/E does not delete the load module. Instead, it removes the deleted modules from the load module (leaving a stub load module in the target libraries) and leaves the LMOD entry in the target zone.
  6. For load modules composed of modules to be deleted and modules not to be deleted, SMP/E delinks the CSECTs in the deleted modules from the load module. In priority order, SMP/E obtains the CSECT information in the following manner:
    1. By gathering the list of CSECT names in the target zone MOD entry
    2. By determining the CSECT operand on the ++MOD statement from the lowest function or service level SYSMOD being installed that contains that module
    3. By assuming that the CSECT name is equal to the distribution library name

    The MOD entries are deleted from the target zone, but the LMOD entry remains because it is still needed to process SYSMODs affecting the modules that have not been deleted.

    For each deleted module, SMP/E adds to the LMOD entry a MODDEL subentry for the module name. MODDEL subentries document the connection between the deleted modules and the LMOD. If any of these deleted modules are ever reintroduced, SMP/E looks for LMODs with MODDEL subentries for the modules and automatically rebuilds the LMODs to include these modules again. The MODDEL subentries for the reintroduced modules are then removed from the LMOD entries.

    Any aliases associated with the load modules are not deleted from the target libraries, but may be marked nonexecutable by the link-edit utility.

  7. The target zone SYSMOD entries for all implicitly deleted SYSMODs are deleted. For each explicitly deleted SYSMOD, a target zone SYSMOD entry is created. This entry has a DELBY subentry naming the function that caused the deletion. The SYSMOD entries for the explicitly deleted SYSMODs prevent the deleted function SYSMODs from being reprocessed by APPLY.
    Note: For a function that both deletes and supersedes another function, the SYSMOD entry contains a SUPBY subentry instead of a DELBY subentry. This allows SYSMODs naming the deleted function as a requisite to still be installed.
The result of this process is the deletion of all SYSMODs in the hierarchy of the specified function SYSMOD.
Note: Always check the APPLY output to verify that all the CSECTs that were supposed to be deleted from a load module have been deleted.

In Figure 1, function SYSMODs HDE1203, HDE1303, and HDE1403, and service SYSMODs UZ00009, UZ00010, and UZ00004 are deleted because DELETE(HDE1203) is specified on the ++VER statement. CIFREQ subentries in the SYSMOD entry for a function that is deleted (either explicitly or implicitly) are retained in the SYSMOD entry along with the DELBY subentry. So, when function HDE2000 is applied, CIFREQ subentries in the SYSMOD entry for function HDE1203 are retained, as are any CIFREQ subentries in the SYSMOD entries for functions HDE1303 and HDE1403. Likewise, any CIFREQ subentries for conditional requisites specified by the deleted SYSMODs are retained in the appropriate SYSMOD entries.

Figure 1. DELETE Hierarchy for DELETE(HDE1203): APPLY Processing
The hierarchy for deleting SYSMODs
Note: Remember, SMP/E assumes that when a function is deleted, the deleting function replaces all the required elements of the deleted function. Although you can build a function SYSMOD that does nothing but delete another function, it is your responsibility to make sure your system remains functionally complete after the product has been deleted.

During APPLY processing, when a function is deleted from a target zone by another function, its FMID is not removed from the FMID list in the global zone. This is because the deleted function can still be applied in other target zones or accepted in other distribution zones.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014