All IBM and most non-IBM software is assigned at least one seven character
FMID (Function Modification ID) that identifies the piece of software and its release number. This first FMID is called the
Base FMID. For Example DB2 Version 9's Base FMID is HDB9910. Separately installable features also have FMIDs (called
Dependent FMIDs) that relate in some way to the base product DB2 English language panels for Version 9's Dependent FMID is JDB9910. A software package is composed of
elements, individual components such as object files (MOD), macros (MAC), sample programs (SAMP), etc. The
CSI (Consolidated Software Inventory) is a dataset containing the information that SMP/E needs to track the contents of the distribution and target libraries. The CSI contains "
metadata" identifying the installed FMIDs and elements, the ID of the most recent update, and pointers to the associated libraries. A
SYSMOD (System Modification) is any modification to the system. This includes: •
Function SYSMODS install a new product, version or release. •
PTF SYSMODS are official IBM fixes for reported problems. •
APAR FIXES are less formal fixes from IBM. •
USERMODS are user modifications to a product, such as installation-specific "
exits." Each SYSMOD is assigned a seven character
SYSMOD ID to uniquely identify it. When the SYSMOD is installed this ID is recorded in the CSI entry for the element being added or replaced, and is called the
RMID (replacement module id). A simple declarative language called
MCS (Modification Control Statements) provides the information to SMP/E identifying the SYSMOD and providing information on how to install it. Each SYSMOD is prefixed with a number of MCS statements that, for example, identify it as an APAR fix or PTF, supply the SYSMOD ID, identify the applicable FMID, etc.
Prerequisites or
prereqs are SYSMODS that are required to be installed
before a second can be installed.
Corequisites or
coreqs are two or more SYSMODS that must be installed
together, none can be installed without the others. A SYSMOD
supersedes, or
sups another if its functionally replaces the first. This prereq, coreq, and sup information is provided in the MCS. A
requisite chain is the "sequence of SYSMODs that are directly or indirectly identified as requisites for a given SYSMOD," for example, if A is a prereq for B, and B is a prereq for C, then A and B are the requisite chain for C and both need to be installed before C, although not necessarily in a separate run of SMP/E. Requisite chains can frequently become extremely involved and comprise hundreds of SYSMODS.
HOLDDATA is a set of MCS statements that indicate that specific SYSMODS contain errors or require manual processing outside the scope of SMP/E before they can be installed. The user is required to take action to fix the problem, if possible, before installing held SYSMODS. SMP/E manages two types of libraries.
Target libraries (TLIBS) contain the executable code and other information used to run the system. Originally there were a limited number of target libraries: SYS1.LINKLIB for executable programs, SYS1.MACLIB for standard
macros, etc., but as of 2012 each software product usually has its own set of target libraries.
Distribution Libraries (DLIBS) contain the master copy of each element for a system. Each product (FMID) has its own set of distribution libraries which are normally used only by SMP/E. Libraries in
OS/360 and successors, unlike directories in
unix, usually contain only one type and format of data. A software package may have
object libraries (MOD),
ISPF panels (PNL), macro libraries (MAC) and many more. ==Use==