Mainframe Path Start learning free
Expert10 min readLesson 1 of 3

Why SMP/E exists: SYSMODs and the CSI

A z/OS system is built from tens of thousands of parts supplied by IBM and other vendors. SMP/E records exactly which version of every part is installed and why, so fixes can be added, checked and removed without guesswork. Changes arrive as SYSMODs, and SMP/E keeps its records in a VSAM database called the CSI.

The problem SMP/E solves

A z/OS system contains many thousands of load modules, macros, source members and panels, called elements. IBM and other vendors ship fixes for them constantly. Without a record of what is installed, nobody could answer basic questions: is this fix on our system? Which fix replaced this module? If I install this, what else do I need? SMP/E (System Modification Program/Extended) is the IBM tool that answers them. It installs software and service, checks prerequisites, and keeps an inventory of every element and every change that touched it.

SMP/E is not only for z/OS itself. Most products installed on z/OS, including CICS, Db2, IMS, MQ and many products from other vendors, are packaged for SMP/E. Some vendors use their own installers, so check each product's install guide.

SYSMODs: the units of change

Every change arrives as a SYSMOD (system modification): a package of elements plus modification control statements (MCS) that tell SMP/E what the package is and what it depends on. Each SYSMOD has a seven-character ID.

TypeWhat it isTypical source
FUNCTIONA product or a new release of a product; the base everything else applies toA product install package
PTFA tested, generally available fix (program temporary fix), the normal unit of serviceIBM or vendor service orders
APAR fixA temporary fix for one reported problem, usually shipped before the PTF that will replace itIBM support during an open problem
USERMODA change made by your own site, such as an exit or a modified source memberYour systems programmers

An APAR (Authorized Program Analysis Report) is IBM's record of a problem. The PTF that resolves it is said to *resolve* that APAR, and it usually *supersedes* any earlier APAR fix for it. SMP/E tracks those relationships, so it knows an APAR fix is no longer needed once the PTF is on.

The shape of a PTF's control statements (illustrative)What it means
++PTF(UJ12345)
Starts the SYSMOD and gives its ID
++VER(Z038) FMID(HBB77D0)
Which system release (SREL) and which FUNCTION it applies to
PRE(UJ11111)
Another SYSMOD that must already be installed
SUP(AJ99999)
Earlier fixes this one supersedes
++MOD(XYZMOD01)
An element in the SYSMOD: here an object module to be link-edited

Each element is owned by exactly one FUNCTION, identified by its FMID. A PTF can only be applied if the FUNCTION it names is installed. The IDs and FMID above are made up for the example.

The CSI and its zones

SMP/E stores its records in a consolidated software inventory (CSI): one or more VSAM KSDS datasets. Inside the CSI, records are grouped into zones:

Zones in a CSI and what each one describes
Global zoneSYSMODs received, HOLDDATA, options, and the list of target and distribution zones
Target zoneWhat is installed in the running libraries (target libraries)
Distribution zoneWhat is in the backup, base copy (distribution libraries)

There is one global zone, but there can be many target and distribution zones. Sites commonly keep separate target zones for each copy of the system libraries they maintain, for example one for the set being prepared and one for the set in production, so maintenance never touches the libraries the running system is using.

How you run SMP/E

SMP/E runs as a batch job (program GIMSMP) with commands in SMPCNTL, or through its ISPF dialogs for queries. A SET BOUNDARY command chooses which zone the following commands work on.

Skeleton SMP/E job (illustrative; dataset names depend on the site)
//SMPE     EXEC PGM=GIMSMP,REGION=0M
//SMPCSI   DD DISP=SHR,DSN=SYS1.ZOS.GLOBAL.CSI
//SMPCNTL  DD *
  SET BOUNDARY(GLOBAL).
  LIST SYSMODS.
/*
TRY IT YOURSELF

Which SYSMOD type is used for a change written by your own site, such as a customised exit?

Show a hint

It is the user's own modification.

Show the solution

USERMOD. SMP/E then tracks your change like any other, and warns when IBM service touches the same element.

Common mistakes

Patching target libraries by hand

SMP/E will not know about the change and later service can overwrite it silently. Package site changes as USERMODs.

Confusing an APAR with a PTF

The APAR is the problem record; an APAR fix is a temporary fix; the PTF is the tested permanent fix. Plan production maintenance around PTFs.

Losing track of which target zone matches which libraries

Applying to the wrong zone updates the wrong libraries. Name zones clearly and record which system residence set each one describes.

What you will see at work

Key terms

Check your understanding.
Take this lesson's quiz and save your progress. Free.

Take the lesson quiz
RECEIVE, APPLY, ACCEPT and RESTORE →