November 28, 2016
This week, I’m continuing the series on significance (the quality of being worthy of attention or importance). For this post, I want to focus on a remarkable z/OS utility called System Modification Program/Extended (SMP/E). The job of SMP/E is to handle the installation of products. It also handles software corrections to installed products. In some cases, SMP/E is used to install enhancements to a product that are distributed between formal releases called small programming enhancements. As a new system programmer, upon encountering SMP/E I found its commands and control language challenging as they were abstract. Years later, when I found myself teaching SMP/E, I was in a better situation to appreciate what it did and how well it handled the complex task of keeping track of the thousands of elements that make up a software product.
What Is System Modification Program?
SMP/E is the utility for installing and maintaining software in z/OS systems, subsystems and products from IBM and other suppliers. SMP/E controls these changes at the element level by selecting the proper levels of components to be installed from a large number of potential changes. It calls system utility programs to install the changes and keeps records of the installed changes. SMP/E is a significant part of the installation, service and maintenance processes for z/OS software products and IBM product packages like Custom-Built Product Delivery Option and selective follow-on services like IBM CustomPac, which is a suite of services tailored to installation, migration and maintenance needs.
How It Works
SMP/E has flexibility in that it can be run either using batch jobs or using dialogs under Interactive System Productivity Facility/Program Development Facility. Installation jobs are so complex and long running that they are best done in batch where as simple queries work well under time sharing option.
Challenging Yet Highly Effective
When system programmers get started with SMP/E, particularly if they haven’t had any training, they are presented with an abstract way of doing things that takes some time to understand. It helps to get some training or mentoring but that doesn’t always happen, so you jump in and install your first product and learn from your mistakes. Here is an explanation of SMP/E concepts including a discussion of SYSMODs, commands and control language, FMIDs and key data sets.
SMP handles SYSMODs. SMP/E can install a large variety of system updates that are packaged as a system modification or SYSMOD. A SYSMOD is the actual collection of elements and control information that SMP/E needs to install and track system modifications. Function SYSMODS install a new product, PTF SYSMODS are official fixes, APARs are an early form of a correction and USERMODS are user modifications to a product like the addition of a company exit program.
SMP/E has commands and a control language. SMP/E has three main commands: RECEIVE, APPLY, and ACCEPT. These commands typically run as individual batch jobs in sequence and they control the SMP/E process for installing z/OS elements or service.
SMP/E uses FMIDs. All software handled by SMP/E is assigned at least one seven-character Function Module ID that identifies the software and its release number.
SMP/E has data sets for inventory, zones and libraries. To install z/OS elements in target and distribution libraries, SMP/E uses a database made up of several types of data sets, for example:
SMP/E Handles a Very Complex Task
- CSI: Consolidated Software Inventory that contains all the information SMP/E needs to track the distribution and target libraries
- PTS: PTF Temporary Storage is used to hold PTFs after they are RECEIVED.
- MTS: Macro Temporary Storage is a target library for macros that exist only in a distribution library, thus allowing the current version of these macros to be used for assemblies during APPLY processing.
- STS: Source Temporary Storage is a target library for source that exists only in a distribution library, thus allowing the current version of these modules to be used for assemblies during APPLY processing.
SMP/E is an excellent utility that is used for product install and maintenance. It handles dozens of products with thousands of interrelated elements in multiple states like received, applied and accepted. The biggest mess a system programmer can get into is having a running system with product inconsistencies that result in failures. SMP/E handles product details flawlessly so the likelihood of human error is greatly reduced.
Posted November 28, 2016 | Permalink