SMPE V3R1.0 User's Guide
SMPE V3R1.0 User's Guide
User’s Guide
SA22-7773-02
IBM SMP/E for z/OS and OS/390
User’s Guide
SA22-7773-02
Note!
Before using this information and the product it supports, be sure to read the general information under “Notices” on
page 191.
Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Summary of Changes . . . . . . . . . . . . . . . . . . . . . . xv
Chapter 10. Displaying the Data Managed by SMP/E: The LIST Command 127
Contents v
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . 127
Listing All the SMP/E Data . . . . . . . . . . . . . . . . . . . . 127
Listing by Specific Entry Type . . . . . . . . . . . . . . . . . . . 128
Listing Specific Entries . . . . . . . . . . . . . . . . . . . . . 129
Listing by FMID or FMIDSET . . . . . . . . . . . . . . . . . . . 130
Listing to Compare Two Zones . . . . . . . . . . . . . . . . . . 131
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Chapter 11. Changing the Data SMP/E Manages: The UCLIN Command 133
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . 133
When to Use UCLIN . . . . . . . . . . . . . . . . . . . . . . 133
How to Use UCLIN . . . . . . . . . . . . . . . . . . . . . . . 134
Chapter 15. Listing the Source IDs in a Zone: The REPORT SOURCEID
Command . . . . . . . . . . . . . . . . . . . . . . . . . 145
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . 145
Running the REPORT SOURCEID Command . . . . . . . . . . . . . 145
Listing the SYSMODs . . . . . . . . . . . . . . . . . . . . . . 145
Chapter 18. Determining Which SYSMODs Led Others to Fail: The Causer
SYSMOD Summary Report . . . . . . . . . . . . . . . . . . 163
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . 163
Using Causer SYSMOD Information . . . . . . . . . . . . . . . . 163
Resolving Errors for All SYSMODs That Failed. . . . . . . . . . . . 163
Resolving Errors for a Single SYSMOD That Failed . . . . . . . . . . 164
Example . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Contents vii
PTF Compaction in SMPPTS Data Set . . . . . . . . . . . . . . 176
Enhanced RECEIVE Command Processing . . . . . . . . . . . . . 177
Reduced SMP/E Message Output . . . . . . . . . . . . . . . . 177
GIMAPI: All Entries and Subentries Support . . . . . . . . . . . . . 177
GIMAPI: Version Support. . . . . . . . . . . . . . . . . . . . 177
OS/390 Version 1 Release 3 SMP/E Overview . . . . . . . . . . . . . 177
API for User Access to the CSI . . . . . . . . . . . . . . . . . 178
Enhanced Cross-Zone Requisite Checking . . . . . . . . . . . . . 178
Enhanced Exception SYSMOD Report. . . . . . . . . . . . . . . 178
Enhanced ++IF FMID Processing . . . . . . . . . . . . . . . . 179
Enhanced Internal HOLD SYS Processing . . . . . . . . . . . . . 179
Enhanced ZONEEDIT Command. . . . . . . . . . . . . . . . . 179
Enhancements to the Binder Utility in DFSMS/MVS . . . . . . . . . . 179
System/390 Service Update Facility . . . . . . . . . . . . . . . . 180
OS/390 Version 1 Release 2 SMP/E Overview . . . . . . . . . . . . . 180
BLOCKSIZE=8800 for SMP/E Data Sets . . . . . . . . . . . . . . 180
BUILDMCS Command . . . . . . . . . . . . . . . . . . . . 180
Bypassing System Holds for Specific SYSMODs . . . . . . . . . . . 180
FMIDSET Selection. . . . . . . . . . . . . . . . . . . . . . 181
Receiving Relative File Data Sets Created from PDSEs . . . . . . . . 181
SMP/E Dialogs: FIND Command . . . . . . . . . . . . . . . . . 181
SMP/E GIMOPCDE Member Moved from PARMLIB. . . . . . . . . . 181
Summary of Interface Changes . . . . . . . . . . . . . . . . . . 182
Commands . . . . . . . . . . . . . . . . . . . . . . . . . 182
Data Sets and Files. . . . . . . . . . . . . . . . . . . . . . 182
Exits . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Macros . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Messages . . . . . . . . . . . . . . . . . . . . . . . . . 183
Panels . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Programming Interfaces . . . . . . . . . . . . . . . . . . . . 184
SYS1.SAMPLIB Members . . . . . . . . . . . . . . . . . . . 184
187
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Trademarks. . . . . . . . . . . . . . . . . . . . . . . . . . 192
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
After reading this publication, you should be able to do most SMP/E processes. You
may have to refer to SMP/E Commands for details on commands.
Bibliography
This section tells you more about the SMP/E library.
v The IBM SMP/E for z/OS and OS/390, V3R1 publications are available as
printable PDF files and BookManager-viewable softcopy at
http://www.ibm.com/servers/eserver/zseries/zos/bkserv/
v Table 1 lists the IBM SMP/E for z/OS and OS/390, V3R1 publications and briefly
describes each one.
v For information on z/OS publications and more information on the IBM SMP/E for
z/OS and OS/390, V3R1 books, see z/OS Information Roadmap.
Table 1. Publications for IBM SMP/E for z/OS and OS/390, V3R1
Title Description
SMP/E Messages, Codes, and Diagnosis, GA22-7770 Explains SMP/E messages and return codes and the
actions to take for each; and how to handle suspected
SMP/E problems.
SMP/E Commands, SA22-7771 Explains SMP/E commands and processing in detail.
SMP/E Reference, SA22-7772 Explains SMP/E modification control statements, data
sets, exit routines, and programming interfaces in detail
and provides additional SMP/E reference material.
SMP/E User’s Guide, SA22-7773 Describes how to use SMP/E to install programs and
service.
or from anywhere in z/OS where you can access a TSO command line (for
example, TSO prompt, ISPF, z/OS UNIX System Services running OMVS).
To find a message explanation on the Internet, go to the LookAt Web site and
simply enter the message identifier (for example, IAT1836 or IAT*). You can select a
To use LookAt as a TSO command, you must have LookAt installed on your host
system. You can obtain the LookAt code for TSO from a disk on your z/OS
Collection, SK3T-4269 or from the LookAt Web site. To obtain the code from the
LookAt Web site, do the following:
1. Go to http://www.ibm.com/servers/eserver/zseries/zos/bkserv/lookat/lookat.html.
2. Click the News button.
3. Scroll to Download LookAt Code for TSO and VM.
4. Click the ftp link, which will take you to a list of operating systems. Select the
appropriate operating system. Then select the appropriate release.
5. Find the lookat.me file and follow its detailed instructions.
To find a message explanation from a TSO command line, simply enter: lookat
message-id. LookAt will display the message explanation for the message
requested.
Note: Some messages have information in more than one book. For example,
IEC192I has routing and descriptor codes listed in z/OS MVS Routing and
Descriptor Codes. For such messages, LookAt prompts you to choose which
book to open.
New Information
v An appendix with z/OS product accessibility information has been added.
Changed Information
v Table 22 on page 184 has been updated to include GIMCRSAM, GIMPRSAM,
and GIMSAMPU.
Moved Information
v None.
Deleted Information
v None.
Summary of Changes
for SA22-7773-01
SMP/E Version 3
New Information
v Appendix A, “Migration” on page 167 has been added.
v SMPPARM member GIMDDALC in “How to Dynamically Allocate Data Sets to Be
Used During SMP/E Processing” on page 59 has been added.
Changed Information
v “Example 1: Updating a Module” on page 154 has been updated.
Moved Information
v None.
Deleted Information
v Information related to backup IEANUC01 load modules has been removed.
For example, some of the functions that can appear in a Z/OS system include:
v Base Control Program (BCP)
v C/C++ IBM Open Class Library
v Communications Server (CS z/OS)
v Cryptographic Services
v DCE Application Support
v DCE Base Services
v DFSMSdfp
v DFSORT
v Distributed File Service
v Encina Toolkit Executive
v Hardware Configuration Definition (HCD)
v High Level Assembler (HLASM)
v IBM HTTP Server
v IBM License Manager (ILM)
v Infoprint Server
v ISPF
v JES2 or JES3
v Language Environment
v Managed System Infrastructure (msys) for Setup
v Network File System
v Open Systems Adapter/Support Facility (OSA/SF)
v Resource Measurement Facility (RMF)
v System Display and Search Facility (SDSF)
v SMP/E
To see where the object modules come from, let’s take a look at the example in
Figure 1.
Most of the time, object modules are sent to you as part of a product. In this
example, the object module MOD1 was sent as part of the product. Other times,
you may need to assemble source code sent to you by product packagers to create
the object module. You can modify the source code and then assemble it to
produce an object module. In the example, SRCMOD2 is source code that you
assemble to create object module MOD2. When assembled, you link-edit object
module MOD2 with object module MOD1 to form the load module LMOD1.
In addition to object modules and source code, most products distribute many
additional parts, such as macros, help panels, dialog elements, and other z/OS
library members. These modules, macros, and other types of data and code are the
basic building blocks of your system. All of these building blocks are called
elements.
There are four different categories of SYSMODs, each supporting a task you might
want to perform:
Function SYSMODs Introduce the elements for a product.
PTF (program temporary fix) SYSMODs
Prevent or fix problems with an element, or
introduce new element s.
APAR (authorized program analysis reports) SYSMODs
Fix problems with an element.
USERMOD (user modifications) SYSMODs
Customize an element.
Both base function SYSMODs and dependent function SYSMODs are used to
introduce new elements into the system.
Usually, PTFs are designed to replace or update one or more complete elements of
a system function. Let’s look at Figure 3.
PTF SYSMODs are always dependent upon the installation of a function SYSMOD.
In some cases, some PTF SYSMODs may also be dependent upon the installation
of other PTF SYSMODs. These dependencies are called prerequisites. We will look
at a typical PTF prerequisite when we discuss the complexity of keeping track of
the elements of the system.
The processing of the APAR SYSMOD provides a modification for object module
MOD2. During the installation of the APAR SYSMOD, MOD2 is updated (and
corrected) in load module LMOD2.
SYSMOD Prerequisites
As you have learned, PTF, APAR, and USERMOD SYSMODs all have the function
SYSMOD as a prerequisite. In addition to their dependencies on the function
SYSMOD:
v PTF SYSMODs may be dependent upon other PTF SYSMODs.
v APAR SYSMODs may be dependent upon PTF SYSMODs and other APAR
SYSMODs.
v USERMOD SYSMODs may be dependent upon PTF SYSMODs, APAR
SYSMODs, and other USERMOD SYSMODs.
Consider the complexity of these dependencies. When you multiply that complexity
by hundreds of load modules in dozens of libraries, the need for a tool like SMP/E
becomes apparent.
But what happens if a second PTF replaces some of the code in a module that was
replaced by PTF1? Let’s look at Figure 7.
In this example, PTF2 contains replacements for MOD2 and MOD3. For MOD1,
MOD2, and MOD3 to interface successfully, PTF1 must be installed before PTF2.
That’s because MOD3 supplied in PTF2 may depend on the PTF1 version of MOD1
to be present. It is this dependency that constitutes a prerequisite. SYSMOD
prerequisites are identified in the modification control statements (MCS) part of the
SYSMOD package we discussed in “Changing the Elements of the System” on
page 2.
In Figure 8, the same MOD2 module is present in LMOD1, LMOD2, and LMOD3.
When a PTF is introduced that replaces the element MOD2, that module must be
replaced in all the load modules in which it exists. Therefore, it is imperative that we
keep track of all load modules and the modules they contain.
You can now appreciate how complicated the tracking of system elements and their
modification levels can become. Let’s take a brief look at how we implement the
tracking capabilities of SMP/E.
SMP/E uses these modification identifiers to track all SYSMODs installed on your
system. This ensures that they are installed in the proper sequence. Now that we
realize the need for element tracking and know the types of things SMP/E tracks,
let’s look at how SMP/E performs its tracking function.
If you look at this figure depicting the public library, you see bookshelves filled with
books and a card catalog with drawers containing a card for each book in the
library. These cards contain information, such as the title, author, publishing dates,
type of book, and a pointer to the actual book on the shelf.
In the SMP/E environment, there are two distinct types of “bookshelves.” They are
referred to as the distribution libraries and the target libraries. Figure 10 on page 11
depicts these two types of SMP/E libraries.
In much the same way the bookshelves in the public library hold the library books,
the distribution and target libraries hold the elements of the system.
Distribution libraries contain all the elements, such as modules and macros, that
are used as input for running your system. One very important use of the
distribution libraries is for backup. Should a serious error occur with an element on
the production system, the element can be replaced by a stable level found in the
distribution libraries.
Target libraries contain all the executable code needed to run the system.
The CSI data sets contain all the information SMP/E needs to track the distribution
and target libraries. As the card catalog contains a card for each book in the library,
the CSI contains an entry for each element in its libraries. The CSI entries contain
the element name, type, history, how the element was introduced into the system,
and a pointer to the element in the distribution and target libraries. The CSI does
not contain the element itself, but rather a description of the element it represents.
Let’s see exactly how these entries are arranged in the CSI.
In addition to the distribution and target zones, the SMP/E CSI also contains a
global zone. The global zone contains:
v Entries needed to identify and describe each target and distribution zone to
SMP/E
v Information about SMP/E processing options
v Status information for all SYSMODs SMP/E has begun to process
All the information found in the global zone, combined with the information found in
the distribution and target zones, represents the data SMP/E needs to install and
track your system software.
Remember the picture of the public library in Figure 9 on page 10? Now look at
Figure 11.
Now you can see how all the elements of the system fit together, and how they can
be installed, modified, and tracked using SMP/E.
The SET command can also be used to request a particular set of predefined
processing options. For more information about the SET command, refer to SMP/E
Commands.
For more information about the RECEIVE command, refer to “Receiving the
SYSMOD into SMP/E’s Data Sets” on page 14.
For more information about the APPLY command, refer to “Applying the SYSMOD
to the Target Libraries” on page 18.
For more information about the RESTORE command, refer to “Restoring the Target
Libraries to the Previous Level” on page 22.
For more information about the ACCEPT command, refer to “Accepting the
SYSMOD into the Distribution Libraries” on page 25.
For more information about displaying SMP/E data, refer to “Displaying SMP/E
Data” on page 29.
In this chapter, you will learn about those data sets and the following topics:
For more details about packaging, see the MVS Packaging Rules manual.
During RECEIVE processing, the MCS for each SYSMOD is copied to an SMP/E
temporary storage area called the SMPPTS data set. The MCS entry contains the
MCS and any inline element replacements or updates for the SYSMOD. Relative
files, however, are stored in another temporary storage area called the SMPTLIB
data sets.
We briefly mentioned HOLDDATA earlier in the book (see “The SMP/E Zones” on
page 11). HOLDDATA is processed by the RECEIVE command and is stored for
use later on during installation of the affected SYSMODs.
Examples
Let’s look at a few of these examples.
When you issue these commands, SMP/E receives all the SYSMODs and
HOLDDATA on the service tape into the global zone.
Receiving Only HOLDDATA: There may be times when you do not want to
receive the SYSMODs from a service tape, but you do want to receive the
HOLDDATA. Because the HOLDDATA provides information about SYSMODs
requiring special handling or that are in error, it is important for you to receive the
HOLDDATA into SMP/E’s storage repository as soon as possible. The following
commands process only the HOLDDATA:
SET BDY(GLOBAL).
RECEIVE HOLDDATA.
By issuing these commands, you direct SMP/E to receive only the HOLDDATA from
the service tape into the global zone.
When you issue these commands, you direct SMP/E to receive only the SYSMODs
from the service tape into the global zone.
Receiving SYSMODs and HOLDDATA for a Specific Product: You may want to
receive SYSMODs and HOLDDATA for a particular product from the service tape.
You can accomplish this task by specifying the following commands:
SET BDY(GLOBAL).
RECEIVE FORFMID(HOP0001).
For a more complete description of all the RECEIVE command operands and other
examples, see The RECEIVE Command in SMP/E Commands.
Reporting Output
When RECEIVE processing is complete, these reports will help you analyze the
results:
v The RECEIVE Summary report provides you with an at-a-glance look at all the
SYSMODs that were processed during the RECEIVE command run. It shows you
which SYSMODs were received, which were not received, and why.
Note: The SYSMODs listed in this report depend on the operands you specify
on the RECEIVE command.
v The RECEIVE Exception SYSMOD Data report provides you with a quick
summary of the HOLDDATA information processed during the RECEIVE
command run. It lists the SYSMODs requiring special handling or that are in
error, and those SYSMODs no longer requiring special handling or that have had
an error fixed.
v The File Allocation report provides you with a list of the data sets used for
RECEIVE processing and supplies information about these data sets.
For more information about these reports (and samples of actual reports), see
SMP/E Reports in SMP/E Commands.
Summary
Let’s summarize what you have learned about using the RECEIVE command to
load a SYSMOD into SMP/E’s storage area. The RECEIVE command:
v Copies the MCS for each SYSMOD to the SMPPTS data set
v Loads elements into SMPTLIB data sets for SYSMODs using the relative file
packaging method
v Records what is received in the global zone
– SYSMOD entries
– HOLDDATA entries
v Reports the results of processing
Note: Because the APPLY command updates the system libraries, you should
never use it on a live production system. When you process the APPLY
command, you should always use a copy of the target libraries and target
zone. By using a copy, you minimize the risk of new code causing an outage
of your system. This process of copying is called cloning and is explained in
detail in the OS/390 Software Management Cookbook, SG24-4775.
Examples
Let’s look at a few examples of how you might use the APPLY command.
Applying PTF SYSMODs: After you have received the SYSMODs into the global
zone, you can tell SMP/E that you want to install only the PTF SYSMODs. You can
do this by specifying the following commands:
SET BDY(ZOSTGT1).
APPLY PTFS.
By issuing these commands, you direct SMP/E to apply all eligible PTF SYSMODs
to target zone ZOSTGT1.
Suppose you do not want to install all the PTF SYSMODs, but only a select few.
You can do this by specifying the following commands:
SET BDY(ZOSTGT1).
APPLY SELECT(UZ00001,UZ00002).
Applying APAR and USERMOD SYSMODs: You may want to install just
corrective fixes (APARs) or user modifications (USERMODs) into the target
libraries. You can accomplish this with the following commands:
SET BDY(ZOSTGT1).
APPLY APARS
USERMODS.
When you issue these commands, SMP/E installs all eligible APARs and
USERMODs into target zone ZOSTGT1.
Applying SYSMODs for Selected Products: There may be times when you want
to update only certain products on your system with the SYSMODs contained on a
service tape. Assume you want to install all PTFs for a particular product to your
system. This can be accomplished by specifying the following commands:
SET BDY(ZOSTGT1).
APPLY PTFS
FORFMID(HOP0001).
or
SET BDY(ZOSTGT1).
APPLY FORFMID(HOP0001).
In both cases, SMP/E applies all applicable PTFs for the product with FMID
HOP0001 to target zone ZOSTGT1. Unless you specify otherwise, PTFS is the
default SYSMOD type.
Assume you want to update a product with all the eligible PTFs and APARs. You
can do this by specifying the following commands:
SET BDY(ZOSTGT1).
APPLY PTFS
APARS
FORFMID(HOP0001)
GROUPEXTEND.
By issuing these commands, you direct SMP/E to apply all PTFs and APARs, along
with any other required SYSMODs to the product whose FMID is HOP0001 and is
located in the ZOSTGT1 target zone. If SMP/E cannot find a required SYSMOD, it
looks for and uses a SYSMOD that supersedes the required one.
Applying SYSMODs Using the CHECK Operand: In the previous example, you
directed SMP/E to automatically include all SYSMODs needed for the specified
product. There may be times when you want to see which SYSMODs are included
before you actually install them. You can do this with the CHECK operand by
issuing the following commands:
After these commands are processed, you can check the SYSMOD Status report to
see which SYSMODs would have been installed if you had not specified the
CHECK operand. If you are satisfied with the results of this trial run, you can issue
the commands again, without the CHECK operand, to actually install the
SYSMODs.
For a more complete description of all the APPLY command operands, and for
additional examples, see APPLY Command in SMP/E Commands.
Reporting Output
When APPLY processing is complete, these reports will help you analyze the
results:
v The SYSMOD Status report provides you with a summary of the processing that
took place for each eligible SYSMOD, based on the operands you specified on
the APPLY command. It shows you which SYSMODs were applied, which were
not applied, and why.
v The Element Summary report provides you with a detailed look at each
element affected by APPLY processing. It tells you in which libraries the elements
were installed.
v The Causer SYSMOD Summary report provides you with a list of SYSMODs
that caused other SYSMODs to fail, and describes the errors that must be fixed
to successfully process the SYSMODs. This report can reduce the amount of
work involved in figuring out which errors caused SYSMODs to fail.
v The File Allocation report provides you with a list of the data sets used for
APPLY processing and supplies information about these data sets.
Additional reports may be produced depending on the work being done and the
content of the SYSMODs. For more information about all the reports produced by
the APPLY command (and samples of actual reports), see The APPLY Command in
SMP/E Commands.
Summary
Let’s summarize what you have learned about using the APPLY command to install
a SYSMOD in the target libraries. The APPLY command:
v Selects SYSMODs to install
v Checks that all other required SYSMODs have been (or are being) installed
v Based on SYSMODs, selects elements to install
v Directs SMP/E to call the system utilities to update the target libraries
v Records what is applied:
– Target zone: Creates SYSMOD entries and element entries
– Global zone: Updates SYSMOD entries
– SMPSCDS data set: Creates BACKUP entries
v Reports the results of processing
You can use the RESTORE command to remove SYSMODs from the target
libraries and restore them to a previous level. The RESTORE command reverses
APPLY processing, but has no effect on ACCEPT processing.
Examples
Let’s look at a few examples of how you might use the RESTORE command.
Restoring a Single SYSMOD: Assume you have applied a SYSMOD and, after
some initial testing, you discover that a PTF SYSMOD is causing problems on your
system. You can remove this SYSMOD by specifying the following commands:
SET BDY(ZOZTGT1).
RESTORE SELECT(UZ00001).
Restoring SYSMODs Using the GROUP Operand: When you want to remove a
particular SYSMOD, it is not always easy to determine other SYSMODs that need
to be restored in order to remove the bad one. Assume a particular PTF SYSMOD
is causing a problem, and you want to know if it is dependent on any other
SYSMODs so you can also restore those SYSMODs. This can be accomplished by
specifying the following commands:
SET BDY(ZOZTGT1).
RESTORE SELECT(UZ00003)
GROUP.
By issuing these commands, you instruct SMP/E to restore PTF UZ00003 and any
other related PTFs from target zone ZOZTGT1, and replace their elements with the
previous level from the distribution zone.
Restoring SYSMODs Using the CHECK Operand: In the previous example, you
directed SMP/E to restore any dependent SYSMODs in order to remove the bad
one. There may be times when you want to see which SYSMODs are restored
without actually restoring them. You can do this with the CHECK operand by issuing
the following commands:
SET BDY(ZOZTGT1).
RESTORE SELECT(UZ00003)
GROUP
CHECK.
After these commands are processed, you can check the SYSMOD Status report to
see which SYSMODs would have been restored if you had not specified the
CHECK operand. If you are satisfied with the results of this trial run, you can issue
the commands again, without the CHECK operand, to actually restore the
SYSMODs.
For a more complete description of all the RESTORE command operands, and for
additional examples, see The RESTORE Command in SMP/E Commands.
Reporting Output
When RESTORE processing is complete, these reports will help you analyze the
results:
v The SYSMOD Status report provides you with a summary of the processing that
took place for each eligible SYSMOD, based on the operands you specified on
the RESTORE command. It shows you which SYSMODs were restored, which
were not restored, and why.
v The Element Summary report provides you with a detailed look at each
element replaced or modified by RESTORE processing. It tells you in which
libraries the elements were restored.
v The Causer SYSMOD Summary report provides you with a list of SYSMODs
that caused other SYSMODs to fail, and describes the errors that must be fixed
to successfully process the SYSMODs. This report can reduce the amount of
work involved in figuring out which errors caused SYSMODs to fail.
v The File Allocation report provides you with a list of the data sets used for
RESTORE processing and supplies information about these data sets.
Summary
Let’s summarize what you have learned about using the RESTORE command to
remove a SYSMOD from the target libraries. The RESTORE command:
v Removes the SYSMOD from the indicated target zone
v Calls system utilities to replace the SYSMOD’s elements in the target libraries
with elements from the related distribution libraries
v Records what is restored:
– Target zone: Restores element entries to reflect their distribution zone level
and deletes all information about restored SYSMOD.
– Global zone: Deletes SYSMOD entries and MCS statements in SMPPTS for
restored SYSMOD. Any SMPTLIB data sets created during RECEIVE
processing are also deleted for the restored SYSMOD. (This global zone
processing is optional.)
– SMPSCDS data set: Deletes BACKUP entries for restored SYSMOD.
v Reports the results of processing
Note: Not all SYSMODs can be restored. For example, SMP/E cannot restore a
SYSMOD that deletes another SYSMOD or that deletes a load module
during APPLY processing.
Note: When ACCEPT processing has been completed, there is no way it can be
undone.
Figure 16 on page 27 shows what you have learned about ACCEPT processing.
Examples
Let’s look at a few examples of how you might use the ACCEPT command.
Accepting PTF SYSMODs: After you have applied the SYSMODs into the target
zone, you can define to SMP/E that you want to install only the PTF SYSMODs into
the distribution zone. You can do this by specifying the following commands:
SET BDY(ZOSDLB1).
ACCEPT PTFS.
By issuing these commands, you direct SMP/E to accept all eligible PTF SYSMODs
into distribution zone ZOSDLB1.
Suppose you do not want to install all the PTF SYSMODs, but only a select few.
You can do this by specifying the following commands:
SET BDY(ZOSDLB1).
ACCEPT SELECT(UZ00001,UZ00002).
When you issue these commands, only PTFs UZ00001 and UZ00002 are installed
in distribution zone ZOSDLB1.
Accepting SYSMODs for Selected Products: There may be times when you
want to update only certain products on your system with the SYSMODs contained
on a service tape. Assume you want to install all PTFs for a particular product. This
can be accomplished by specifying the following commands:
or
SET BDY(ZOSDLB1).
ACCEPT FORFMID(HOP0001).
In both cases, SMP/E accepts all applicable PTFs for the product whose FMID is
HOP0001 and that is located in distribution zone ZOSDLB1. Unless you specify
otherwise, PTFS is the default SYSMOD type.
Assume you want to process all PTFs for a product on your system, and you want
to ensure that all other required SYSMODs are also processed. You can do this by
specifying the following commands:
SET BDY(ZOSDLB1).
ACCEPT PTFS
FORFMID(HOP0001)
GROUPEXTEND.
By issuing these commands, you direct SMP/E to accept all PTFs, along with any
other required SYSMODs, to the product whose FMID is HOP0001 and is located in
the ZOSDLB1 target zone. If SMP/E cannot find a required SYSMOD, it looks for
and uses a SYSMOD that supersedes the required one.
After these commands are processed, you can check the SYSMOD Status report to
see which SYSMODs would have been installed if you had not specified the
CHECK operand. If you are satisfied with the results of this trial run, you can issue
the commands again, without the CHECK operand, to actually install the
SYSMODs.
For a more complete description of all the ACCEPT command operands and other
examples, see The ACCEPT Command in SMP/E Commands.
Reporting Output
When ACCEPT processing is complete, these reports will help you analyze the
results:
Additional reports may be produced depending on the work being done and the
content of the SYSMODs. For more information about all the reports produced by
the ACCEPT command (and samples of actual reports), see The ACCEPT
Command in SMP/E Commands.
Summary
Let’s summarize what we have learned about using the ACCEPT command to
install a SYSMOD in the distribution (or backup) libraries. The ACCEPT command:
v Selects SYSMODs to install
v Checks that all other required SYSMODs have been (or are being) installed
v Based on SYSMODs, selects elements to install
v Directs SMP/E to call the system utilities to update the distribution libraries
v Records what is accepted:
– Distribution zone: Creates SYSMOD entries and element entries.
– Global zone: Deletes SYSMOD entries and MCS statements in SMPPTS. Any
SMPTLIB data sets created during RECEIVE processing are also deleted.
(This global zone processing is optional.)
v Reports the results of processing
In this chapter, you will learn about the kinds of information that help you manage
your system and the best method by which the information can be obtained.
v Query dialogs: The easiest and fastest way to obtain just the information you
want
v LIST command: When you need an all-inclusive hardcopy listing of information
about your system
v REPORT commands: To check and compare the zone contents and generate
command output that can be used to update your system
v SMP/E CSI application programming interface: To write an application
program to query the contents of your system’s CSI data sets.
You can use the SMP/E dialogs to view a SYSMOD, even if it has been compacted.
Use the Query dialog (zone is GLOBAL, entry type MCS, entry name is the
SYSMOD name) and you will be shown the complete SYSMOD in an edit session.
You may save the SYSMOD in a different location from this session. If you are
using SMPPTS spill data sets, there is another benefit of viewing the SYSMOD
from the Query dialog, in that you do not have to know in which SMPPTS data set
the SYSMOD is stored; SMP/E will find it for you.
To get to the Query dialogs, you select SMP/E (option 1) on the initial SMP/E dialog
panel (CIDPGV2). Then, on the main menu for SMP/E options (GIM@PRIM), select
Query (option 3). This takes you to the initial Query panel, shown in Figure 17. If
you need assistance with using the Query dialogs, (or any of the SMP/E dialogs),
help panels are available.
Let’s assume you want to find out which SYSMODs have been applied to a
particular target zone on your system. You can accomplish this task using the
QUERY SELECTION MENU and selecting the CSI QUERY option (1), as shown in
Figure 17.
When the CSI QUERY panel is displayed (see Figure 18 on page 31), you can
indicate that you want SMP/E to check target zone ZOSTGT1 for all SYSMOD
entries.
Because the ENTRY NAME was left blank on the CSI QUERY panel, SMP/E
displays another panel (see Figure 19) that lists all the SYSMOD entries in target
zone ZOSTGT1.
S NAME ACTION
AZ00005
s UZ00001
UZ00002
The CSI QUERY - SELECT ENTRY panel shows that SYSMODs AZ00005,
UZ00001, and UZ00002 have been applied to target zone ZOSTGT1. If you want
more information about the contents of SYSMOD UZ00001, you can select that
entry by entering an S next to it, and another panel is displayed (see Figure 20 on
page 32).
The CSI QUERY - SYSMOD ENTRY panel displays all the relevant information
pertaining to SYSMOD UZ00001.
As you can see, the QUERY dialog panels provide a quick and easy way for you to
obtain information about your system.
The LIST command can provide you with a listing of this information.
Examples
Let’s look at a few basic examples of how you might use the LIST command.
Listing Entries in a Particular Zone: In the course of managing your system, you
might need to know which SYSMOD entries exist in the global zone. You can find
this out by specifying the following commands:
SET BDY(GLOBAL).
LIST SYSMODS.
By issuing these commands, you direct SMP/E to list all the SYSMOD entries in the
global zone.
Listing Specific Entries: Suppose you discover a problem on your system and
need to determine whether a particular SYSMOD has been installed in the target
zone. You can accomplish this by specifying the following commands:
SET BDY(ZOSTGT1).
LIST SYSMOD(UZ00001).
By issuing these commands, you direct SMP/E to provide you with information
about SYSMOD UZ00001 in target zone ZOSTGT1.
By issuing these commands, you direct SMP/E to list the SYSMODs that have been
received, but have not yet been applied to target zone ZOSTGT1.
Reporting Output
When LIST processing is complete, these reports will provide you with the
information that was requested:
v The LIST Summary report provides you with information about the type of entry,
name of entry, and status of entry for zones and data sets you have specified.
v The File Allocation report provides you with a list of the data sets used for LIST
processing, and supplies information about these data sets.
For a more complete description of the LIST command, additional examples, and
samples of actual reports, see The LIST Command in SMP/E Commands.
One of the REPORT commands (REPORT SYSMODS) is very useful if you want to
compare the SYSMODs installed in two zones. This command allows you to
compare the following:
v One distribution zone to another distribution zone
v One target zone to another target zone
v A distribution zone to a target zone
v A target zone to a distribution zone
Example
Let’s look at a basic example of how you might use the REPORT SYSMODS
command. Assume you have two systems using the same global zone, and you
want to check which SYSMODs are installed in a target zone on one system, but
are not installed in a target zone on the other system. You can accomplish this by
specifying the following commands:
SET BDY(GLOBAL).
REPORT SYSMODS
INZONE(ZOSTGT1)
COMPARED(ZOSTGT2).
By issuing these commands, you direct SMP/E to compare the SYSMOD content of
zone ZOSTGT1 to that of zone ZOSTGT2. Any SYSMODs that are in zone
ZOSTGT1 and are not in zone ZOSTGT2 appear in the resulting report.
SMP/E also provides output you can use to install those SYSMODs you deem
appropriate.
Summary
Let’s summarize what you have learned about using the Query dialogs, the LIST
command, the REPORT command, and the CSI API to check SMP/E’s records for
your system:
v Query dialogs: Easy and fast way to obtain information
v LIST command: Best for hardcopy listing
v REPORT commands: Best for checking and comparing zone contents
v SMP/E CSI application programming interface: Best for writing an application
program to query the contents of your system’s CSI data sets.
What Is SMP/E?
SMP/E is the basic tool for installing and maintaining software in OS/390 or z/OS
systems and subsystems. It controls these changes at the element level by:
v Selecting the proper levels of elements to be installed from a large number of
potential changes
v Calling system utility programs to install the changes
v Keeping records of the installed changes
SMP/E is an integral part of the installation, service, and maintenance processes for
CBPDOs, ProductPacs, RefreshPacs, and selective follow-on service for
CustomPacs. In addition, SMP/E can be used to install and service any software
that is packaged in SMP/E system modification (SYSMOD) format.
SMP/E can be run either using batch jobs or using dialogs under Interactive System
Productivity Facility/Program Development Facility (ISPF/PDF). SMP/E dialogs help
you interactively query the SMP/E database, as well as create and submit jobs to
process SMP/E commands.
These are some of the types of software that can be installed by SMP/E:
v Products and service provided in CBPDOs and CustomPac offerings
v Products and service from IBM Software Distribution Centers not provided in
CBPDOs or CustomPac offerings
v Service provided in Expanded Service Options (ESOs)
v Other products and service
SMP/E can install software from any of these sources, provided it is packaged as a
system modification, or SYSMOD.
Note: If you want to package a user application program or new system function
in SMP/E format, the correct way is to build a base or dependent function
SYSMOD, not a USERMOD.
Figure 21 on page 37 shows the hierarchy of the various SYSMOD types. This
example shows two service chains: one for the base function HZY1101 and one for
the dependent function JZY1121.
SMP/E keeps track of the functional and service levels of each element and uses
the SYSMOD hierarchy to determine such things as which functional and service
levels of an element should be installed and the correct order for installing updates
for elements. For more information about how SMP/E determines the processing
order of changes, as well as the functional and service levels of elements, see The
APPLY Command and The ACCEPT Command in SMP/E Commands.
There can be more than one zone in an SMPCSI data set (in fact, there can be
up to 32766 zones per data set). For example, an SMPCSI data set can contain
a global zone, several target zones, and several distribution zones. The zones
can also be in separate SMPCSI data sets. One SMPCSI data set can contain
just the global zone, a second SMPCSI data set the target zones, and a third
SMPCSI data set the distribution zones. For more information on ways to
structure SMPCSI data sets, see the SMP/E Reference manual.
v An SMPPTS (PTS) data set is a data set for temporary storage of SYSMODs
waiting to be installed.
SMP/E uses information in the CSI data sets to select proper element levels for
installation, to determine which libraries should contain which elements, and to
identify which system utilities should be called for the installation.
System programmers can also use the CSI data sets to obtain the latest information
on the structure, content, and status of the system. SMP/E provides this information
in reports, listings, and dialogs to help you:
v Investigate function and service levels
v Understand intersections and relationships of SYSMODs (either installed or
waiting to be installed)
v Build job streams for SMP/E processing
Where to Begin
You must specify a SET command before SMP/E can process any other
commands.
You must tell SMP/E which zone you are working with before it can execute any
other commands. You direct SMP/E processing to a specific zone by coding the
zone name on the SET command.
Installing SYSMODs
The primary purpose of SMP/E is to install SYSMODs. This section describes the
tasks and commands you can use.
Note: The RECEIVE command can also be used to transfer software packages
from a TCP/IP network connected server directly into an SMP/E directory or
data sets.
Note: Though the usual order of processing a SYSMOD is RECEIVE, APPLY, and
then ACCEPT, you skip the APPLY step and go directly from RECEIVE to
ACCEPT. For further information, see Chapter 4, “Installing a New Function”
on page 83.
You can also use REJECT after you use NOPURGE to accept a SYSMOD into the
distribution libraries. Using NOPURGE in the OPTIONS entry prevents SMP/E from
deleting the global zone SYSMOD entry and the PTS MCS entry during ACCEPT
processing. Later, you can delete the SYSMOD and MCS entries by using REJECT.
You can also use UCLIN to correct errors in entries or to alter processing
information.
Note: This command should be used with extreme caution; an incorrect change
can cause a SYSMOD to be installed incorrectly later.
UCLIN updates only entries in SMP/E data sets. It does nothing to any elements or
load modules in any product libraries. You must ensure that the appropriate
changes are made to the libraries.
The JCLIN command enables you to define the target library structure. In some
instances, such as defining the target library structure for data elements, it is not
necessary to use JCLIN, because the definition in the MCS statement is sufficient.
When processing the JCLIN command, you provide SMP/E with a job stream
containing all the job steps (such as copies, link-edits, and assemblies) needed to
create a set of target libraries from a set of distribution libraries. SMP/E then scans
that input and builds all required entries to define the target system structure.
Managing Zones
This section describes the tasks and commands you can use to manage zones.
Multiple CSIs enable you to use more than one VSAM data set for the global,
target, and distribution zones. These are some reasons for having multiple CSI data
sets:
Example 1: Using a Separate Global Zone for Each Subsystem: In Figure 25, the
existing DASD structure for the libraries is maintained, and a separate global zone
is defined for each of the subsystems (MVS, JES3, and IMS). This CSI structure
keeps control of the three subsystems separate. You might use this structure if the
system programming support for the three subsystems is organizationally separate.
A disadvantage is that there is no single control point (global zone) from which to
manage or query the entire system.
Example 2: Using a Single CSI for the Whole System: In Figure 26 on page 49, all
the SMP/E control information for the system is contained in a single CSI. The
system structure is reflected by separate zones for MVS, JES3, and IMS. This CSI
structure provides a single control point from which to manage or query the entire
system.
Example 3: Using a Master CSI and Multiple CSIs: In Figure 27 on page 50, one
global zone is defined for the entire system in a master CSI, and separate CSIs are
allocated for the JES3 and IMS subsystems on the packs where the subsystem
libraries reside. This CSI structure provides the advantages of a common control
point (as in Example 2) and keeps the SMP/E control information physically
associated with the libraries it describes. This is useful when you dump packs for
backup.
Example 4: Using a Master CSI and a Separate CSI for Each Zone: In Figure 28
on page 51, one global zone is defined for the entire system in a master CSI, and
separate CSIs are allocated for the JES3 and IMS subsystems on the packs where
the subsystem libraries reside. Unlike Example 3, each zone is in its own separate
CSI. This CSI structure provides the advantages of a common control point (as in
Example 2) and keeps the SMP/E control information physically associated with the
libraries it describes. This is useful when you dump packs for backup.
Figure 28. Using a Master CSI and a Separate CSI for Each Zone
Example 5: Using a Master CSI and One CSI per SREL: In Figure 29 on page 52,
one global zone is defined for the entire system in a master CSI, and separate CSIs
are allocated for each SREL (MVS, CICS, NCP, and IMS/DB2). The target zones
and DLIB zones associated with a given SREL are in the same CSI. This CSI
structure provides the advantages of a common control point through one global
zone (as in Example 2) and keeps the SMP/E control information physically
associated with the libraries it describes. This is useful when you dump packs for
backup.
Figure 29. Using a Master CSI and One CSI per SREL
Catalog Considerations
When you catalog the CSI data sets used by SMP/E, remember these
considerations:
v User catalogs: You should catalog each CSI in a user catalog, not in the master
catalog. However, the user catalog does not need to be on the same volume as
the CSI.
v Alias entries for user catalogs: Catalog information should be accessible
through your master catalog. One way to do this is to define each user catalog
as an alias in the master catalog. For an example of defining an alias for a user
catalog, see “Defining an Alias Entry for a User Catalog” on page 54. Defining
alias entries for user catalogs enables you to access all the CSI data sets without
having to use a STEPCAT DD statement. Also, it eliminates the need to restore
both the DASD containing the master catalog and the DASD containing the CSI
after an I/O error.
If no alias is defined for the user catalog, you must include a STEPCAT DD
statement each time SMP/E is called.
Note: If you are operating in a multiple CSI environment, make sure of the
following:
– That the index CI sizes are equal.
– That the data CI sizes are equal.
v CYLINDERS
The DATA and INDEX CYLINDERS values are only estimated starting values.
Your cylinder values may vary according to the device type, the software
arrangement, the amount of service you install, and the number of CSIs.
The following job creates an alias entry in the master catalog for a CSI data set
named SMPE.SMPCSI.CSI that is cataloged in a user catalog named SMPECAT:
//CREATE JOB ’accounting info’,MSGLEVEL=(1,1)
//ALIAS EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
DEFINE ALIAS -
(NAME(SMPE) -
RELATE(SMPECAT)) -
CATALOG(AMASTCAT/password)
/*
If the CSI data sets are cataloged in different user catalogs, they must have
different high-level qualifiers.
Figure 30 illustrates how zone definition entries define the relationships between
zones.
After you have defined the zones for your system, you can create other entries.
SMP/E zones contain two basic types of entries:
v Entries controlling SMP/E processing.
You generally define processing control entries through the SMP/E Administration
dialogs or with the UCLIN command. Table 2 on page 56 summarizes the
information specified in these entries.
v Entries describing the structure and status of the target and distribution libraries.
Status and structure entries are generally created by SMP/E when you install
SYSMODs, run the JCLIN command, or copy entries from one zone to another.
Table 3 on page 56 summarizes the information specified in these entries.
Table 3. Entries Describing the Status and Structure of the Target and Distribution Libraries
Type of Information Entry Type Zone Where Defined
Global Target DLIB
Assembler statements that can be assembled to ASSEM X X
create an object module
Data elements installed in the target or Data element entries X X
distribution libraries (data elements are
elements other than macros, modules, or
source)
Distribution libraries that were totally copied to DLIB X X
target libraries
Elements installed in a hierarchical file system Hierarchical file system X X
(HFS) element entries
Load module information LMOD X X
Macros that have been installed in the target or MAC X X
distribution libraries
Module source that has been installed in the SRC X X
target or distribution libraries
Modules used to create load modules in the MOD X X
target libraries
Program objects PROGRAM X X
After examining the LISTCAT output, you may determine that the CSI should be
reorganized to eliminate splits in the control intervals or control areas and to reset
the amount of free space available. This can be done through the access method
services EXPORT and IMPORT commands. Once a CSI has been exported, a new
CSI can be allocated, and the exported CSI can be imported so that normal SMP/E
processing can continue.
Note: These examples are not the only way of compressing the CSI. You may
prefer to use another method, drawing on your experience and knowledge of
VSAM.
Each PTS data set must be associated with only one global zone. The allocation of
space and directory blocks for the SMPPTS depends on your plans for installing
and maintaining the functions managed by the global zone. For more information
about allocating the SMPPTS data set, see SMP/E Reference.
Each backup copy of an entry is associated with the SYSMOD that caused the
entry to be backed up. Together, the collection of entries associated with a
SYSMOD is called the BACKUP entry for that SYSMOD. When you process the
SCDS (for example, to list entries), you can specify only BACKUP entries; you
cannot process individual entries within a BACKUP entry.
Each target zone within a CSI must have its own SCDS. The correct SCDS to be
used during processing is determined either by the SMPSCDS DDDEF entry in
each specific target zone or by a DD statement in the JCL. An SCDS can be
allocated the same way as any normal partitioned data set. The allocation of space
and directory blocks for this data set depends on your plans for installing and
maintaining functions. For more information about allocating the SMPSCDS data
set, see SMP/E Reference.
There are some drawbacks to using DD statements. For example, all the data sets
defined by DD statements must be successfully allocated, regardless of whether
they are needed for the command being processed. In addition, if you are running
several SMP/E commands, you must be careful to use the correct DD statements
for each command. If you are processing zones that are in different CSI data sets,
you must make sure to provide a DD statement that points to each of those zones
and their associated CSIs.
With dynamic allocation, you do not have these problems. Subsequent sections
describe the sources from which SMP/E can get the information it needs to allocate
data sets dynamically and how it chooses which of these sources to use.
DDDEF Entries
You can use DDDEF entries to provide SMP/E with information it needs to allocate
any of the following:
v Permanent data sets, such as target libraries, distribution libraries, and SMP/E
data sets
v Temporary data sets
v SYSOUT data sets
v Work data sets
v Pathnames for elements and load modules residing in a hierarchical file system
(HFS)
The name of the DDDEF entry must match the ddname of the data set it describes
and the entry must exist in the zone that uses the data set. DDDEF entries provide
more flexibility than DD statements; they enable different zones to use different data
sets for the same ddname and they use resources more efficiently because they
allow SMP/E to allocate only the data sets it needs.
For more information about DDDEF entries, see the SMP/E Reference manual.
Standard Defaults: SMPOUT and SYSPRINT are critical for SMP/E to operate
properly. Therefore, in case they are not defined, SMP/E has built-in defaults for
them.
v SMPOUT is allocated either as SYSOUT (for background processing) or to the
terminal (for foreground processing).
v SYSPRINT is allocated as SYSOUT.
Figure 31 shows how OPTIONS entries, UTILITY entries, zone definition entries,
and the SET command are related.
Figure 31. Relationships of OPTIONS, UTILITY, Zone Definition Entries and the SET
Command
For examples of these steps, see “Example: How to Request the Desired Utility
Processing”. For more detailed information, see OPTIONS Entry, UTILITY Entry,
GLOBALZONE Entry, DLIBZONE Entry, and TARGETZONE Entry in SMP/E
Reference, and the SET command in SMP/E Commands.
Note: You can also restrict the utility programs that SMP/E can use by modifying
the information in module GIMUTTBL, which is provided by SMP/E. For
more information, see the GIMUTTBL chapter in SMP/E Reference.
The following UCL defines the desired UTILITY entry for your program:
SET BDY(GLOBAL) /* Set to global zone. */.
UCLIN /* */.
ADD UTILITY(MYX37) /* Retry/recovery program. */
NAME(USERRCVR) /* Program name. */
PARM(TYPE=FAST) /* PARM value. */
PRINT(X37PRINT) /* SYSPRINT ddname. */
RC(4) /* Highest acceptable */
/* return code. */
LIST(NO) /* No list of member names. */
/* */.
ENDUCL /* */.
This section explains what you need to define in order to have SMP/E attempt retry
processing for x37 abends.
RETRYDDN(ALL)
EXRTYDD(LINKLIB,MIGLIB,
NUCLEUS)
.
ENDUCL .
You will use the defaults for the retry utility as shown in
3 Decide whether to use the default RETRY UTILITY
Table 4 on page 61.
entry, or to point to and define a RETRY UTILITY
entry that specifies the desired information.
The SMP/E dialogs use the TSO OUTPUT, SUBMIT, and STATUS commands.
Therefore, to support these commands, you must provide a TSO IKJEFF53 user
installation exit routine that does not restrict the TSO OUTPUT and STATUS
commands to job names beginning with the user’s user ID. For details, see z/OS
TSO/E Customization.
Notes:
1. Include GIM.SGIMTENU and the SMPTABL data set in the ISPTLIB
concatenation.
2. Use the ISPCTL1 and ISPCTL2 files to generate JCL for submitted SMP/E jobs.
The SMP/E job submit facility lets you browse and edit this JCL. You can omit
these files from your logon procedure and let ISPF automatically allocate them
as needed.
To save the input JCL generated by the dialogs, either:
v Use EDIT CREATE while in the generated JCL to save it in another
(permanent) data set, or
v Allocate a permanent sequential data set to ISPCTL1 (LRECL=80,
RECFM=FB) before you enter the SMP/E dialogs.
3. Allocate a single, installation-wide table data set to the ISPTLIB and SMPTABL
DD statements.
v SMP/E uses this table data set to save process status information for the
SYSMOD management dialogs.
v The data set must be a partitioned data set (LRECL=80, RECFM=FB).
Because the data set is also in the concatenation of ISPTLIB, make the block
size compatible with the block size of the corresponding ISPF data sets.
v For more information about the SMPTABL data set, see “SMPTABL Space
Allocation”.
Note: Depending on the system you are connecting the dialogs to, you may need
to change your logon procedure, a CLIST, or both. It is common practice to
have a logon procedure call a CLIST every time a user logs on. This is
normally done so that minor changes to concatenations do not require
changes to the logon procedure, or so users with the same logon procedure
can have the CLIST perform different allocations from the ones performed for
other users.
If you make changes only to your logon procedure and the procedure calls a
CLIST that changes a concatenation, you may end up missing changes you
Figure 32. Sample Logon Procedure That Concatenates SMP/E and ISPF Libraries
Use one of the methods documented in the Program Directory for this level of
SMP/E to use ISR@390 instead of ISR@PRIM. The SMP/E dialogs will then be
accessible through panel ISR@390S.
You can also specify a high level qualifier for the data set
name. If not specified, the user’s TSO prefix is used
instead.
Temporary work data sets: You can change the default values for:
SMPWRK1 v Block size
SMPWRK2 v Primary space allocation
SMPWRK3 v Secondary space allocation
SMPWRK4 v Unit name
SMPWRK6 v Number of directory blocks
SYSUT1
SYSUT2 Instead of using or updating the defaults, you can use
SYSUT3 DDDEF entries to define these data sets, or you can use
SYSUT4 the dialogs to override the defaults and the DDDEF
entries.
Temporary files used to hold: You can specify a particular unit and volume; otherwise,
v Generated JCL for browsing and editing SYSALLDA is passed for the unit, and no volume is
passed to SVC99 when allocating the temporary files.
v Job output
v Messages resulting from executing TSO commands
Job card JCL statements If you have previously used SMP/E, default job card
information may already exist in the SMPEPROF member
of your ISPPROF data set (typically named
userid.ISPPROF.CNTL).
When you follow these steps, SMP/E has a record of your changes, which helps
prevent them from being regressed. You can use the SYSMOD Management option
of the SMP/E dialogs to package and install your USERMOD, or you can package
and install the USERMOD outside the dialogs.
For example, assume that you have installed the English feature of SMP/E and
have copied GIM@UPRM from GIM.SGIMPENU to your userid.UPRMCHG library.
You have made the desired changes, and now you are ready to install them.
Figure 33 is an example of how you can package your changes in a USERMOD
named CHGUPRM, which points to your data set.
Note: Make sure that when you apply this USERMOD, you have defined DDDEF
entries or DD statements for these ddnames:
v SGIMPENU – for data set GIM.SGIMPENU
v UPRMCHG – for data set userid.UPRMCHG
Note: Do not specify a PEMAX value. Allow SMP/E to use its default value of
25,000.
To enable automatic cross-zone requisite checking, you must tell SMP/E which
zones contain software to be checked for requisites. The set of zones identified for
cross-zone requisite checking is called the zone group. SMP/E provides two
methods to identify the zones within the zone group:
1. Define a default zone group
2. Specify the zones directly on the APPLY, ACCEPT, or RESTORE command.
The ZONESET should contain the names of all the zones to be checked for
cross-zone requisites. Once the ZONESET is created and the XZREQCHK(YES)
subentry is set, the zones defined in the ZONESET are used as the default zone
group any time the APPLY, ACCEPT, or RESTORE commands process any zone
found in the ZONESET. For example, if an APPLY command is initiated for the
cicstgt zone, all zones found in the ZONESET entry named ZONEGRP are used for
the zone group.
Note: This example assumes a default zone group has been defined and will
therefore be used during APPLY command processing.
You can be broad or very granular in the specification of what cross-zone requisites
to bypass. You can indicate all cross-zone requisites are to be bypassed (as in the
previous example), you can indicate that specific cross-zone requisite SYSMODs
are to be bypassed, or you can indicate that only specific cross-zone requisite
SYSMODs from specific zones are to be bypassed. Details of the
BYPASS(XZIFREQ) operand and processing can be found in SMP/E Commands.
Note: This example assumes a default zone group has been defined and will
therefore be used during APPLY command processing.
Using the XZREQ operand identifies and installs the needed cross-zone requisites.
You can also use the REPORT CROSSZONE command to identify the needed
cross-zone requisites. See The REPORT CROSSZONE Command in SMP/E
Commands for details.
This section describes the types of information you need to provide if you use a
cataloged procedure to invoke SMP/E. It discusses the following:
v Required JCL statements
v A sample cataloged procedure for SMP/E
JOB Statement
The JOB statement describes your installation-dependent parameters. The JOB
statement (or the EXEC statement, or both) can also include the REGION
parameter to set the size of the region in which SMP/E runs. For details, see z/OS
MVS JCL User’s Guide, SA22-7598 or z/OS MVS JCL Reference, SA22-7597.
Note: To enable the SMP/E job step to get the maximum space above 16
megabytes. you can specify REGION=0M. Or, if you prefer, you can specify
a more specific region size.
EXEC Statement
The EXEC statement must specify PGM=GIMSMP or the name of your cataloged
procedure for calling SMP/E. (For an example of a cataloged procedure, see
“Sample Cataloged Procedure for SMP/E” on page 77.) The following can be
specified in the EXEC statement PARM parameter:
CSI= dsname
where dsname is the name of the CSI data set containing the global zone. (This
data set is also known as the master CSI.) This parameter is used to enable
SMP/E to allocate the master CSI data set dynamically.
For more information on obtaining and sharing CSI data sets, see “Sharing
SMP/E Data Sets” in SMP/E Commands.
Processing of the PTS data set is also affected by the WAITFORDSN value
specified in its DDDEF entry. WAITFORDSN determines whether SMP/E should
wait to allocate a data set that is not immediately available. If the DDDEF entry
specifies WAITFORDSN=NO (or lets this value default to NO) and the data set
is not available, allocation of the data set fails, regardless of the PROCESS
value specified on the EXEC statement. If WAITFORDSN=NO, SMP/E does not
wait to retry allocation of the data set.
For example, suppose a PTS with a disposition of OLD is already being used
by a job, and a second job tries to access the same PTS data set by allocating
it through a DDDEF entry. The DDDEF entry used by the second job for the
PTS specifies WAITFORDSN=NO. As a result, allocation of the PTS fails for the
second job.
DD Statements
DD statements define the data sets that can be used in SMP/E processing. For
information on the data sets required for each command, see the chapters on
individual SMP/E commands in SMP/E Commands.
Note: You can use DDDEF entries, rather than DD statements, to allocate many of
the necessary data sets. For more information, see “How to Dynamically
Allocate Data Sets to Be Used During SMP/E Processing” on page 59.
Note: The SYSLIB concatenations for APPLY and ACCEPT should point to
different libraries.
v Most of the data sets in the cataloged procedure can be allocated without DD
statements. If you use the methods described for the data sets listed below, you
may not need a cataloged procedure.
– Master CSI data set. The master CSI data set can be specified on the CSI=
parameter of the EXEC statement for GIMSMP, rather than on the SMPCSI
DD statement. For more information about parameters you can specify on the
EXEC statement, see “Required JCL Statements” on page 76.
– Target and distribution zones. CSI data sets for target and distribution
zones are normally dynamically allocated with zone indexes in the global
zone. If you want to use the batch local shared resources (BLSR) subsystem,
you must supply your own JCL statements. For examples of defining zone
indexes and of specifying JCL for BLSR, see the SMPCSI section in SMP/E
Reference.
– Other data sets. Other data sets in the cataloged procedure can be defined
with DDDEF entries. When you use DDDEF entries, only the data sets SMP/E
needs for a particular run are allocated.
When you use DD statements, all the data sets defined must be online and
allocated. Therefore, you might want to use a combination of DDDEF entries
and a cataloged procedure shorter than the one in Figure 34 on page 79. For
more information about DDDEF entries, see SMP/E Reference.
v Although they are not shown in the sample cataloged procedure, the following
DD statements may also be required:
– An SMPCNTL DD statement, pointing to the commands that SMP/E
processes, is required by all commands.
– An SMPPTFIN DD statement, pointing to the source of the SYSMODs that
are processed, is required by the RECEIVE command.
– An SMPHOLD DD statement, pointing to the source of the HOLDDATA that is
processed, is required by the RECEIVE command.
– An SMPPTS DD statement should be coded with DISP=SHR. This allows
concurrent jobs to share the PTS as much as possible. For more information
on how SMP/E shares data sets, see Sharing SMP/E Data Sets in SMP/E
Commands.
– An SMPLTS DD statement is required for changes to the base version of a
load module or program object.
– An SMPMTS DD statement is required for changes to macros that do not
reside in a target library.
– An SMPSTS DD statement is required for changes to source code that does
not reside in a target library.
– If any of the SYSMODs being installed contain elements packaged with the
LKLIB operand, a DD statement for the ddname specified on that operand is
required by the APPLY and ACCEPT commands.
//SMPPROC PROC
//SMP EXEC PGM=GIMSMP
//* ----- SYSOUT data sets --------------------------------
//SMPOUT DD SYSOUT=A
//SMPRPT DD SYSOUT=A
//SMPLIST DD SYSOUT=A
//SMPSNAP DD SYSOUT=A
//SMPDEBUG DD SYSOUT=A
//SYSPRINT DD SYSOUT=A
1 //SMPPUNCH DD SYSOUT=B
//*------ SMP/E data sets ---------------------------------
//SMPLOG DD DSN=SYS1.SMPLOG,DISP=MOD
//SMPLOGA DD DSN=SYS1.SMPLOGA,DISP=MOD
2 //* ----- Master CSI -------------------------------------
//SMPCSI DD DSN=SMPE.SMPCSI.CSI,DISP=SHR
//SMPDATA1 DD DSN=MVSTGT1.SMPDATA1,DISP=MOD
//SMPDATA2 DD DSN=MVSTGT1.SMPDATA2,DISP=MOD
3 //* ----- SMP/E temporary data sets------------------------
//SMPWRK1 DD UNIT=SYSDA,SPACE=(CYL,(2,1,5)),DISP=(,DELETE),
// DCB=BLKSIZE=6160
//SMPWRK2 DD UNIT=SYSDA,SPACE=(CYL,(2,1,5)),DISP=(,DELETE),
// DCB=BLKSIZE=6160
4 //SMPWRK3 DD DSN=data set name,
UNIT=SYSDA,SPACE=(CYL,(2,1,5)),DISP=(,CATALOG),
// DCB=BLKSIZE=3120
//SMPWRK4 DD UNIT=SYSDA,SPACE=(CYL,(2,1,5)),DISP=(,DELETE),
// DCB=BLKSIZE=3120
//SMPWRK6 DD UNIT=SYSDA,SPACE=(CYL,(2,1,5)),DISP=(,DELETE),
// DCB=BLKSIZE=6160
//* ----- Utility data sets -------------------------------
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1)),DISP=(,DELETE)
//SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(2,1)),DISP=(,DELETE)
//SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(2,1)),DISP=(,DELETE)
//SYSUT4 DD UNIT=SYSDA,SPACE=(TRK,(2,1)),DISP=(,DELETE)
//* ----- Assembler SYSLIB data set -----------------------
5 //SYSLIB DD DSN=data set name,DISP=SHR
• • •
//* ----- Target libraries --------------------------------
//LINKLIB DD DSN=SYS1.LINKLIB,DISP=OLD
• • •
//* ----- Distribution libraries --------------------------
//AOSC5 DD DSN=SYS1.AOSC5,DISP=OLD
• • •
// PEND
The following job uses the cataloged procedure in Figure 34 on page 79 to call
SMP/E.
//SMPJOB JOB ’accounting info’,MSGLEVEL=(1,1)
//SMPSTEP EXEC SMPPROC
//SMPPTFIN DD ... points to the file or data set that contains
//* the SYSMODs to be received
//SMPHOLD DD ... points to the file or data set that contains
//* the HOLDDATA to be received
//SMPTLIB DD UNIT=3380,VOL=SER=TLIB01
//SMPCNTL DD *
SET BDY(GLOBAL) /* Set to global zone */.
RECEIVE SYSMOD /* receive SYSMODS and */
HOLDDATA /* HOLDDATA */
SOURCEID(MYPTFS) /* Assign a source ID */
/* */.
LIST MCS /* List the cover letters */
SOURCEID(MYPTFS) /* for the SYSMODs */
/* */.
SET BDY(TARGET1) /* Set to target zone */.
APPLY SOURCEID(MYPTFS) /* Apply the SYSMODs */
/* */.
LIST LOG /* List the target zone log */.
/*
Note: The example shown is for processing a zone for SREL Z038 containing the
z/OS base control program (BCP). For other zones, follow the
recommendations for the products residing in those zones.
Treating the distribution libraries as totally separate from the target libraries ensures
that only the latest tested version of a macro is used during an assembly. Thus, the
SYSLIB concatenation at ACCEPT is different from that at APPLY.
The SMPMTS data set contains macros from SYSMODs that are applied.
Therefore, the proper SYSLIB concatenation for APPLY processing includes the
SMPMTS data set, as is shown in Figure 35 on page 81.
During ACCEPT processing, the macros in the SMPMTS and in the target macro
libraries are not considered to have been tested. The SMPMTS is, therefore, not
concatenated. Figure 36 shows the proper SYSLIB concatenation for ACCEPT.
For more details, see the “SMP/E Exit Routines” chapter, in SMP/E Reference.
Introduction
The primary purpose of SMP/E is to help you install SYSMODs in your target and
distribution libraries. To do this, SMP/E provides three basic commands: RECEIVE,
APPLY, and ACCEPT.
This chapter summarizes the general steps you follow to install a function. You
should look at the installation materials that arrive with a function to find out about
special requirements and procedures for installing the function. Table 10 lists
sources of new functions and places where you can find information for installing
the new functions.
Table 10. Sources for Functions and Their Installation Information
Product Delivery Vehicle Products and Service You Get Installation Materials You Can Use
CBPDO Products and service (not integrated) Sample jobs to receive products and
on a single logical tape service
RECEIVE-APPLY-ACCEPT Method
RECEIVE-APPLY-ACCEPT is the standard installation method. It uses SMP/E
RECEIVE, APPLY, and ACCEPT commands to install functions onto a subsystem.
Usually, you do not have to do any special processing outside SMP/E to install your
functions. The JCLIN needed to set up the load modules for the function is sent
along with the function.
The first step in installing the new function is the RECEIVE process, which reads in
the SYSMODs so they can be installed later:
v If you have access to the SMP/E dialogs, you can use the RECEIVE dialog to
receive the function and any related service and HOLDDATA.
v You can use the RIMLIB job included on the CBPDO tape to receive the function,
service, and HOLDDATA shipped on the CBPDO. For more information, see
z/OS and z/OS.e Planning for Installation and the documentation that was
included with the CBPDO.
During RECEIVE processing, the contents of the RELFILEs are placed into the
SMPTLIBs, which are used as temporary storage. SMPTLIBs that are uncataloged
are automatically cataloged by SMP/E. When the RELFILEs are on DASD, SMP/E
checks to ensure that the RELFILE and SMPTLIB names are not the same. If they
are, RECEIVE processing stops.
Note: Do not delete the SMPTLIBs after the RECEIVE step; they must be retained
until after the function is applied and accepted.
When installing a new function, you are concerned with three groups of SYSMODs:
v The function itself
v All PTFs applicable to the function
v All PTFs applicable to other functions that are specified as requisites of the
function or service applicable to the function
You may be able to apply all the required SYSMODs with one APPLY command.
This method has several advantages:
v It eliminates the need to run the APPLY command several times in order to install
the complete set of SYSMODs required.
v You replace elements in the target libraries less often; therefore, there is less risk
of running out of space.
v Because the SMP/E overhead and the number of invocations of the system
utilities are reduced, overall processing time is decreased.
Therefore, although SMP/E supports the separate installation of a new function and
its service, the common installation method is preferred unless the product program
directory for other unique installation requirements directs otherwise. This is the
method illustrated in subsequent examples. For more information about the APPLY
command operands, see The APPLY Command in SMP/E Commands.
When you are updating the target libraries, there are actually three distinct SMP/E
jobs to be run:
v Receive additional HOLDDATA. Before starting the APPLY, you should contact
the IBM Support Center to get additional HOLDDATA from the product PSP file or
the CORPE PSP file. Obtaining and receiving additional HOLDDATA is covered
under “Processing HOLDDATA from PSP Files” on page 121. The other two steps
are covered in more detail in the following sections.
v Run the APPLY CHECK job. This is a nonupdating mode of APPLY. Its purpose
is to help resolve any problems that may prevent the APPLY from completing
processing successfully.
v Apply the SYSMOD updates. This installs the new function and service into the
target libraries.
Use the SMP/E dialogs or the following sample job to do an APPLY CHECK for the
function and related SYSMODs:
//APPLY JOB ’accounting info’,MSGLEVEL=(1,1)
//APPLYCHK EXEC SMPPROC
//SMPCNTL DD *
Note: If a product deletes another product, you cannot use the RESTORE
command to back off the applied product and bring back the deleted one.
Use the SMP/E dialogs or the following sample job to apply the function and any
related SYSMODs:
//APPLY JOB ’accounting info’,MSGLEVEL=(1,1)
//APPLY EXEC SMPPROC
//SMPCNTL DD *
SET BDY(ZOSTGT1) /* Set to target zone. */.
APPLY FORFMID(HXX1200) /* Apply for this FMID */
FUNCTIONS /* the function itself */
PTFS /* and all its PTFs. */
GROUPEXTEND /* Also all requisite PTFs. */
/* No check this time. */
BYPASS(HOLDCLASS(UCLREL,ERREL)/*Bypass options.*/
HOLDSYS(reason-id,...) .
/*
If you have obtained additional APAR fixes or USERMODs, you should either
specify each of these SYSMODs in the SELECT operand, or if all applicable APARs
and USERMODs are to be applied, specify the APARS and USERMODS operands.
Note: For most products, you do not have to do any additional processing to get
the elements into executable format. However, some products may require
you to run additional utilities or to perform extra steps after applying the
SYSMODs. See your product documentation for more information.
Note: If you are doing the installation on a clone of your original system, you
already have a backup—your original system.
2. Do some testing before putting the new function into production. This testing
should include some of the following:
v If the product has supplied installation verification procedures (IVPs), they
should be run.
v If your installation has a test job stream, the tests should be run.
Only after verifying the new function on a noncritical test system should you put it
into production. You should not consider the test phase completed until you have
run the new function in production mode for some period (as determined by your
installation requirements). Only then, if no errors are found, are you ready to go to
the next step, updating your distribution libraries.
When you are ready to update your distribution libraries, you have the same set of
considerations and SMP/E support as described under “Updating the Target
Libraries: The APPLY Process” on page 86, and the same three-phase operation:
1. Receive additional data. Before starting the ACCEPT process, you should
obtain any additional HOLDDATA for the function you are installing by using
CBPDO, ESO, IBMLINK, or the IBM Support Center. See “Processing
HOLDDATA from PSP Files” on page 121 for additional information.
Note: If there is a significant time between the APPLY process and ACCEPT
process, additional problems may have been reported for which ++HOLD
statements have been created. If this new data is not obtained, SMP/E
may install PE PTFs into the distribution libraries.
2. Run the ACCEPT CHECK job. This is a nonupdating mode of ACCEPT. Its
purpose is to help resolve any problems that may prevent the ACCEPT from
completing processing successfully.
3. Accept the SYSMOD update. This installs the new function and service into
the distribution library.
Use the SMP/E dialogs or the following sample job to do an ACCEPT CHECK for
the function and related SYSMODs:
//ACCEPT JOB ’accounting info’,MSGLEVEL=(1,1)
//ACCEPTCK EXEC SMPPROC
//SMPCNTL DD *
SET BDY(DLIB1) /* Set to DLIB zone. */.
ACCEPT FORFMID(HXX1200) /* Accept for this FMID */
FUNCTIONS /* the function itself */
PTFS /* and all its PTFs. */
GROUPEXTEND /* Also all requisite PTFs. */
CHECK /* But do not update libs. */
BYPASS(HOLDSYSTEM /* Bypass options */
HOLDCLASS(UCLREL,ERREL)
)
.
/*
Note: If you have obtained additional APAR fixes or USERMODs, you should either
specify each of these SYSMODs in the SELECT operand or, if all applicable
APARs and USERMODs are to be installed, specify the APARS and
USERMODS operands.
Conditional requisites may be for functions that are installed in different zones. If
you have set up automatic cross-zone requisite checking, as described in
“Specifying Automatic Cross-Zone Requisite Checking” on page 73, SMP/E will
enforce cross-zone requisites during APPLY or ACCEPT processing. Otherwise, you
must use the SMP/E REPORT CROSSZONE command after a function and the
related service has been installed to manually identify cross-zone requisites defined
in the installation logic. To help you install the identified requisites, REPORT
CROSSZONE can also write APPLY and ACCEPT commands to the SMPPUNCH
data set. So, if you have not specified automatic cross-zone requisite checking, and
the function you have installed (or any related service) specifies conditional
requisites, you should run the REPORT CROSSZONES command against the
target and DLIB zones containing that product, as well as against the zones
containing the functions identified on the ++IF statements. For more information
about the REPORT CROSSZONE command, see Chapter 13, “Identifying
Cross-Zone Requisites: The REPORT CROSSZONE Command” on page 139.
Introduction
You install preventive service through the use of the SMP/E preventive service
process. The process uses:
v A tape that contains the preventive service (either a CBPDO tape or an
expanded service options (ESO) tape).
v A well-defined set of steps that you should follow to install each service level in
order to bring your system up to the current service level.
ESOs are used as input to the software manufacturing database for the service to
be included in CBPDOs. As a result, there are many similarities between these two
offerings.
If you receive service and HOLDDATA from both CBPDO and ESO tapes, make
sure you install them in service level order (for example, service level 0101,
followed by service level 0102, and so on). Each PTF that is currently available on
a service level has a corresponding source ID. After you have received PTFs from
one of these service offerings (ESO or CBPDO), do not try to receive them again
from the other.
CBPDO Tapes
CBPDO tapes can be ordered periodically, as you decide to update your system. A
CBPDO tape contains the PTFs, HOLDDATA, and PSP upgrade files to bring your
system up to a service level that you select. A CBPDO is ordered for a particular
feature (CICS, database system, MVS, or NCP). These features correspond to the
SRELs to which products are applicable.
You have two options when ordering a CBPDO: you can get products plus service,
or service only. (If you are interested just in installing preventive service, order a
service-only CBPDO.) With both of these options, you automatically receive service
for products for which you are already licensed under a single customer number for
a single feature.
The amount of service you receive in your CBPDO depends on your selection of a
service level and whether this is your first CBPDO order.
v If you select a service level, you get all service from that level to the current
level.
v If you do not select a service level and this is your first CBPDO order, you get all
the service shown on the order checklist.
v If you do not select a service level and you have ordered a CBPDO before, you
get service following the service level that was shipped in your previous CBPDO.
ESO Tapes
As an IBM customer, you may periodically receive a customized ESO tape based
on your IBM software distribution profile. This tape has the PTFs, HOLDDATA,
++ASSIGN statements, and UCLIN data needed to bring your system up to the
current service level.
Service levels are identified according to when they were available correctively. For
example:
The ESO tape is a nonlabeled (NL) tape, with files arranged as shown in Table 12
on page 92.
Table 12. Format of an ESO
File Number Processed by Contents
SMP/E
1 Yes ++ASSIGN statements
The preventive service phases are the same as those defined in Chapter 6,
“Installing Corrective Service” on page 103, although the steps within each phase
differ. These phases are the basic SMP/E operations to install any SYSMOD.
The steps defined are the normal steps for the installation of most PTFs. Any PTF
that requires special processing will contain instructions for installing it.
Generally, you should first attempt to install all the normal PTFs that you have
received and then to install those having special requirements. The intention is to
install the maximum number of preventive fixes on your system as soon as
possible.
Note: You should let SMP/E manage PE PTFs (PTFs discovered to be in error),
rather than researching and resolving them yourself.
The following sections describe, in detail, the steps necessary for each of the
preventive service phases.
Note: You can use either the SMP/E dialogs or JCL jobs to receive, apply, and
accept preventive service. The basic steps are the same. If you have access
to the SMP/E dialogs, you should use them. Otherwise, you can use the
steps described in this chapter as examples.
Note: If multiple ESO service tapes are being RECEIVED, the additional tape
volumes must be concatenated under the SMPPTFIN DD card. See File 2 of
an ESO tape for further information.
In CBPDO and ESO tapes, PTFs are assigned SOURCEID values by ++ASSIGN
statements. You can assign an additional value by specifying it on the RECEIVE
command. The SOURCEID operand is used with the MCS operand on the LIST
command to list the PTF cover letters. This is used rather than the LIST operand on
the RECEIVE command because the output is in a more usable format.
v For ESO tapes, you should substitute a meaningful value for xxxxxxxx in each
command shown above. The value should be unique and easily tied to an ESO.
v For CBPDO tapes, the recommended format is PDOyyww, where yy is the year
and ww the week of the CBPDO tape.
The DCB values shown for SMPHOLD and SMPPTFIN are those used for
preventive service when this publication was written. If these values change, use
the ones defined for the ESO.
For both CBPDO and ESO tapes, you should call the IBM Support Center to obtain
additional HOLDDATA (unless you just received your tape). For additional
information, see “Processing HOLDDATA from PSP Files” on page 121. You can
use the SMP/E dialogs or the following sample job to process the data set with the
HOLDDATA obtained from the IBM Support Center.
The HOLDDATA you obtain from the IBM Support Center should be in SMP/E
format. If not, or if you are creating your own HOLDDATA, see the SMP/E
Reference manual to review the syntax for the ++HOLD statements.
These PTFs contain a ++HOLD statement that automatically places them into
HOLD for SYSTEM action status; that is, SMP/E does not allow them to be installed
unless you take some direct action, such as specifying BYPASS(HOLDSYS) on the
APPLY command. These PTFs should not be processed immediately; you should
attempt to install all PTFs not requiring such actions and then return to process
these. For additional information about these PTFs, see “Installing PTFs That Need
Special Processing” on page 100.
When installing preventive service, you are concerned with two groups of PTFs:
v All PTFs from the CBPDO or ESO you are installing
v Any other PTFs that are required to install these PTFs
When you update the target libraries, there are three distinct SMP/E jobs to be run:
1. Receive additional HOLDDATA. Before starting the APPLY, you should contact
the IBM Support Center to obtain any additional HOLDDATA for the CBPDO or
ESO you are installing. This step is required if:
a. You did not obtain the additional HOLDDATA from the IBM Support Center
during the staging phase.
b. There has been a delay between the RECEIVE and APPLY staging phase
and the target update phase.
We will not discuss this first step further here. If you need to perform this step,
see “Staging the SYSMODs: The RECEIVE Process” on page 94.
The following sections describe the last two steps as well as the processing of
PTFs that require special processing.
The GROUP and GROUPEXTEND operands allow SMP/E to include any PTF that
may be required to install PTFs on the current service level (PUT0103 in the
example that follows). Some of the PTFs on previous tapes may not have been
installed, because they were in hold status (PE PTFs) at the time the ESO
containing the service level was installed. The current service level may contain
fixes for the APARs that caused the original PTFs to be held. These PTFs, because
they have module intersections with the PE PTF, must either be prerequisite to the
old PTFs or must supersede them so SMP/E can automatically include the old
PTFs when the fixing PTF is installed.
The following sample job shows how to do an APPLY CHECK for preventive
service:
//APPLY JOB ’accounting info’,MSGLEVEL=(1,1)
//APPLYCHK EXEC SMPPROC
//SMPCNTL DD *
SET BDY(TGT1) /* Set to target zone. */.
APPLY SOURCEID(PUT0103) /* Apply this service level */
GROUPEXTEND /* and all requisite PTFs, */
CHECK /* but do not update libs. */
SELECT(sysmod-id,...) /* Select additional */
/* service if required. */
BYPASS(HOLDCLASS(ERREL,UCLREL)
HOLDSYSTEM) .
/*
You may be able to improve SMP/E performance by including the source IDs for
previous service levels within the SOURCEID operand. The following job provides
an example of an APPLY CHECK job for PTFs in service level 0103:
//APPLY JOB ’accounting info’,MSGLEVEL=(1,1)
//APPLYCHK EXEC SMPPROC
//SMPCNTL DD *
SET BDY(TGT1) /* Set to target zone. */.
APPLY SOURCEID(PUT0103 /* Apply this service level */
PUT0102 /* and back-level tapes */
PUT0101) /* back to some reasonable */
/* level. */
GROUPEXTEND /* And all requisite PTFs. */
CHECK /* But do not update libs. */
Note: This form of the SOURCEID operand can also be used to group service
levels initially in one APPLY command.
If you want to install preventive service only on selected functional areas of the
system, you can also specify the FORFMID operand on the APPLY command,
specifying either specific function identifiers (FMIDs) or the name of one or more
FMIDSETs.
Note: Depending on your requirement to install such PTFs, you can use the
reason ID and the comments specified in the ++HOLD statement to
determine which of the following actions is most appropriate:
– Bypass the condition using the BYPASS(HOLDERR) operand
– Do not install the PTF
– Obtain a fix for the APAR
This regression-handling procedure works under the assumption that you have
applied, but not yet accepted, a USERMOD. This means that the USERMOD has
applied service to the target libraries, but the service in your distribution library is
that which the SYSMOD should be applied against.
When USERMODs are applied on a system, it is up to you to ensure that they are
at the proper level.
If you reapply your USERMOD at this point, remember to exclude it when accepting
the preventive service if you want to be able to restore your system to the level
assumed by the next preventive service update.
At this time, you should modify the APPLY command to add a SELECT operand
specifying each of the PTFs obtained from the IBM Support Center. An alternative is
to assign all such PTFs the same source ID value as the service level, or to assign
them a unique value and then add that value to the SOURCEID operand.
Use the SMP/E dialogs or the following sample job to apply the preventive service:
//APPLY JOB ’accounting info’,MSGLEVEL=(1,1)
//APPLY EXEC SMPPROC
//SMPCNTL DD *
SET BDY(TGT1) /* Set to target zone. */.
APPLY SOURCEID(PUT0103) /* Apply this service level */
GROUPEXTEND /* and all requisite PTFs, */
SELECT(UZ00001 /* Plus two other PTFs. */
UZ00002 /* */
AZ12345 /* Plus two APAR fixes. */
AZ12346) /* */
/* No check this time. */
BYPASS(HOLDCLASS(ERREL,UCLREL)
HOLDSYSTEM) .
/*
v If you have obtained additional APAR fixes or USERMODs, you should either
specify each of these SYSMODs in the SELECT operand or, if all applicable
APARs and USERMODs are to be installed, specify the APARS and USERMODS
operands.
v If any of the SYSMODs specified in the SELECT list have already been applied
and you want to reinstall them, you must also specify the REDO operand on the
APPLY command.
v If you want to install preventive service only on selected functional areas of the
system, you can also specify the FORFMID operand on the APPLY command,
specifying either specific function identifiers (FMIDs) or the name of one or more
FMIDSETs.
See SMP/E Reference for a detailed description of the ++HOLD statement syntax.
The comment text within the ++HOLD statement, or in the PTF cover letter,
contains a description of all the special processing necessary to install this PTF.
Only after verifying the service on a noncritical test system should you put that
service into production. The test phase should not be considered complete until you
have run the service in production mode for some period (as determined by the
requirements for your installation). If no errors are found, you are ready to proceed
to the next step: updating your distribution libraries.
When you are ready to update your distribution libraries, you have the same set of
considerations and SMP/E support as described under “Updating the Target
Libraries: The APPLY Process” on page 95, and the same three-phase operation:
1. Receive additional HOLDDATA. Before starting the ACCEPT, you should
obtain any additional HOLDDATA for the service level you are installing. This
step is required if:
v You did not obtain the additional HOLDDATA from the IBM Support Center
during the staging phase.
Note: Special processing may be required during the ACCEPT process. PTFs
requiring this processing should be handled in the same manner as during
the APPLY process.
Use the SMP/E dialogs or the following sample job to do an ACCEPT CHECK for
preventive service. This example is an ACCEPT CHECK job for PTFs in service
level 0103:
//ACCEPT JOB ’accounting info’,MSGLEVEL=(1,1)
//ACCEPTCK EXEC SMPPROC
//SMPCNTL DD *
SET BDY(DLIB1) /* Set to DLIB zone. */.
ACCEPT SOURCEID(PUT0103) /* Accept this service level*/
GROUPEXTEND( /* Include requisite PTFs */
NOAPARS /* Don’t include APARs or */
NOUSERMODS) /* USERMODs */
CHECK /* but do not update libs. */
SELECT(sysmod-id,...) /* Select additional */
/* service if required. */
BYPASS(HOLDCLASS(ERREL,UCLREL)
HOLDSYSTEM) .
/*
Note: This example can be used for PTFs from either a CBPDO or an ESO.
If you want to install preventive service only on selected functional areas of the
system, you can also specify the FORFMID operand on the ACCEPT command,
specifying either specific function identifiers (FMIDs) or the name of one or more
FMIDSETs.
If you obtain additional SYSMODs during the ACCEPT phase, you should process
these through the APPLY phase before accepting them.
Introduction
Corrective service is the process of installing a SYSMOD to resolve a specific
problem in your system. The problem has usually been brought to your attention
because the system has not functioned as expected (for example, an abend has
occurred, or jobs are not running as expected).
The first task is to investigate the problem, so that the failing component and
module can be identified. SMP/E Messages, Codes, and Diagnosis provides helpful
information on diagnosing and handling SMP/E problems. This can be done in
conjunction with the IBM Support Center. SMP/E can help you work with the IBM
Support Center to isolate and obtain a fix for the problem. Useful information
includes:
v The function and service level of the module involved
v The service level of your system—that is, the specific SYSMODs that have been
installed
v Any USERMODs involved
v The affected load modules
After determining the cause of the error, you want a fix for the problem. There are
several possibilities:
1. The problem has already been reported, and a PTF has been created to fix the
module. That PTF may not have been shipped on an ESO. If it has been
shipped, you should have it in your shop (already received). If not, the IBM
Support Center can help you get a copy of it.
2. The PTF identified by the Support Center may have been received but not yet
applied. Use the LIST command or the SMP/E Query dialog to check the status
of the PTF.
3. The problem has been previously reported. No PTF has been created, but an
APAR fix is available either to fix or to bypass the problem.
4. The problem is a new one, and no fix is available. In this case, you have to
work with the IBM Support Center to construct a fix for your system.
No matter where you obtain the fix, the installation of that fix is said to be in
corrective mode.
Note: You can use either the SMP/E dialogs or JCL jobs to build, receive, apply,
and accept corrective service. The basic steps to follow are the same. If you
have access to the SMP/E dialogs, you should use them. Otherwise, you
can use the steps described in this chapter as examples.
If the fix obtained is not a PTF, you should make sure it was constructed accurately.
This is true even if the fix obtained from the IBM Support Center is already in
SMP/E format (that is, you received a ++APAR type SYSMOD).
If you have to build the fix yourself, see MVS Packaging Rules for rules for
constructing APAR SYSMODs and SMP/E Reference for details on MCS syntax.
(To get started, you might find Chapter 17, “Building a User Modification” on
page 149 helpful.) The general format of all ++APAR fixes is:
++APAR(xxxxxxx) /* APAR identifier */.
++VER (srel) /* System identifier */
FMID(aaaaaaa) /* Functional area */
PRE ( /* PRE some SYSMODs. */
bbbbbbb /* PRE RMID of element */
ccccccc ccccccc /* and any UMIDs present. */
ccccccc ccccccc /* */
) /* */
SUP ( /* SUP some SYSMODs. */
ddddddd ddddddd /* Fixes incorporated into */
ddddddd ddddddd /* this fix */
) /* */.
++ZAP (modname) /* */
DISTLIB(eeeeeeee) /* DLIB name */.
... Some superzap cards here
or
++MACUPD (macname) /* */
DISTLIB(eeeeeeee) /* DLIB name */.
... Some IEBUPDTE cards here
or
++SRCUPD (srcname) /* */
DISTLIB(eeeeeeee) /* DLIB name */.
... Some IEBUPDTE cards here
You should perform the following checks to ensure the accuracy of the fix:
1. Make sure the value xxxxxxx in the ++APAR statement is equal to the APAR
number associated with the problem you are fixing.
2. Make sure the system release value (SREL) in the ++VER statement matches
one of those defined as an SREL subentry in the TARGETZONE entry for your
target zone.
3. Make sure the FMID value aaaaaaa in the ++VER statement matches the FMID
value in the appropriate element entry in your target zone. You can determine
this value by listing the appropriate entry.
4. If the element entry in your target zone has an RMID value different from its
FMID value, make sure it is a prerequisite of the APAR fix (that is, make sure
the bbbbbbb value is accurate). If the RMID and FMID values are equal, the
bbbbbbb value need not be specified.
5. If the element entry in your target zone has any UMID values, you should first
make sure the fix itself was constructed so that it works correctly in that
environment.
You should then make sure each of the UMID values is specified in the PRE
operand in place of the ccccccc values shown in the example. This is not
absolutely required, but if it is not done, SMP/E issues warning messages
during installation indicating that these SYSMODs may have an intersection with
Note: The DISTLIB value is optional, but it is a good idea to specify it to make
sure there is no mistake about which element you are dealing with.
Once you have made sure the SYSMOD is accurate, you are ready to start the
actual installation process.
Thus, there is usually no need or time to prepare the system by backing up packs,
compressing libraries, and so on. If possible, it is a good idea to have a backup
system available in case a problem does occur.
If the input data set contains only the SYSMODs you are installing for this
corrective service problem, you can omit the SELECT operand. SMP/E then
attempts to process all the SYSMODs in the SMPPTFIN input data set.
The following are some of the considerations for accepting corrective service:
v If you do not accept the SYSMOD and you perform a system generation, all that
service is lost and must be reinstalled.
v If you must restore a SYSMOD, the work required increases with the number of
SYSMODs that have been applied but not accepted. All intersecting SYSMODs
must be restored, and then all but the desired SYSMOD must be reapplied. This
is especially true for source-modified products.
The following sections describe the steps you should use, assuming you have
decided to accept some corrective service.
Note: If you obtain additional SYSMODs, make sure you process them through the
APPLY and test phases before accepting them.
Introduction
A USERMOD is a SYSMOD used to make a modification to some IBM-supplied
software element (module, macro, source, or data element) to implement a new
function or to provide a hook into a user program that provides that function.
A USERMOD should not be confused with an APAR SYSMOD (corrective fix), even
if you built the initial version of that fix to fix a problem immediately. For a
description of how to construct USERMODs, see Chapter 17, “Building a User
Modification” on page 149. For details on the syntax of the MCS statements used in
constructing USERMODs, see the SMP/E Reference manual. The MVS Packaging
Rules contains additional information on when a USERMOD should be used. The
rest of this chapter assumes that you have properly constructed the USERMOD and
are now ready to install it.
Note: You can use either the SMP/E dialogs or JCL jobs to receive, apply, and
accept USERMODs. The basic steps to follow are the same. If you have
access to the SMP/E dialogs, you should use them. Otherwise, you can use
the steps described in this chapter as examples.
If the input data set contains only USERMODs that you want to receive now, you
can omit the SELECT operand. SMP/E then attempts to process all SYSMODs in
the SMPPTFIN input data set.
When originally constructing your USERMOD, you may want to provide a document
similar to a program directory, containing some of the following information:
v The elements affected.
v The areas within each element.
v Externals of the change.
v An IVP job that can be used to ensure that the USERMOD is working correctly.
This can be used after subsequent preventive service is applied or if the
USERMOD must be reinstalled because a new release of the IBM product is
installed.
This information may be helpful to the next system programmer responsible for
installing and maintaining your USERMOD.
Note: You can use ++HOLD statements to prevent USERMODs from being
accepted. For each USERMOD that you want to keep from being accepted,
follow these steps after applying the USERMOD:
1. Create a ++HOLD statement with a user reason ID that you plan to use
only for USERMODs that are not supposed to be accepted. Here is an
example:
++HOLD(usermod) USER
REASON(NOUSERM)
COMMENT(do not accept this usermod).
2. Run the SMP/E RECEIVE command to read in the ++HOLD statement.
Use the SMPHOLD DD statement to point to the file or data set
containing the ++HOLD statement.
Be aware that if you receive the ++HOLD statement before applying the
USERMOD, you must bypass the user hold reason ID in order to apply the
USERMOD.
Introduction
Most SYSMODs you receive from IBM can be installed without additional
considerations; you can simply receive, apply, and then accept them. For some
SYSMODs, however, this is not possible. Examples of such SYSMODs are:
v SYSMODs that were sent out to correct a problem but that either have not fixed
the problem or have introduced a new problem. These are called PTFs in error,
or PE PTFs.
v SYSMODs that require special installation processing, such as a fix that must be
concurrently installed on all processors in a network.
v SYSMODs that introduce changes into the system that you should be made
aware of, such as changes to operator messages or critical documentation
changes.
In SMP/E terms, these SYSMODs are called exception SYSMODs. SMP/E supplies
a function to automate the management of exception SYSMODs. SMP/E supports
three categories of exception SYSMODs:
v Error. PTFs in error (PE PTFs).
v System. SYSMODs identified by IBM as requiring special processing or
notification.
v User. Any SYSMODs that you identify as requiring special processing.
++HOLD statements for system holds are usually built as part of the held PTF.
++RELEASE statements and ++HOLD statements for error or user holds must be in
SMPHOLD. ++HOLD and ++RELEASE statements provided by SMPHOLD
(external holds) identify the following:
v The SYSMOD ID of the exception SYSMOD (that is, the SYSMOD being held).
v The exception SYSMOD category.
v The FMID to which that ++HOLD applies.
v The reason the SYSMOD is being put into or was in exception status. This is a
1- to 7-character alphanumeric string called the reason ID.
– For error-category exception SYSMODs, SMP/E expects the reason ID to be
the SYSMOD ID of the APAR reporting the problem.
– For system-category exception SYSMODs, SMP/E expects the reason ID to
be a short description of the action required.
– For user-category exception SYSMODs, SMP/E makes no assumption about
what the reason ID represents.
Subsequent sections of this chapter describe how SMP/E uses HOLDDATA during
the installation of a SYSMOD, where the exception SYSMOD statements come
from, and how to process them. The chapters on the RECEIVE command, the
APPLY command, and the ACCEPT command in SMP/E Commands contain a
much more detailed explanation of the material covered here.
Note: You must provide SMP/E with the most current HOLDDATA possible to get
the most benefit from this support.
You can specify one or both operands on the RECEIVE command. If neither
operand is specified, SMP/E attempts to receive the SYSMODs from SMPPTFIN,
and HOLDDATA from SMPHOLD.
When receiving the HOLDDATA, SMP/E also creates (or modifies) two entries:
1. A HOLDDATA entry is created (or modified) in the global zone. This entry is an
exact copy of the ++HOLD statements as they appeared in SMPHOLD. The
name of the entry is the ID of the SYSMOD affected by this ++HOLD statement.
The HOLDDATA entry for a single SYSMOD can contain multiple ++HOLD
statements.
For an error reason ID to be resolved, at least one of the following conditions must
be met:
v The reason ID must be superseded by another SYSMOD being installed.
v The reason ID must already exist as a SYSMOD entry in the target zone.
v You must specify BYPASS(HOLDERROR) on the APPLY command to show that
you are aware that an unresolved exception SYSMOD is being installed.
v If there is a HOLD CLASS associated with the reason ID, you can specify
BYPASS(HOLDCLASS) on APPLY to indicate that you are using an alternative
way to resolve the reason ID.
See the BYPASS operand in The APPLY Command in SMP/E Commands for
additional information.
Internal holds are considered resolved if any of the following conditions are met:
v The SYSMOD ID specified on the ++HOLD defining the exception is found as a
SYSMOD entry in the distribution zone
v The SYSMOD ID specified on the ++HOLD defining the exception is being
superseded by a SYSMOD being accepted concurrently
v The applicable BYPASS operand is specified.
If you choose to resolve a reason ID by using the BYPASS operand, you must do
any required processing at the appropriate time. Otherwise, errors related to the
undone processing may occur, even though the reason ID was considered resolved.
Note: You may use the ++RELEASE statement for user category reason IDs if you
want to unconditionally release the SYSMOD for all systems. Remember
that, unlike BYPASS, ++RELEASE actually deletes the ++HOLD statement.
If you plan to use the user category ++HOLD statement, see the SMP/E
Reference manual for more information on the naming conventions for
reason IDs.
If all reason IDs are resolved, SMP/E allows the SYSMOD to be applied. If any
remain unresolved, SMP/E prevents the SYSMOD, and any other SYSMODs
dependent on this one, from being installed.
SMP/E leaves the reason IDs in the global zone SYSMOD entry when the
SYSMOD is applied, so if the SYSMOD is applied on another system later, the
same checking is done on that system. If the information had been deleted during
the first APPLY, SMP/E would not recognize the problem when the SYSMOD is
applied to subsequent systems. Therefore, the ++RELEASE statement should not
be used to install an exception SYSMOD with an unresolved reason ID. The
appropriate BYPASS operand should be used instead.
In summary, SMP/E ensures that no known problems are introduced into your
system by managing those problems at the level of the individual problem, rather
than the SYSMOD level. It is, therefore, very important that SMP/E have the most
current information on exception SYSMODs. For more information on the
importance of having current HOLDDATA and what you must do to provide that
information to SMP/E, see “How to Process HOLDDATA” on page 118.
Sources of HOLDDATA
Besides the data you create, these are the main sources of HOLDDATA provided by
IBM:
v CBPDO tapes
v Expanded service options (ESO) tapes
v Preventive service planning (PSP) information
v IBM service web pages
CBPDO Tapes
One of the primary means of obtaining HOLDDATA is CBPDO tapes. IBM
custom-builds these tapes to provide the products and service you request, taking
into consideration whether this is your first CBPDO order.
v If you select a particular service level, you get HOLDDATA for all service from
that level to the current level.
v If you do not select a service level and this is your first CBPDO order, you get
HOLDDATA for all the service shown on the order checklist.
v If you do not select a service level and you have ordered a CBPDO before, you
get HOLDDATA for service following the last service level that was shipped in
your previous CBPDO.
The HOLDDATA on a CBPDO tape has been customized to your product set. That
is, it contains only data applicable to PTFs for those products within a given
feature for which you are licensed under a single customer number. However, it
does not reflect the contents of any specific system within the establishment defined
by that customer number.
ESO Tapes
Another way to obtain HOLDDATA is through ESO tapes. IBM regularly creates the
service levels shipped on these tapes, then custom-builds ESOs for users and
makes the tapes available through either subscription orders or special request
orders.
The HOLDDATA on an ESO tape has been customized to your product set. That is,
it contains only data applicable to PTFs for those products within a given feature
for which you are licensed under a single customer number. However, it does not
reflect the contents of any specific system within the establishment defined by that
customer number.
PSP Information
Once a service level has been created, there is no further opportunity to change the
HOLDDATA on that tape, even though new errors are reported. It is, however,
important that you have this error information when you are about to install a
CBPDO or an ESO. Otherwise, you may direct SMP/E to install a PE PTF, thus
introducing a problem while fixing one. To solve this problem, PSP files have been
set up to hold this additional HOLDDATA. Within each SREL, there is one PSP file
for each service level.
When a service level is created, a PSP file is also created. As problems (APARs)
are reported, appropriate ++HOLD statements are added to the applicable PSP
files. IBM determines the applicable PSP files as follows:
1. Determine the PTF that introduced the APAR.
2. If the PTF is not yet assigned a monthly service level, add a ++HOLD statement
to the CORPE PSP file as well as the most current monthly bucket.
Note: The CORPE PSP file is for PE PTFs available correctively, but not yet
assigned to a monthly service level. The current monthly bucket will
contain ++HOLD statements for corrective service PTFs as well as those
assigned to a monthly service level.
3. If the PTF is available on a service level, determine the service level on which
that PTF was first shipped.
4. Add a ++HOLD statement to the PSP file corresponding to that service level.
5. Add a ++HOLD statement to each PSP file corresponding to any service levels
shipped after the one determined in the previous step, up to the current service
level.
6. Add a ++HOLD statement for the next service level.
7. No further PSP files are updated.
Before installing a CBPDO tape, an ESO tape, or PTFs in corrective mode, use
IBMLINK or contact the IBM Support Center to get the information in the applicable
PSP file. For more information on how to use the PSP information, see “Processing
HOLDDATA from PSP Files” on page 121 and “Example of Processing HOLDDATA”
on page 121.
The following steps summarize the process for managing exception SYSMOD data:
1. Receive all new products as you get them, or use UCLIN to add the FMIDs of
the new products to the global zone. This allows you to process exception
SYSMODs for them. Then receive any associated HOLDDATA shipped with the
product.
2. Receive HOLDDATA from subsequent CBPDO or ESO tapes in service level
order. Remember to do the following:
Note: You can receive the SYSMODs and HOLDDATA separately or in the same
job.
One important part of this procedure is that the HOLDDATA on each CBPDO and
ESO must be received in chronological order. SMP/E processes the ++HOLD
and ++RELEASE statements in the order in which they are encountered. Therefore,
there can be an exposure if you receive the data out of sequence. For instance, the
tapes may be set up so that one contains a ++HOLD for a PTF and a subsequent
one contains a ++RELEASE for the same PTF. If the tapes are processed in the
wrong order, the RELEASE statement is processed first, and then the HOLD
statement. As a result, the PTF remains held.
By receiving the HOLDDATA as soon as possible, you make sure SMP/E has
the most current information available. Therefore, if you try to install any PTF in
response to a problem on your system and that PTF is in error, SMP/E knows
this and warns you so you can balance the effect of installing the known
problem against the effect of fixing the problem you have encountered.
2. Receive the SYSMOD file of the ESO as soon as you get the tape using the
SMP/E dialogs or the following sample job:
//RECPTFS JOB ’accounting info’,MSGLEVEL=(1,1)
//RECEIVE EXEC SMPPROC
//SMPPTFIN DD ...data describing sysmods file
//SMPCNTL DD *
SET BDY(GLOBAL) /* Set to global zone. */.
RECEIVE SYSMODS /* Receive only SYSMODs. */
SOURCEID(MYESO) /* Specify user-defined
source ID value. */.
LIST SYSMODS /* Now list the SYSMODs */
MCS /* including SMP MCS */
SOURCEID(MYESO) /* for those SYSMODs just
received. */.
/*
This makes sure that all available PTFs are ready to be installed. If you find a
problem in your system and determine that a PTF must be installed in corrective
mode, you have a better chance of having that PTF and all its requisites readily
available on the SMPPTS.
Note: The SOURCEID operand is optional. All PTFs in an ESO are assigned
SOURCEID values by ++ASSIGN statements.
Although the procedures for receiving the SYSMOD and the HOLDDATA file are
shown as separate jobs, they can be done in one RECEIVE command by
specifying both the SYSMODS and HOLDDATA operands. In fact, this is the
preferred method and is the default if neither operand is specified.
One important part of this procedure is that the HOLDDATA on each ESO and
CBPDO must be received in chronological order. SMP/E processes the ++HOLD
When you are ready to install a CBPDO or ESO, you must do the following:
1. Make sure you have received the HOLDDATA from, at minimum, all the
CBPDOs and ESOs up to the service level of the tape you are installing. You
should receive the HOLDDATA from all the available tapes to reduce the
amount of data that you have to get from PSP.
2. Use IBMLINK or contact the IBM Support Center to get the latest CORPE PSP
file, as well as the PSP file associated with the latest service level for which
you have received HOLDDATA (not the PSP file for the service level that you
are installing).
3. Create a data set containing the ++HOLD statements obtained from IBMLINK or
the IBM Support Center.
4. Receive that data set using the SMP/E dialogs or the following sample job.
//RECHOLD JOB ’accounting info’,MSGLEVEL=(1,1)
//RECEIVE EXEC SMPPROC
//SMPHOLD DD ...data describing your data set
//SMPCNTL DD *
SET BDY(GLOBAL) /* Set to global zone. */.
RECEIVE HOLDDATA /* Receive only exception
SYSMOD data. */.
/*
You should also use IBMLINK or contact the IBM Support Center to get PSP
information whenever you are installing corrective service. Before installing a PTF in
corrective mode, determine the service level on which it was initially shipped. Then
contact the IBM Support Center to get the PSP data associated with that service
level to determine whether there are any ++HOLD statements for that PTF. If so,
process them and install the PTF.
4. You are now trying to install PTFs at service level 0101. The amount of
processing you have to do before installing 0101 service level PTFs depends on
what you did with PTFs in 0102 and 0103 service levels.
v If you have received the HOLDDATA for service levels 0101, 0102, and 0103,
you have to process only the one ++HOLD statement for PTF UR00001 from
the PSP file for service level 0103.
v If you have received only the HOLDDATA for service level 0102, you have to
process the two ++HOLD statements for PTFs UR00001 and UR00005 from
the PSP file for service level 0102.
v If you decided not to process any data for particular service levels until you
are actually ready to install them (that is, if you did nothing with service level
0102 or 0103), you have to process the four ++HOLD statements for PTFs
UR00001, UR00002, UR00003, and UR00005 from the PSP file for service
level 0101.
Note: In each case, you used the PSP file associated with the last service level
for which you received the HOLDDATA, but if you had kept current in
In this example, the number of PTFs and HOLDDATA was small and, thus, the
data seems manageable. However, with a real service level with hundreds of
PTFs, the amount of manual work involved in getting the ++HOLD statements
from IBMLINK or the IBM Support Center, and then keying them into a data set
and receiving them could be very time-consuming. So, the cost of the increased
DASD space necessary to store the HOLDDATA each month is commonly paid
back in increased programmer productivity when the service level is to be
installed.
In this example, GDDM module ADMABCD needs to be linked into CICS load
module DFHWXYZ. Module ADMABCD is installed in a target library as a
single-CSECT load module when GDDM is installed. Therefore, SMP/E can use the
target library version of ADMABCD to update CICS load module DFHWXYZ. (If a
module does not reside in a target library as a single-CSECT load module, SMP/E
uses the related distribution zone copy of the module to update the load module.)
The following commands can be used to have SMP/E install and track the
installation of GDDM module ADMABCD in the CICS load module:
SET BDY(CICTZN) /* Target zone for CICS. */.
LINK MODULE(ADMABCD) /* Link module ADMABCD */
FROMZONE(GDDTZN) /* residing in zone GDDTZN */
INTOLMOD(DFHWXYZ) /* into load module DFHWXYZ. */.
These commands cause GDDM module ADMABCD to be linked into CICS load
module DFHWXYZ. SMP/E also adds cross-zone subentries to the affected entries:
v An XZLMOD subentry is added to the ADMABCD MOD entry in target zone
GDDTZN so that if ADMABCD is updated, it can be automatically replaced in the
CICS load module.
Note: The CICS load module is automatically updated only if the XZLINK
subentry was previously set to AUTOMATIC in the TZONE entry for zone
CICTZN. Here is an example of the commands that can be used to do
this:
SET BDY(CICTZN) /* Target zone for CICS. */.
UCLIN.
ADD TZONE(CICTZN) /* Update TZONE entry */
XZLINK(AUTOMATIC). /* to do automatic links. */.
ENDUCL.
v An XZMOD subentry is added to the CICS DFHWXYZ LMOD entry in target
zone CICTZN to indicate that:
– DFHWXYZ now contains ADMABCD.
– Any updates for ADMABCD should be accepted only from zone GDDTZN.
v TIEDTO subentries are added to the TZONE entries for CICTZN and GDDTZN to
indicate that there is a relationship between modules and load modules in these
zones.
For more information on the LINK command and cross-zone updating during APPLY
and RESTORE processing, see SMP/E Commands.
Introduction
The SMP/E database contains much information that is useful to you at certain
times. For instance, when a problem is encountered in your system:
v You need to know the functional and service level of the module with the error.
v You may also want to know when that module was last changed: a recent
change may have caused the problem.
v After reporting the problem, you can start working with the IBM Support Center to
debug the problem. They may want to know the status of other specific PTFs:
have you installed them; are they available on your system; is anything stopping
them from being installed?
v After identifying the problem in the module, you may want to know whether any
other parts of the system are affected by that module.
All of this information is available in the SMP/E database. You can obtain the
information by using the SMP/E dialogs as you debug the problem. You can also
use the SMP/E LIST command to create hardcopy listings of the information.
With the LIST command, you can display all entries of a specified type or specific
entries. The following sections demonstrate the flexibility of the LIST command. For
a complete description of all the LIST command operands, see The LIST Command
in SMP/E Commands.
Therefore, it is advisable to list all the data for each of your systems and save the
hardcopy listing. The data can be listed by individual zone. The following is an
example of a job for listing all the entries in zone TGT01.
//LIST JOB ’accounting info’,MSGLEVEL=(1,1)
//LIST EXEC SMPPROC
//SMPCNTL DD *
SET BDY(TGT01) /* Set to desired zone. */.
LIST /* List all entries */
XREF /* with XREF option to show
additional relationships
between entries. */.
/*
If you do not require a listing of the SYSMOD and MCS entries, you can use the
LIST operands that enable you to list only specific entry types. For additional
information, see “Listing by Specific Entry Type”.
SMP/E also provides support to list all the entries for all the zones defined in the
GLOBALZONE entry. This enables you to display all data for all systems with one
SMP/E command. Here is an example of this option:
//LIST JOB ’accounting info’,MSGLEVEL=(1,1)
//LIST EXEC SMPPROC
//SMPCNTL DD *
SET BDY(GLOBAL) /* Set to global zone. */.
LIST /* List all entries */
ALLZONES /* for all zones. */.
/*
Notes:
1. The ALLZONES operand should be used with caution; it may produce a large
amount of output.
2. This function can also be qualified by other LIST operands to limit the entries
listed from each zone. For example, the following job will list only the SYSMOD
entries from all zones:
//LIST JOB ’accounting info’,MSGLEVEL=(1,1)
//LIST EXEC SMPPROC
//SMPCNTL DD *
SET BDY(GLOBAL) /* Set to global zone. */.
LIST SYSMOD /* List the SYSMOD entries */
ALLZONES /* for all zones. */.
/*
SMP/E supports various operands on the LIST command that you can use to list all
the entries for one or more entry types. The following job shows how to use the
DDDEF, OPTIONS, and UTILITY operands on the LIST command to do this:
//LIST JOB ’accounting info’,MSGLEVEL=(1,1)
//LIST EXEC SMPPROC
//SMPCNTL DD *
SET BDY(TGT1) /* Set to target zone */.
LIST DDDEF /* List all DDDEF entries. */
/* */.
SET BDY(DLIB1) /* Set to DLIB zone */.
For a complete list of all the operands corresponding to the various entry types, see
The LIST Command in SMP/E Commands.
Note: Not all entry types are valid for each zone type. For example, requesting a
listing of the OPTIONS entries in a target zone results in an error, because
OPTIONS entries exist only in the global zone. For a summary of the types
of entries contained in each type of zone, see Table 2 on page 56 and
Table 3 on page 56.
Sometimes, the various entry-type operands can be further qualified to process only
a subset of all existing entries. The most common type for which this can be done
is the SYSMOD entries. There are numerous operands to qualify SYSMOD entries.
The LIST Command in SMP/E Commands describes all of them in detail.
One of the most common uses of this function is to determine the functions (or
FMIDs) that have been installed. The following job can be used to list:
v The function SYSMODs installed on TGT1
v Those PTFs that have been applied to TGT1 but not yet accepted to DLIB1
//LIST JOB ’accounting info’,MSGLEVEL=(1,1)
//LIST EXEC SMPPROC
//SMPCNTL DD *
SET BDY(TGT1) /* Set to target zone. */.
LIST SYSMOD /* List the SYSMOD entries */
FUNCTIONS /* for function SYSMODs. */
/* */.
LIST SYSMOD /* List the SYSMOD entries */
PTFS /* for PTF type SYSMODs */
NOACCEPT(DLIB1) /* not yet accepted. */
/* */.
/*
If you have a complete, current listing of all the entries in your system, you can get
this information from that listing. You can also get it through the SMP/E dialogs
while you are talking to the IBM Support Center.
SMP/E also provides additional LIST functions that you can use to display only
specified entries. This is done by allowing you to specify a list of entry names (in
parentheses) after each of the entry-type operands. For example, assume that you
need to know the function and service level for modules GIMMPDRV and GIMMPIO
and if SYSMOD UR12345 has been installed. The following job can be used:
Chapter 10. Displaying the Data Managed by SMP/E: The LIST Command 129
LIST Command
//LIST JOB ’accounting info’,MSGLEVEL=(1,1)
//LIST EXEC SMPPROC
//SMPCNTL DD *
SET BDY(TGT1) /* Set to target zone. */.
LIST MOD(GIMMPDRV /* List these two modules */
GIMMPIO) /* */
SYSMOD(UR12345) /* and this SYSMOD. */
/* */.
/*
You receive a listing of the required information for the two modules. If SYSMOD
UR12345 was installed, it should be listed; otherwise, you receive a message
saying that the entry was not found (meaning it has not been installed).
Another common use for this function is to list the cover letters for specific PTFs.
The following job shows an example of a job for listing the cover letters for PTFs
UR00001, UR00002, and UR00003:
//LIST JOB ’accounting info’,MSGLEVEL=(1,1)
//LIST EXEC SMPPROC
//SMPCNTL DD *
SET BDY(GLOBAL) /* Set to global zone. */.
LIST MCS( /* List cover letters */
UR00001 /* for these three PTFs. */
UR00002
UR00003
)
.
/*
Note: The names within the FORFMID operand can be names of FMIDSET
entries. In this case, SMP/E lists all the entries associated with any of the
FMIDs defined in the FMIDSET entry.
Note: You can also use the REPORT SYSMODS command to compare the
SYSMOD content of two zones. Besides telling you which SYSMODs are
installed in one zone but not in a second, REPORT SYSMODS also
indicates which of the uninstalled SYSMODs are applicable to the second
zone and generates commands you can run to install the SYSMODs in the
second zone. For more information, see Chapter 16, “Comparing the
SYSMODs Installed in Two Zones: The REPORT SYSMODS Command” on
page 147.
One possibility might be that you have two products at different service levels. The
product at the lower service level works, and the product at the higher service level
does not work. You might use LIST to compare the zones for the two systems and
to determine what is causing the problem.
This example compares two target zones, TGT1 and TGT2. The commands in the
following example perform the comparison for you:
//LIST JOB ’accounting info’,MSGLEVEL=(1,1)
//LIST EXEC SMPPROC
//SMPCNTL DD *
SET BDY(TGT1) /* Set to target zone TGT1. */.
LIST SYSMODS /* List the SYSMODs */
/* in zone TGT1 */
NOAPPLY(TGT2) /* that have not been */
/* applied to TGT2. */
/* */.
SET BDY(TGT2) /* Set to target zone TGT2. */.
LIST SYSMODS /* List the SYSMODs */
/* in zone TGT2 */
NOAPPLY(TGT1) /* that have not been */
/* applied to TGT1. */
/* */.
/*
By comparing the two resulting listings, you can see the differences between the
two zones.
In this second example, the same product is installed in different zones. You want
to compare the service to make sure both copies of the product are at the same
level. For example, assume that product PVT1102 is installed in two target zones
and two distribution zones:
Chapter 10. Displaying the Data Managed by SMP/E: The LIST Command 131
LIST Command
You want to make sure that PVT1102 is at the same service level in all the zones.
To do this, you can use the LIST command and compare which SYSMODs are
installed in which zones.
To compare the service levels of product PVT1102 in the two distribution zones, you
can use the commands in the following example:
//LIST JOB ’accounting info’,MSGLEVEL=(1,1)
//LIST EXEC SMPPROC
//SMPCNTL DD *
SET BDY(DLIB1) /* Set to DLIB1. */.
LIST SYSMOD /* List SYSMODs */
FORFMID (PVT1102) /* for PVT1102 */
NOACCEPT (DLIB2) /* in DLIB1, not DLIB2. */.
SET BDY(DLIB2) /* Set to DLIB2. */.
LIST SYSMOD /* List SYSMODs */
FORFMID (PVT1102) /* for PVT1102 */
NOACCEPT (DLIB1) /* in DLIB2, not DLIB1. */.
Similarly, to compare the service records for the target zone copies of PVT1102,
you can use LIST with the NOAPPLY operand.
Summary
The LIST command enables you to:
v Compare two target zones using the NOAPPLY operand.
v Compare two distribution zones using the NOACCEPT operand in place of the
NOAPPLY operand.
v Compare a target zone and a distribution zone using both the NOAPPLY and
NOACCEPT operands.
This gives you the ability to compare all combinations of zone types, keeping in
mind that the zone for the NOAPPLY operand must be a target zone, and that the
zone for the NOACCEPT operand must be a distribution zone.
Introduction
The SMPCSI and associated data sets contain basically two types of information:
v Information added as a result of installing SYSMODs. Generally, this type is
managed completely by SMP/E; that is, appropriate entries are added, changed,
or deleted as SYSMODs are installed. You need not make any modification to
the database to record this information. You may, however, need to make
changes to do the following:
– Record changes made outside SMP/E
– Delete information no longer required
– Recover from an SMP/E or system error
v Information added by you to control the installation of SYSMODs. You must
manually add this information to the database before processing any SYSMODs.
You may later need to modify the information to reflect new processing
information.
To use UCLIN effectively, you should have a detailed understanding of how it works
and what it can do. The UCLIN Command in SMP/E Commands and SMP/E
data-set entries in the SMP/E Reference manual provide that level of detail. Read
those chapters before trying to run any UCLIN commands. The following sections
describe, at a very high level, what UCLIN is.
For example, you can use UCLIN to delete a UTILITY entry in the global zone
without SMP/E detecting any error condition. However, if there is an OPTIONS
entry within the global zone that refers to the deleted UTILITY entry, an error occurs
when you attempt to use that OPTIONS entry. This is a very simple example of
inconsistent data across entries that does not result in a serious error. UCLIN
modifications to other entries, such as element, LMOD, or SYSMOD, may not be
detected as error conditions during processing, but may cause incorrect processing,
such as failing to link a module, updating the wrong library, or installing a SYSMOD
that should not be installed.
2. If you are not the originator of the UCLIN, make sure you understand exactly
what is being done and why. If you are not sure, find out before making the
update.
3. Make sure the UCLIN is being done in the correct sequence in the
process—before or after the installation of the SYSMOD.
4. Make sure all the data is correct.
5. List the entry before changing it. This makes sure you know what the original
entry looked like in case an error is reported during the UCLIN or the
modification causes an error.
6. After you have done all of these steps, if you have been given directions for
installing the UCLIN (for example, in the PTF cover letter or in the program
directory for a new function), follow those directions.
Some UCLIN functions will not work for certain entries or data sets. The chapters
on the UCLIN command in SMP/E Commands and SMP/E data-set entries in
SMP/E Reference provide detailed information on which entries may be modified for
each data set, what data within each entry may be modified, and the exact syntax
for each entry and data item.
Where:
ADD|REP|DEL
specifies the action to be taken on the entry or operands specified.
In general, ADD means add the entry or operand only if it is not already
present; REP means replace the operand if it is already present, otherwise add
it; and DEL means delete the entry or operand if it exists. For a more detailed
description of the functions provided by ADD, REP, and DEL, see the chapter
on the UCLIN command in the SMP/E Commands manual.
type(name)
specifies the entry type (such as MOD, MAC, SRC, data element type,
SYSMOD) and name of the entry (such as GIMMPDRV, HELP, MYSRCMOD,
MYCLIST, UR12345).
operand
specifies the individual data items in the entry that are to be modified.
The data items can be:
v Single operands, such as RENT or REUS or COPY
v Single value subentries, such as DISTLIB(AOS12), where only one value can
be placed within the parentheses
v Multiple value subentries, such as LMOD(LMOD01,LMOD02,LMOD3) or
MAC(MAC01,MAC02), where more than one value can be specified within
the parentheses
Chapter 11. Changing the Data SMP/E Manages: The UCLIN Command 135
UCLIN Command
Introduction
In the course of maintaining your system, you may need to find out if a particular
library (which you upgraded) contains modules that are implicitly included in any
other product’s load modules. (The libraries containing such modules are defined by
the CALLLIBS subentries in the load module’s LMOD entry.) If so, you would want
to make sure that the other product’s load modules are relinked so that they contain
the latest routines from the upgraded library. You could use the REPORT CALLLIBS
command to identify the load modules that need to be updated. To obtain this
information, follow these steps:
1. Run the REPORT CALLLIBS command to get a report of the affected load
modules.
2. Use the JCL that is generated to relink these load modules.
ZONESET entry TZONSET identifies the target zones associated with the affected
load modules. To identify the load modules that might need to be updated, you
would use the following REPORT CALLLIBS command:
REPORT CALLLIBS(PLIBASE) /* Report on ddname */
ZONES(TZONSET) /* for ZONESET TZONSET */
JOBCARD(JDDNAME) /* for JOBCARD JDDNAME. */.
Because NOPUNCH was not specified, SMP/E writes the necessary JCL to the
SMPPUNCH data set.
Introduction
Your system may contain products that are packaged and installed separately, but
which have service level or interface dependencies. For example, an interface error
in one product may require a change to another product that used the interface.
When this happens, a unique PTF is generated for each product. The relationship
between the PTFs can be specified in a conditional requisite (++IF) modification
control statement in the PTFs. If you have completed the steps listed in “Specifying
Automatic Cross-Zone Requisite Checking” on page 73, SMP/E automatically
checks the requisites during APPLY, ACCEPT, and RESTORE processing, whether
the products are in the same zone or in separate zones. However, if you have not
completed these steps and the products are in separate zones, the requisites are
not automatically checked in any other zones. In this case, to make sure these
requisites are installed where they are needed, you must:
1. Define a set of zones to be checked for conditional requisites. This is done with
the ZONESET entry in the global zone.
Note: If you just want to check service levels for products, you should use the
REPORT SYSMODS command or the LIST command. See Chapter 16,
“Comparing the SYSMODs Installed in Two Zones: The REPORT SYSMODS
Command” on page 147 and “Listing to Compare Two Zones” on page 131
for more information.
Defining a ZONESET
To tell SMP/E which zones it should check for missing requisites, you must define a
global zone ZONESET entry. You may have one or more ZONESETs to describe
groups of products that might have dependencies on each other.
For example, assume you have a system that supports two products, ABC and
AYZ, that have dependencies on one another. You might have one zone,
BASEABC, for the base ABC function, and another zone, PRODABC, for a
dependent function. Likewise, you might have a zone BASEXYZ for the base XYZ
function, and another zone, PRODXYZ, for a dependent function. The dependent
functions are different versions of the same product, and they must be synchronized
with each other and with their base functions. You can set up two ZONESETs to
help keep these products at the same service level.
For more information on defining the ZONESET entry, see SMP/E Reference.
If all the zones in a ZONESET are of the same type, SMP/E determines the type of
report to be generated. For example, a ZONESET containing only target zones
results in a Cross-Zone Requisite SYSMOD report for APPLY processing. On the
other hand, your ZONESET can be mixed; that is, it may contain both target and
distribution zones. If this is the case, you need to specify which type of Cross-Zone
report you want generated.
You can limit which SYSMODs SMP/E reports on by specifying any combination of
these operands on the REPORT CROSSZONE command:
v FORZONE: to list only SYSMODs needed in specific zones in the ZONESET
v FORFMID: to list only SYSMODs needed for specific FMIDs in the ZONESET
zones
v DLIBZONE or TARGETZONE: to tell SMP/E which zones you want a report on
(if the zones contained in the zone set specified by ZONESET are mixed)
For more information on the REPORT CROSSZONE command, see the SMP/E
Reference manual.
For the example in this chapter, follow these steps for ZONESET ZONEA and
ZONESET ZONEX, because both contain zone PRODXYZ. You can continue to run
the REPORT CROSSZONE command and install SYSMODs until all the needed
SYSMODs have been installed in both ZONESETs.
Chapter 13. Identifying Cross-Zone Requisites: The REPORT CROSSZONE Command 141
142 SMP/E V3R1.0 User’s Guide
Chapter 14. Identifying Installed SYSMODs Affected by Error
Holds: The REPORT ERRSYSMODS Command
This chapter contains information about using the REPORT ERRSYSMODS
command to check for installed SYSMODs affected by error holds that were
subsequently received. It discusses these topics:
v How to run the REPORT ERRSYSMODS command
v How to use output from the REPORT ERRSYSMODS command for installing the
SYSMODs
Introduction
In the course of maintaining your system, you can apply or accept service and later
receive HOLDDATA that affects that service. If any of that HOLDDATA was for an
error reason ID, you should install a resolving SYSMOD so that the error does not
occur on your system. However, SMP/E does not automatically write any reports
during RECEIVE processing to help you do this. To see if any installed SYSMODs
are affected by error holds that were subsequently received, you must:
1. Run the REPORT ERRSYSMODS command to get a list of the SYSMODs that
must be installed and the zones where they are needed.
2. Install the resolving SYSMODs in the indicated zones.
3. Determine whether any resolving SYSMODs are available for held SYSMODs.
You can limit which HOLDDATA SMP/E reports on by specifying any combination of
these operands on the REPORT ERRSYSMODS command:
v BEGINDATE: to check HOLDDATA entries for error reason IDs that were
received by SMP/E on or after the specified date
v ENDDATE: to check HOLDDATA entries for error reason IDs that were received
by SMP/E on or before the specified date
v FORFMID: to list only SYSMODs owned by specific FMIDs
Here is an example of when you might want to use the REPORT ERRSYSMODS
command. Assume that you have just received some HOLDDATA, and you need to
know whether it affects any of the SYSMODs you have already accepted into
distribution zone DZONE1. You can use the following commands:
//REPORT JOB ’accounting info’,MSGLEVEL=(1,1)
//REPORT EXEC SMPPROC
//SMPCNTL DD *
SET BDY(GLOBAL) /* process global zone */.
REPORT ERRSYSMODS /* report on exception */
Introduction
In the course of maintaining your system, you may need to find out which source
IDs are assigned to SYSMODs in a given zone. For example, assume you install
service using CBPDOs, which assign source IDs to the service SYSMODs they
contain. You can use the REPORT SOURCEID command to determine the latest
service level you have installed in a particular zone. To determine the service level
based on source IDs, follow these steps:
1. Run the REPORT SOURCEID command to get a list of which source IDs are
assigned to SYSMODs in a given zone.
2. If desired, list the SYSMOD entries for the SYSMODs with those source IDs.
Here is an example of when you might want to use the REPORT SOURCEID
command. Assume you want to find out which source IDs are associated with
SYSMODs in target zone TGT1, and you want to know which SYSMODs each
source ID is assigned to. You can use the following commands:
SET BDY(GLOBAL).
REPORT SOURCEID
ZONES(TGT1)
SYSMODIDS.
Introduction
In the course of maintaining your system, you may need to compare the function
and service level of two zones. For example, if you have installed the same
products in different zones, you may want to make sure that both copies of these
products are at the same level. SMP/E does not do this kind of checking
automatically. To compare the SYSMODs installed in two zones, you must:
1. Run the REPORT SYSMODS command to get a list of the SYSMODs that are
installed in the first zone and that are applicable to the second zone but are not
yet installed there.
2. Install the applicable SYSMODs in the second zone.
Here is an example of when you might want to use the REPORT SYSMODS
command. Assume you have two z/OS systems. The target zones that control these
systems are TGZONE1 and TGZONE2, and they are serviced from the same global
zone. You want to determine which SYSMODs are installed in TGZONE1 and are
not installed in, but are applicable to, TGZONE2. You can use the following
commands:
SET BDY(GLOBAL) /* process global zone */.
REPORT SYSMODS /* report on SYSMODs */
INZONE(TGZONE1) /* input zone TGZONE1 */
COMPAREDTO(TGZONE2) /* comparison zone TGZONE2 */.
Although you might be able to make these changes without SMP/E, there are
advantages to creating them either as USERMODs or as function SYSMODs so
that SMP/E can install them.
Before creating your changes, you must decide whether to build a USERMOD type
SYSMOD or a function SYSMOD. Table 15 lists considerations that will help you
make this decision.
Table 15. Comparison of USERMODs and Function SYSMODs
USERMOD Function SYSMOD
Provides changes for elements owned by an Provides new elements or new element
existing function. versions for a new function.
The data following the ++MOD statement is an object deck. The general format of
the ++MOD statement is:
++MOD(modname) /* Distribution name */
DISTLIB(dlibname) /* DLIB ddname */
...
... Object deck for module
...
The data following the ++ZAP statement is a set of superzap control statements.
The general format of the ++ZAP statement is:
++ZAP(modname) /* Distribution name */
DISTLIB(dlibname) /* DLIB ddname */.
...
... Superzap control statement
...
The superzap control statements are the same as you would use if you were calling
the superzap utility. The only exception is that on the NAME statement, you should
specify only the CSECT name within the distribution library module, rather than the
load module name and the CSECT name. When SMP/E installs the SYSMOD, it
determines all the load modules into which this distribution module was link-edited
and then calls the superzap utility for each of these load modules, modifying the
NAME statement as appropriate.
The data following the ++MAC statement is the macro replacement. The general
format of the ++MAC statement is:
++MAC(macname) /* Macro name */
DISTLIB(dlibname) /* DLIB ddname */.
...
... Macro replacement
...
The data following the ++MACUPD statement is the control statements that would
have been used if you called the IEBUPDTE utility. The general format of the
++MACUPD statement is:
++MACUPD(macname) /* Macro name */
DISTLIB(dlibname) /* DLIB ddname */.
...
... Update control statements
...
To be packaged inline, a program element must be unloaded along with its aliases
into a sequential data set and then transformed with GIMDTS into the required
fixed-block-80 record format before it is packaged. Later, when SMP/E installs the
element, it is changed back to its original format. For more information about using
GIMDTS, see SMP/E Reference.
The data element MCS is immediately followed by the data element itself. The
general format of the data element MCS is:
++element(name) /* Data element type, name */
DISTLIB(dlibname) /* DLIB ddname */.
...
... Data element replacement
...
Examples of USERMODs
This section contains examples of USERMODs that:
v Update a module
v Replace a module
v Add new modules
v Replace a macro or source code
v Update a macro or source code
v Add new source code
v Add source code that uses an IBM-supplied macro
v Add a module that uses an IBM-supplied macro
Notes:
1. You should verify each location that you are going to update.
2. You can specify only one name in the NAME statement.
3. The changes made by the REP statements are explained by the preceding
comment lines.
Note: There are no PRE operands on the ++VER statement, because this module
has not been modified since its initial installation. Therefore, only the ++VER
FMID operand is required.
Notes:
1. The ++JCLIN statement is required because the SYSMOD provides new
modules and a new load module.
2. This SYSMOD could have been packaged as a ++FUNCTION, because each of
the modules is user-written.
3. This SYSMOD could have been packaged as three separate SYSMODs, each
containing one module. In that case, each SYSMOD would then need to specify
the ++VER REQ operand so the SYSMODs would be installed as a set.
Notes:
1. The ++VER PRE operand specifies the previous SYSMOD that replaced the
macro.
2. You can follow this example to update source code, with the following
exceptions:
v The ASSEM operand is not used for source code.
v Because the SYSMOD adding the source code defined how the module
should be installed, there is no need to repeat that information on a ++JCLIN
statement in the USERMOD.
2 Name of object module produced by v JCLIN data, M= value on COPY SELECT statement:
assembly: COPY SELECT M=(IFBSRC01)
IFBSRC01 (same as source code
element)
5 Target library for load module: v JCLIN data, OUTDD value on COPY statement:
COPY INDD=inddval,OUTDD=LPALIB TYPE=MOD
SYS1.LPALIB
v DD statement in JCLIN data and in SMP/E job for APPLY processing:
LPALIB DD DSN=SYS1.LPALIB
6 Distribution library for source code: v DISTLIB value on ++SRC MCS:
++SRC(IFBSRC01) DISTLIB(AIFBSRC)
SYS1.AIFBSRC
v JCLIN data, INDD value on COPY statement:
COPY INDD=AIFBSRC,OUTDD=IFBSRC TYPE=SRC
v DD statement or DDDEF entry for ACCEPT processing:
AIFBSRC DD DSN=SYS1.AIFBSRC
8 How to install the source code: v ++SRC MCS automatically notifies SMP/E to assemble the module.
v JCLIN data, COPY steps:
Assemble, then copy
//JOB1 JOB ...
//STEP1 EXEC PGM=IEBCOPY
//AIFBSRC DD DSN=SYS1.AIFBSRC,...
//IFBSRC DD DSN=SYS1.IFBSRC,...
//AOS23 DD DSN=SYS1.AOS23,...
//LPALIB DD DSN=SYS1.LPALIB,...
//SYSIN DD *
COPY INDD=AIFBSRC,OUTDD=IFBSRC TYPE=SRC
SELECT M=(IFBSRC01)
COPY INDD=AOS23,OUTDD=LPALIB TYPE=MOD
SELECT M=(IFBSRC01)
/*
v The OPTIONS and UTILITY entries in effect for the APPLY or
ACCEPT command being processed specify the names of the
assembler and copy utilities to use and parameters to be passed to
them.
The following is a sample USERMOD that can be used to package the source
code. The numbers associate items in the SYSMOD with the information listed in
Table 16 on page 157.
++USERMOD(UMOD001).
++VER(srel) FMID(fmid).
++JCLIN.
//STEP1 EXEC PGM=IEUASM
//SYSPUNCH DD DSN=&&PUNCH(SRCPART),DISP=(PASS);
//SYSIN DD *
SRCPART CSECT
IBMMAC
BR 14
END
//LINK EXEC PGM=IEWL
//SYSLMOD DD DSN=SYS1.LINKLIB,DISP=SHR
//SYSLIN DD *
INCLUDE SYSPUNCH(SRCPART)
NAME LOADMOD1
/*
++SRC(SRCPART) SYSLIB(tgtlib) DISTLIB(dlib).
SRCPART CSECT
IBMMAC
BR 14
END
When the assembly step in the JCLIN is processed, a GENASM subentry is added
to the MAC entry for IBMMAC indicating SRCPART is to be assembled whenever
IBMMAC is updated. So, if you install a SYSMOD that updates IBMMAC, SMP/E
automatically reassembles SRCPART and link-edits the new copy into LOADMOD1.
Because you specified the macro’s RMID and UMIDs, when IBMMAC is serviced,
the APPLY will get a MODID error for the USERMOD. You will have to restore the
USERMOD to successfully apply the service. Then you can rework the USERMOD
and apply it again.
Introduction
A causer SYSMOD is a SYSMOD whose failure led to the failure of other
SYSMODs. To identify causer SYSMODs, SMP/E performs root cause analysis for
the ACCEPT, APPLY, and RESTORE commands. The types of errors SMP/E
analyzes to determine causer SYSMODs include the following:
v Held SYSMODs
v Missing requisite SYSMODs
v Utility program failures: copy, update, assembler, link, zap
v Out-of-space conditions: x37 ABENDs
v Missing DD statements and other allocation errors
v ID errors (a SYSMOD does not supersede or specify as a prerequisite an RMID
or a UMID of an element)
v JCLIN errors (syntax errors)
The results of SMP/E’s root cause analysis are presented in two reports:
v SYSMOD Status report
This report summarizes the processing done for each eligible SYSMOD. For
SYSMODs that failed, the report lists the causer SYSMODs.
After you check the SYSMOD Status report to determine the results of
processing, use the Causer SYSMOD Summary report to determine which errors
need to be corrected.
v Causer SYSMOD Summary report
This report lists the causer SYSMODs along with a brief summary of the related
messages, descriptions of the errors that caused the SYSMODs to fail, and,
when feasible, some causes for those errors.
Example
Suppose you ran the following command:
and the SYSMOD Status report included the results shown in Figure 37.
Page nnnn - NOW SET TO TARGET ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 31.nn SMPRPT OUTPUT
NOTE: ’-’ INDICATES THE REQUISITE SYSMOD OR HOLD CONDITION IS NOT SATISFIED
’*’ INDICATES THE NON SATISFIED REQUISITE SYSMOD OR HOLD CONDITION IS BYPASSED
’#’ INDICATES THE SUPERSEDING SYSMOD WAS NOT PROCESSED
SYSMOD STATUS TYPE FMID REQUISITE SYSMODS, SUPBY SYSMODS, HOLD REASON-IDS, AND CAUSER SYSMODS
In this case, the report indicates that APPLY processing failed for SYSMODs
UR00001 and UR00002 because of unresolved error holds. The causer SYSMOD
for both PTFs is UR00002. Next, you look up UR00002 in the Causer SYSMOD
Summary report, shown in Figure 38 on page 165.
Page nnnn - NOW SET TO TARGET ZONE nnnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 31.nn SMPRPT OUTPUT
Figure 38. Causer SYSMOD Summary Report: Sample Report for APPLY
That report shows that APPLY processing failed because error hold AR00003 was
not resolved for SYSMOD UR00002. By resolving this hold, you will fix the errors
listed in the SYSMOD Status report.
Chapter 18. Determining Which SYSMODs Led Others to Fail: The Causer SYSMOD Summary Report 165
166 SMP/E V3R1.0 User’s Guide
Appendix A. Migration
Migration Overview
Your plan for migrating to the new level of SMP/E should include information from a
variety of sources. These sources of information describe topics such as
coexistence, service, migration procedures, and interface changes.
The following documentation, which is supplied with your product order, provides
information about installing your z/OS system. In addition to specific information
about SMP/E, this documentation contains information about all of the z/OS
elements.
v z/OS and z/OS.e Planning for Installation
This book describes the installation requirements for z/OS at a system and
element level. It includes hardware, software, and service requirements for both
the driving and target systems. It also describes any coexistence considerations
and actions.
v SMP/E Program Directory
This document, which is provided with your SMP/E product order, leads you
through the specific installation steps for SMP/E.
v ServerPac Installing Your Order
This is the order-customized installation book for using the ServerPac installation
method. Be sure to review “Appendix A. Product Information”, which describes
data sets supplied, jobs or procedures that have been completed for you, and
product status. IBM may have run jobs or made updates to PARMLIB or other
system control data sets. These updates could affect your migration.
Within this book, you can find information about the specific updates and
considerations that apply to this release of SMP/E.
v “Migration Roadmap” on page 169
This section identifies the migration paths that are supported with the current
level of SMP/E. It also describes the additional publications that can assist you
with your migration to the current level.
v “SMP/E V3R1 Overview” on page 170
This section describes the specific updates that were made to SMP/E for the
current release. For each item, this section provides an overview of the change,
a description of any migration and coexistence tasks that may be considered,
and where you can find more detailed information in the SMP/E library or other
element libraries.
v “Summary of Interface Changes” on page 182
This section provides a summary of the changes that are made to z/OS user and
programming interfaces.
Migration Roadmap
Migration tasks
If you have existing exit routines defined in GIMMPUXD or wish to create new exit
routines, you must define them in a GIMEXITS member. Any exit routines defined in
GIMMPUXD will be ignored by SMP/E
For more detailed information about this change, refer to SMP/E Reference.
Coexistence considerations
Unless the required PTF is installed, SMP/E releases prior to SMP/E V3R1 cannot
process a SYSMOD containing a hierarchical file system element MCS that
specifies a LINK value longer than 64 characters, nor can they process a
hierarchical file system element entry containing a LINK subentry, or an LMOD
entry containing an LMODALIAS subentry, created by SMP/E V3R1, or higher. If
installed, the PTF will update the SMP/E Query dialogs and the GIMAPI to retrieve
and display information about LINK or LMODALIAS subentries created by SMP/E
V3R1, or higher. For all other SMP/E processing, the PTF will cause SMP/E to
issue an error message if it encounters an unsupported LINK value or LINK or
LMODALIAS subentry.
Migration tasks
An application program that uses the SMP/E Alias Record Type 0 (A0) library
change record may need to be updated to handle alias and link values of up to
1023 characters to avoid truncating data. For more information about this change,
refer to the chapter on Library Change File Records in SMP/E Reference.
An application program that uses the GIMAPI to query the LINK subentry of an
hierarchical file system element entry or the LMODALIAS subentry of an LMOD
entry may need to be updated to allow for the longer length of these subentries. For
more information about this change, refer to the description of these subentries in
the GIMAPI chapter of SMP/E Reference.
Migration tasks
An application program that uses the GIMAPI to query the NUCID subentry of an
OPTIONS entry must be updated because this subentry no longer exists. For more
information about the GIMAPI, refer to the GIMAPI chapter of SMP/E Reference.
Coexistence considerations
Unless the required PTF is installed, SMP/E releases prior to SMP/E V3R1 cannot
process JCLIN input that contains the special JCL comments used to skip over
parts of the JCLIN input. If installed, the PTF will cause SMP/E to issue an error
message if the unsupported JCL comments are encountered.
SMP/E also provides the GIMZIP and GIMUNZIP service routines to construct, and
then later unwrap, network transportable packages of software. This allows you to
create your own packages of SMP/E installable software, and then distribute them
within your own enterprise, or to other enterprises. Specifically, the GIMZIP service
routine will accept partitioned or sequential data sets as input and will create a
network transportable package as output. For more information on the GIMZIP and
GIMUNZIP service routines, see SMP/E Reference, SA22-7772.
Once a package is made accessible on an FTP server, you can use the SMP/E
RECEIVE command to transfer the package through a TCP/IP network directly into
an SMP/E environment. The RECEIVE command has been extended with new
DELETEPKG, FROMNETWORK, and FROMNTS operands to process these
network transportable packages. For more information on the RECEIVE command
changes, see SMP/E Commands, SA22-7771.
New CLIENT and SERVER data sets and SMPDIR and SMPNTS directories have
been created to support this new processing. For more information on CLIENT,
SERVER, SMPDIR, and SMPNTS, see SMP/E Reference, SA22-7772.
Coexistence considerations
Network delivery of SMP/E input requires a new packaging format for that input and
new operands on the RECEIVE command. SMP/E releases prior to z/OS SMP/E
cannot process this new packaging format and do not recognize the new RECEIVE
command operands.
The AMODE option assigns the addressing mode for all of the entry points into a
program module (the main entry point, its true aliases, and all of the alternate entry
points). AMODE=64 instructs the binder to create AMODE 31/64 executables with
8-byte adcons.
The COMPAT option identifies the compatibility level of the binder. COMPAT=PM4
allows the user to specify a compatibility level appropriate for AMODE=64
executables.
For more information about this change, refer to the description of each of these
data sets in SMP/E Reference.
Coexistence considerations
Releases of SMP/E prior to OS/390 Version 2 Release 7 cannot process the
DEIINST and HFSINST jobs created by the GENERATE command of SMP/E V3R1
or z/OS SMP/E. Also, an HFSINST job created by the GENERATE command from
a release of SMP/E prior to OS/390 Release 7 cannot be processed by z/OS
SMP/E or by OS/390 V2R7 (or later) SMP/E.
Rerun the GENERATE job using the SMP/E release that will be used to process the
resulting JCL.
Coexistence considerations
The SMP/E user must be defined to the security class BPX.SUPERUSER for this
process to work properly.
Product Data
The ++PRODUCT and ++FEATURE MCS can be used to add, replace, or delete
additional product and feature data.
Coexistence considerations
Releases of SMP/E prior to OS/390 Version 2 Release 7 cannot process the
DEIINST and HFSINST jobs created by the GENERATE command of SMP/E V3R1
or z/OS SMP/E. Also, an HFSINST job created by the GENERATE command from
Rerun the GENERATE job using the SMP/E release that will be used to process the
resulting JCL.
CBIPO dialogs
The CBIPO installation dialogs formerly included with SMP/E were removed from
from SMP/E in OS/390 V2R5 SMP/E. Customers wishing to install a CBIPO on an
OS/390 system may still do so using bootstrap dialogs provided with the CBIPO.
Coexistence considerations
Enhanced hierarchical file system element MCS cannot be used by SMP/E releases
prior to OS/390 V2R5 SMP/E, unless the required PTF is installed.
Coexistence considerations
OPTIONS entries that contain the CHANGEFILE subentry cannot be used by
SMP/E releases prior to OS/390 V2R5 SMP/E, unless the required PTF is installed.
Coexistence considerations
LMOD entries that contain the RETURN CODE subentry cannot be used by SMP/E
releases prior to OS/390 V2R5 SMP/E, unless the required PTF is installed.
Performance Improvements
OS/390 V2R5 (or later) SMP/E provides for multitasking of link-edit operations
during APPLY, ACCEPT, and RESTORE processing.
Coexistence considerations
v Compacted SMPPTS data created by OS/390 V2R5 (or later) SMP/E cannot be
used by releases prior to OS/390 V2R5 SMP/E, unless the required PTF is
installed.
v OPTIONS entries that contain the COMPACT subentry cannot be used by SMP/E
releases prior to OS/390 V2R5 SMP/E, unless the required PTF is installed.
Coexistence considerations
OPTIONS entries that contain the RECZGRP and RECEXZGRP subentries cannot
be used by SMP/E releases prior to OS/390 V2R5 SMP/E.
Coexistence considerations
OPTIONS entries that contain the MSGWIDTH and MSGFILTER subentries cannot
be used by SMP/E releases prior to OS/390 V2R5 SMP/E.
Coexistence considerations
Application programs cannot use the VERSION command of the GIMAPI
programming interface on releases of SMP/E prior to OS/390 V2R5 (or later)
SMP/E, unless the required PTF is installed.
A program called GIMAPI is used to invoke the API. The function can be called
from different languages. Examples are provided for C/370 and PL/I.
Optional parameters with these commands provide you the flexibility to:
v Override SMP/E’s default method for determining which zones are checked for
cross-zone requisites
v Install unsatisfied cross-zone requisites into the set-to zone
v Lessen the severity of a missing cross-zone requisite to a warning versus a
terminating error
Coexistence considerations
Releases of SMP/E prior to OS/390 V1R3 SMP/E cannot perform the cross-zone
requisite checking requested by the XZREQCHK(YES) subentry of a ZONESET
entry and will ignore the request.
The REPORT ERRSYSMODS command has also been enhanced by this SPE to
handle held SYSMODs. Previously, a held, resolving SYSMOD was placed in the
SMPPUNCH output, but was commented out. The customer had to rerun REPORT
ERRSYSMODS command against the GLOBAL zone to determine if the held,
resolving SYSMOD had an available resolving SYSMOD. REPORT ERRSYSMODS
does this research for the customer and produces one SMPPUNCH output.
Coexistence considerations
v The REPORT ERRSYSMODS command in SMP/E releases prior to OS/390
V1R3 cannot display IBM z/OS Enhanced HOLDDATA as intended. OS/390
V1R3 and V2R4 require the installation of the appropriate SPE.
v The format of the HOLDDATA provided by the SMARTMVS service in Europe or
the Electronic HOLDDATA service in the U.S. is not compatible with z/OS
Enhanced HOLDDATA and does not take advantage of the enhanced REPORT
Coexistence considerations
SYSMODs that contain a ++HOLD MCS that specifies a SYSMOD ID that is
superseded on a preceding ++VER MCS cannot be processed by previous releases
of SMP/E during RECEIVE processing, unless the appropriate PTF is installed for
the prior release.
An example of when you might want to use the PATH subentry on the CHANGE
statement is to modify path names of DDDEFs during the z/OS OpenEdition service
process.
Coexistence considerations
Releases of SMP/E prior to OS/390 V1R3 SMP/E cannot:
v Correctly install products and service that were developed for installation using
the INCLUDE statements in JCLIN that identify UTILITY INPUT for a load
module, the SYSDEFSD DD statements in JCLIN that identify the definition side
deck library for a load module, and the FILL, HOBSET, RMODE=SPLIT, and
EXITS link edit attributes on the LEPARM operand on the ++MOD MCS and in
JCLIN.
v Use target and distribution zones containing LMOD or MOD entries updated by
OS/390 V1R3 (or later) with FILL, HOBSET, RMODE=SPLIT, EXITS, ALIASES,
or DYNAM link edit parameters in the MOD and LMOD entries, the UTILITY
INPUT subentry list, or the SIDE DECK LIBRARY subentry in the LMOD entries.
BUILDMCS Command
The BUILDMCS command provides a process for copying products from one pair of
target and distribution zones and libraries, to another pair of target and distribution
zones and libraries. This command generates the MCS and JCLIN required to
reinstall the specified FMIDs.
Coexistence considerations
SYSMOD input (modification control statements) created by the BUILDMCS
command cannot be processed by SMP/E releases prior to OS/390 V1R2 SMP/E,
unless the required PTF is installed.
FMIDSET Selection
SMP/E provides additional granularity of FMIDSET specification on the SELECT
operand of the APPLY, ACCEPT, RESTORE, and RECEIVE commands to allow you
to install sets of FMIDs.
Panels that allow the FIND command state that you can use the command. The
help panels for these dialog panels explain how to use the FIND command.
You may optionally provide an SMPPARM data set, which may contain your own
OPCODE member to override the defaults supplied with SMP/E. The user-provided
OPCODE member is a text member that you store in a user-allocated PDS named
SMPPARM. You are not required to allocate the SMPPARM data set, unless you
want to supply your own OPCODE member. If you provide an OPCODE member, it
is used instead of SMP/E’s default set.
SMP/E also provides a sample text member, named GIMOPCDE, that you can use
as a starting point for creating your own OPCODE member.
Commands
Table 18 lists the changes to the SMP/E commands for this release. See SMP/E
Commands, SA22-7771 for more detailed information about these commands.
Table 18. Summary of Changed Commands
Command Name Release Description Related Support
APPLY SMP/E V3R1 Changed: NUCID operand removed “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
RECEIVE SMP/E V3R1 Changed: New operands “Network Delivery of SMP/E
Input” on page 172
Exits
Although the methods by which SMP/E exits are invoked has changed (see the
entry on GIMEXITS in Table 22 on page 184), no changes have been made to the
SMP/E exits themselves. For more information on SMP/E exits, see SMP/E
Reference.
Macros
No changes were made to the SMP/E executable macros.
See SMP/E Messages, Codes, and Diagnosis, GA22-7770 for detailed information
about these SMP/E messages. For information about other z/OS message changes
that may affect your installation, refer to z/OS Summary of Message Changes.
Panels
Table 20 lists the new and changed SMP/E panels. Some panels may be updated
by more than one release enhancement.
Table 20. Summary of New and Changed Panels
Panel Name Release Description Related Support
GIMQIT28 SMP/E V3R1 Updated “Enhanced Link Name
Values” on page 171
GIMCGRDI SMP/E V3R1 Updated “Network Delivery of SMP/E
Input” on page 172
GIMCGRVE SMP/E V3R1 Updated “Network Delivery of SMP/E
Input” on page 172
GIMCGAPA SMP/E V3R1 Updated “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
GIMDFOH SMP/E V3R1 Updated “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
GIMHCAP SMP/E V3R1 Updated “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
GIMHCNU SMP/E V3R1 Updated “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
GIMHIPB0 SMP/E V3R1 Updated “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
GIMHIPD1 SMP/E V3R1 Updated “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
GIMHIPN SMP/E V3R1 Updated “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
GIMHIP0P SMP/E V3R1 Updated “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
GIMHOH0 SMP/E V3R1 Updated “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
GIMHOO0 SMP/E V3R1 Updated “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
Programming Interfaces
Table 21 identifies changes to the SMP/E programming interfaces.
Table 21. Summary of SMP/E Programming Interfaces
Interface Release Description Related Support
GIMAPI SMP/E V3R1 Changed: length of the LINK and LMODALIAS “Enhanced Link Name
subentries Values” on page 171
GIMAPI SMP/E V3R1 Changed: NUCID subentry deleted “Removal of Function to
Create Backup IEANUC01
Load Modules” on page 171
Library Change File SMP/E V3R1 Changed: length of alias and link values in A0 “Enhanced Link Name
Records record Values” on page 171
Link Edit Parameters SMP/E V3R1 Changed: additional values recognized for “AMODE=64 and
AMODE and COMPAT COMPAT=PM4 Link Edit
Parameters” on page 172
SYS1.SAMPLIB Members
Table 22 identifies changes to the SMP/E members of SYS1.SAMPLIB.
Table 22. Summary of SMP/E Changes to SYS1.SAMPLIB
Member Name Release Description Related Support
GIMDDALC SMP/E V3R1 New: Contains sample statements for data set “Dynamic Allocation using
allocation SMPPARM Member
GIMDDALC” on page 170
GIMEXITS SMP/E V3R1 New: Contains sample statements for defining “Defining Exit Routines
exit routines using SMPPARM Member
GIMEXITS” on page 170
GIMASAMP OS/390 V1R3 Contains sample GIMAPI assembler “API for User Access to the
application program CSI” on page 178
IBM recommends that customers APPLY all RSU PTFs as preventive maintenance
on their z/OS systems. However, customers must make the final decision as to
what maintenance they will install.
IBM may not offer the products, services, or features discussed in this document in
other countries. Consult your local IBM representative for information on the
products and services currently available in your area. Any reference to an IBM
product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product,
program, or service that does not infringe any IBM intellectual property right may be
used instead. However, it is the user’s responsibility to evaluate and verify the
operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not give you any
license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
USA
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
IBM World Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan
The following paragraph does not apply to the United Kingdom or any other
country where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE. Some states do not allow disclaimer of express or
implied warranties in certain transactions, therefore, this statement may not apply to
you.
Any references in this information to non-IBM Web sites are provided for
convenience only and do not in any manner serve as an endorsement of those
Web sites. The materials at those Web sites are not part of the materials for this
IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes
appropriate without incurring any obligation to you.
The licensed program described in this information and all licensed material
available for it are provided by IBM under terms of the IBM Customer Agreement,
IBM International Program License Agreement, or any equivalent agreement
between us.
If you are viewing this information softcopy, the photographs and color illustrations
may not appear.
Trademarks
The following terms are trademarks of the IBM Corporation in the United States,
other countries, or both:
BookManager
CICS
DATABASE 2
DB2
DFSMS
DFSMS/MVS
DFSMSdfp
DFSMSdss
IBM
IBMLink
IMS
OS/2
OS/390
RACF
RETAIN
SP
System/390
SystemPac
VTAM
z/OS
UNIX is a registered trademark of The Open Group in the United States and other
countries.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of
Microsoft Corporation in the United States, other countries, or both.
Other company, product, and service names may be trademarks or service marks
of others.
Glossary 195
ESO • GTF
SYSMOD processing failed. The ERROR indicator is set FMIDSET. A group of FMIDs to be used in processing
before SMP/E updates any libraries and is reset if an SMP/E command—for example, to indicate that
processing is successful. If processing fails, it remains SYSMODs applicable to certain functions should be
set to show that an error occurred. installed.
expanded service options (ESO). A tape that function modification identifier (FMID). The
includes preventive service PTFs. Where available, it SYSMOD ID of a function SYSMOD. It identifies the
replaces PUTs as the vehicle for delivering preventive function that currently owns a given element.
service. An ESO contains PTFs and ++ASSIGN
statements assigning source IDs for the PTFs. In the functionally higher SYSMOD. A SYSMOD that uses
United States, this tape is available from the IBM the function contained in an earlier SYSMOD (called the
Support Center and can be ordered either by functionally lower SYSMOD) and contains additional
subscription or as needed. functions as well.
explicitly deleted function. A function deleted functionally lower SYSMOD. A SYSMOD whose
because it was specified on the DELETE operand of a function is also contained in a later SYSMOD (called the
++VER statement in another SYSMOD. functionally higher SYSMOD).
FE. Field engineering. generate. In SMP/E, to create a job stream that builds
a set of target libraries from a set of distribution
feature. See dependent function. libraries. This is done with the GENERATE command.
file attribute file. A file attribute file (FAF) is a file GIMUNZIP. An SMP/E service routine used to extract
containing control statements that describe the files contained in network transportable packages that
attributes of the file contained in an SMP/E network were built using GIMZIP.
transportable archive. The FAF is contained within the
archive information about how the file was created. GIMZIP. An SMP/E service routine used to produce
network transportable packages.
File Transfer Protocol. File Transfer Protocol (FTP) is
a protocol that defines the interactions necessary global zone. A group of records in a CSI data set
between a client and server to facilitate the exchange of used to record information about SYSMODs received
binary and textual data files. for a particular system. The global zone also contains
information that (1) enables SMP/E to access target and
firewall. A firewall is an intermediate server that distribution zones in that system, and (2) enables you to
functions to isolate a secure network from an insecure tailor aspects of SMP/E processing.
network.
GLOBALZONE entry. An SMP/E entry containing
FTP. File Transfer Protocol. information that SMP/E uses to process the global zone,
the associated target and distribution zones, and
FMID. Function modification identifier.
SMPPTS.
Glossary 197
JCLIN input • MVS Custom-Built Product Delivery Offering (CBPDO)
JCLIN input. The JCL statements contained in master CSI. The CSI data set that contains the global
SMPJCLIN and used as input for the JCLIN command. zone.
Contrast with inline JCLIN.
MCS. Modification control statement.
job control language (JCL). A problem-oriented
language designed to express statements in a job that MCS entry. An SMP/E entry containing a copy of a
are used to identify the job or describe its requirements SYSMOD exactly as it was received from SMPPTFIN.
to an operating system. MCS entries are in SMPPTS, which is used to store
SYSMODs.
link library (LKLIB). A data set containing link-edited modification control statement (MCS). An SMP/E
object modules. control statement used to package a SYSMOD. MCSs
describe the elements of a program and the
LIST. The SMP/E command used to display entries in relationships that program has with other programs that
SMP/E data sets. may be installed on the same system.
list. In SMP/E, to display entries in SMP/E data sets. modification identifier (MODID). A list of SYSMOD
This is done with the LIST command. IDs, including the last SYSMOD that totally replaced the
element (RMID), any subsequent partial updates to the
LKLIB. Link library. element (UMIDs), and the function that owns the
element (FMID). MODIDs are contained in element
LMOD. In SMP/E, an abbreviation for load module. entries.
LMOD entry. An SMP/E entry containing all the modification level. A distribution of all temporary fixes
information needed to replace or update a given load that have been issued since the previous modification
module. level. A change in modification level does not add new
functions or change the programming support category
load module. A computer program in a form suitable
of the release to which it applies. Contrast with release
for loading into main storage for execution. It is usually
and version.
the output of a link-edit utility.
LOG. (1) The SMP/E command used to write Note: Whenever a new release of a program is
user-supplied information to the SMPLOG data set. (2) shipped, the modification level is set to 0. When
The SMPLOG data set. See SMPLOG. the release is reshipped with the accumulated
services changes incorporated, the modification
lower functional level. An element version that is level is incremented by 1.
contained in a later element version.
module. Synonym for object module or single-module
load module.
M
MTS. Macro temporary storage data set. See
MAC. The SMP/E entry or MCS that describes a SMPMTS.
macro.
MTSMAC entry. An SMP/E entry that is a copy of a
macro. An instruction in a source language that is to macro that resides only in a distribution library but is
be replaced by a defined sequence of instructions in the needed temporarily during APPLY processing. MTSMAC
same source language. entries are in the SMPMTS data set.
MACUPD. The SMP/E MCS used to update a macro. MVS. Multiple Virtual Storage.
mass-mode processing. In SMP/E, processing that MVS Custom-Built Product Delivery Offering
includes all eligible SYSMODs, regardless of whether (CBPDO). A software delivery offering used to add
they were individually selected. products or service to an existing MVS, NCP, CICS, or
IMS system.
N PRE. Prerequisite.
object deck. Object module input to the link-edit utility preventive service planning (PSP). Installation
that is placed in the input stream, in card format. recommendations and HOLDDATA for a product or a
service level. PSP information can be obtained through
object module. A module that is the output from a the IBM Support Center.
language translator (such as a compiler or an
assembler). An object module is in relocatable format product. Generally, a software package, such as a
with machine code that is not executable. Before an licensed program or a user application. A product can
object module can be executed, it must be processed contain one or more functions and can consist of one or
by the link-edit utility. more versions and releases.
When an object module is link-edited, a load module is product version. All the releases for a given version
created. Several modules can be link-edited together to of a product.
create one load module (for example, as part of SMP/E
APPLY processing), or an object module can be program error PTF (PE-PTF). A PTF that has been
link-edited by itself to create a single-module load found to contain an error. A PE-PTF is identified on a
module (for example, to prepare the module for ++HOLD ERROR statement, along with the APAR that
shipment in RELFILE format or in an LKLIB data set or first reported the error.
as part of SMP/E ACCEPT processing).
program object. An executable program stored in a
operating system. In SMP/E, the system updated by PDSE program library. It is similar to a load module, but
APPLY and RESTORE processing. It consists of the has fewer restrictions. For SMP/E purposes, program
target libraries. Also called the target system. objects are referred to as load modules.
OPTIONS entry. An SMP/E entry defining processing program packaging. See packaging.
options that are to be used by SMP/E.
program product. The former term for licensed
program.
P
program temporary fix (PTF). A temporary solution or
package attribute file. A package attribute file (PAF) bypass of a problem that may affect all users and that
is a file that contains control statements describing the was diagnosed as the result of a defect in a current
contents of a network transportable package. unaltered release of the program. In the absence of a
new release of a system or component that incorporates
packaging. Adding the appropriate MCS statements to the correction, the fix is not temporary but is the
elements to create a SYSMOD, then putting the permanent and official correction mechanism. New
SYSMOD in the proper format on the distribution elements can also be defined in a PTF. PTFs are
medium, such as a tape or direct access data sets. identified to SMP/E by the ++PTF statement.
PAF. package attribute file. program update tape (PUT). The former vehicle for
preventive service. See expanded service options.
partitioned data set extended (PDSE). A
system-managed data set containing an indexed PSP. Preventive service planning.
directory and members that are similar to the directory
and members of partitioned data sets. A PDSE can be PSW. Program status word.
used instead of a partitioned data set.
PTF. Program temporary fix.
PE. See program error PTF.
PTS. PTF temporary store data set. See SMPPTS.
PE-PTF. See program error PTF.
PTFIN. PTF input. See SMPPTFIN.
PID. The former name for ISD.
Glossary 199
PUT • RESTORE
PUT. See expanded service options. relative files (RELFILEs). Unloaded files containing
modification text and JCL input data associated with a
SYSMOD. These files are used to package a SYSMOD
R in relative file format.
RACF. Resource Access Control Facility. release. A distribution of a new product or new
function and APAR fixes for an existing product.
RECEIVE. The SMP/E command used to read in
Contrast with modification level and version.
SYSMODs and other data from SMPPTFIN and
SMPHOLD. replacement modification identifier (RMID). The
SYSMOD ID of the last SYSMOD that completely
receive. In SMP/E, to read SYSMODs and other data
replaced a given element.
from SMPPTFIN and SMPHOLD and store them on the
global zone for subsequent SMP/E processing. This is REPORT. The SMP/E command used to obtain
done with the RECEIVE command. information about SYSMODs that have been installed.
These are the types of REPORT commands:
regressed SYSMOD. A SYSMOD one or more of
whose elements are modified by subsequent SYSMODs v REPORT CALLLIBS: Identifies load modules that
that are not related to it. need to be relinked because implicitly-included
modules in a particular library have been updated.
regressing SYSMOD. A SYSMOD that causes v REPORT CROSSZONE: Lists conditional requisites
regression of previous modifications when it is installed. that must be installed in certain zones because of
SYSMODs installed in other zones.
regression. In SMP/E, the condition that occurs when
an element is changed by a SYSMOD that is not related v REPORT ERRSYSMODS: Determines whether any
to SYSMODs that previously modified the element. SYSMODs already installed are now exception
SYSMODs.
REJECT. The SMP/E command used to remove v REPORT SOURCEID: Lists the source IDs
SYSMODs from the global zone and SMPPTS. associated with SYSMODs in the specified zones.
v REPORT SYSMODS: Compares the SYSMODs
reject. In SMP/E, to remove SYSMODs from the
installed in two target or distribution zones.
global zone and SMPPTS and delete any related
SMPTLIB data sets. This is done with the REJECT requisite. A SYSMOD that must be installed before or
command. at the same time as the SYSMOD being processed.
There are several types of requisites:
related installation materials (RIMs). In IBM
custom-built offerings, task-oriented documentation, v Prerequisites, which are specified by the PRE
jobs, sample exit routines, procedures, parameters, and operand on the SYSMOD’s ++VER statement
examples developed by IBM. v Corequisites, which are specified by the REQ
operand on the SYSMOD’s ++VER statement
related SYSMOD. A SYSMOD associated with other
v Conditional requisites, which are specified by the
SYSMODs by the FMID, PRE, REQ, or SUP operands.
REQ operand on the SYSMOD’s associated ++IF
related zone. The zone named in the RELATED statement
subentry of a TARGETZONE or DLIBZONE entry. For a
target zone, the related zone is generally the distribution
| requisite chain. A sequence of SYSMODs that are
zone for the libraries used to create the target libraries.
| directly or indirectly identified as requisites for a given
For a distribution zone, the related zone is generally the
| SYSMOD, (A SYSMOD may identify other SYSMODs
target zone for the libraries built from the distribution
| as requisites, which in turn may have requisites of their
libraries.
| own. The requisite chain extends from the initial
| SYSMOD, through the hierarchy of requisites, until no
relative file (RELFILE) format. A SYSMOD packaging | more SYSMODs are found that have requisites.) See
method where elements and JCLIN data are in separate | requisite.
relative files from the MCSs. When SYSMODs are
packaged in relative file format there is a file of MCSs
| requisite set. The set of all SYSMODs on the
for one or more SYSMODs, and one or more relative
| requisite chain for a particular SYS
files containing unloaded source-code data sets and RESETRC. The SMP/E command used to set the
unloaded link-edited data sets containing executable return codes for the previous commands to zero, so that
modules. The relative files can be either unloaded files SMP/E can process the current command.
in IEBCOPY format, or they can be partitioned data
sets. Relative file format is the typical method used for RESTORE. The SMP/E command used to remove
packaging function SYSMODs. applied SYSMODs from the target libraries.
restore group. All the SYSMODs that have a direct or set. In SMP/E, to indicate which zone should be
indirect relationship with a SYSMOD being restored by processed by the subsequent commands. This is done
use of the GROUP operand. with the SET command.
RIM. Related installation material. set-to zone. The zone that was specified on the
previous SET command and that is currently being
RMID. Replacement modification identifier. processed. Contrast with cross-zone.
root cause analysis. Processing done by SMP/E for side deck. See definition side deck.
the ACCEPT, APPLY, and RESTORE commands to
identify causer SYSMODs (SYSMODs whose failure single-module load module. A load module created
has led to the failure of other SYSMODs). The types of by link-editing a single object module by itself—for
errors SMP/E analyzes to determine causer SYSMODs example, to prepare the module for shipment in
include the following: RELFILE format or in an LKLIB data set or as part of
v Held SYSMODs SMP/E ACCEPT processing.
v Missing requisite SYSMODs SMPCNTL. The SMP/E data set or file in the
v Utility program failures: copy, update, assembler, link, hierarchical file system that contains the SMP/E
zap commands to be processed.
v Out-of-space conditions: x37 abends
SMPCSI. The SMP/E data set that contains
v Missing DD statements and other allocation errors information about the structure of a user’s system as
v ID errors (a SYSMOD does not supersede or specify well as information needed to install the operating
as a prerequisite an RMID or a UMID) system on a user’s system. The SMPCSI DD statement
v JCLIN failures (syntax errors) refers specifically to the CSI that contains the global
zone. This is also called the master CSI.
RPL. Request parameter list.
SMPDEBUG. The SMP/E data set or file in the
RTM2WA. Recovery termination manager 2 work area. hierarchical file system that contains a dump requested
by the DEBUG command. Depending on the operands
specified, it may contain (1) a dump of SMP/E control
S blocks and storage areas associated with the specified
dump points or (2) a dump of the VSAM RPL control
SCDS. Save control data set. See SMPSCDS. block for the specified SMP/E function.
SCP. System control program. SMP/E. A program product, or an element of OS/390
or z/OS, used to install software and software changes
select-mode processing. In SMP/E, processing that
on z/OS systems. SMP/E consolidates installation data,
includes individually selected SYSMODs.
allows more flexibility in selecting changes to be
service. PTFs and APAR fixes. installed, provides a dialog interface, and supports
dynamic allocation of data sets.
service level. The FMID, RMID, and UMID values for
an element. The service level identifies the owner of the SMP/E commands. Commands defining the
element, the last SYSMOD to replace the element, and processing to be done by SMP/E, such as RECEIVE.
all the SYSMODs that have updated the element since
SMP/E entry. An entry in an SMP/E data set—for
it was last replaced.
example, a MOD entry in a CSI data set.
service order relationship. A relationship among
SMPHOLD. SMPHOLD is the source for HOLDDATA
service SYSMODs that is determined by the PRE and
(++HOLD and ++RELEASE statements) to be
SUP operands, and the type of SYSMOD.
processed by the RECEIVE command. SMPHOLD may
service SYSMOD. Any SYSMOD identified by an be a tape file, a data set, or one or more files in the
++APAR or ++PTF statement. hierarchical file system.
service update. The integration of available service SMPJCLIN. The SMP/E data set or file in the
into the current release of a function. Since this is not a hierarchical file system that contains a job stream of
new release of the function, it does not change the assembly, link-edit, and copy job steps. This data is
function’s FMID. typically the stage 1 output from the most recent full or
Glossary 201
SMPLIST • SMPWRK2
partial system generation. However, it may also be other SMPPTS. The SMP/E data set that contains
data in a similar format, such as the output of the SYSMODs received from SMPPTFIN. SMPPTS is the
GENERATE command. This job stream is used as input source of SYSMODs that are installed in the target and
to the JCLIN command to update or create entries in a distribution libraries.
target zone.
SMPPTS spill data sets. Optional SMP/E data sets
SMPLIST. The SMP/E data set or file in the that can be used to store SYSMODs when the SMPPTS
hierarchical file system that contains the output of all data set becomes full.
LIST commands.
SMPPUNCH. The SMP/E data set or file in the
SMPLOG. The SMP/E data set that contains hierarchical file system that contains output from various
time-stamped records of SMP/E processing. The SMP/E commands. This output generally consists of
records in this data set can be written automatically by commands or control statements.
SMP/E or added by the user through the LOG v GENERATE: A job stream for building target libraries
command.
v REPORT: Commands for installing or listing
SMPLOGA. A secondary log data set for SMP/E SYSMODs
processing. If SMPLOGA is defined, it is automatically v UNLOAD: UCLIN statements for recreating the
used when the SMPLOG data set is full. entries that were unloaded
SMPLTS. The SMP/E data set used as a target load SMPRPT. The SMP/E data set or file in the
module library to maintain the base version of a load hierarchical file system that contains the reports
module that specifies a SYSLIB allocation in order to produced during SMP/E processing.
implicitly include modules.
SMPSCDS. The SMP/E data set that contains backup
SMPMTS. The SMP/E data set used as a target library copies of target zone entries that are created during
for macros that exist only in a distribution library, such APPLY processing. These backup copies are made
as macros in SYS1.AMODGEN. The SMPMTS enables before the entries are (1) changed by inline JCLIN, a
the current version of these macros to be used for ++MOVE MCS, or a ++RENAME MCS, or (2) deleted
assemblies during APPLY processing. by an element MCS with the DELETE operand. The
backup copies are used during RESTORE processing to
SMPNTS. The SMPNTS is a directory structure and return the entries to the way they were before APPLY
associated files contained in the hierarchical file system processing.
used for temporary storage of network transported
packages that were received during SMP/E RECEIVE SMPSNAP. The SMP/E data set that is used for snap
processing. dump output. When a severe error such as an abend or
severe VSAM return code occurs, SMP/E requests a
SMPOBJ. The SMP/E data set used for snap dump of its storage before doing any error
source-maintained products. SMPOBJ contains recovery. In addition, the DEBUG command can request
preassembled modules that can be used to avoid a snap dump of SMP/E storage when specified
reassembling those modules. These modules must be messages are issued, or can request a snap dump of
in load module format—that is, in the same format as control blocks and storage areas associated with a
modules residing in the distribution library. specified dump point.
SMPOUT. The SMP/E data set or file in the SMPSTS. The SMP/E data set used as a target library
hierarchical file system that contains messages issued for source that exists only in a distribution library. The
during SMP/E processing. It may also contain a dump SMPSTS enables the current version of this source to
of the VSAM RPL, if a dump was taken. In addition, it be used for assemblies during APPLY processing.
may contain LIST output and reports if SMPLIST and
SMPRPT are not defined. SMPTLIB. The SMP/E data sets used as temporary
storage for relative files loaded from SMPPTFIN during
SMPPARM. The data set that contains members to RECEIVE processing. The SMPTLIB data sets are
define parameters, such as macros, assembler deleted when the associated SYSMOD is deleted by
operation codes, GIMDDALC control statements, and REJECT, RESTORE, or ACCEPT processing.
exit routines.
SMPWRK1. The SMP/E data set used as temporary
SMPPTFIN. SMPPTFIN is the source of SYSMODs storage for macro updates and replacements that will be
and ++ASSIGN statements to be processed by the processed by an update or copy utility program. SMP/E
RECEIVE command. SMPPTFIN may be a tape file, a places the input in SMPWRK1 during APPLY and
data set, or one or more files in the hierarchical file ACCEPT processing before calling the utility.
system.
SMPWRK2. The SMP/E data set used as temporary
storage for source updates and source replacements
SMPWRK3. The SMP/E data set used as temporary subentry. A field in an SMP/E entry. Each subentry
storage for object modules supplied by a SYSMOD, has associated with it a type and a value. The same
object modules created by assemblies, and zap utility subentry type may occur several times in a single entry,
input following ++ZAP statements. each time with a different value. For example, the
modules supplied by a PTF are saved as MOD
SMPWRK4. The SMP/E data set used as temporary subentries in the PTF’s SYSMOD entry. Some
storage for zap utility or link-edit utility input that subentries occur only once within an entry, such as the
contains EXPAND control statements. FMID subentry in a target zone MOD entry.
SMPWRK6. The SMP/E data set used during ACCEPT subentry indicator. A subentry that does not have a
and APPLY processing as temporary storage for inline data value associated with it. An example of an indicator
replacements for data elements. SMP/E places the input is the ERROR indicator in the SYSMOD entry. An
in this data set so that it can be directly accessed and indicator is either on or off.
installed by the copy utility or SMP/E.
subentry list. Multiple occurrences of the same
source. The source statements that constitute the subentry type in an entry, each with a different value.
input to a language translator for a particular translation. For example, the modules supplied by a PTF are saved
as names in the MOD subentry list within the SYSMOD
source ID. A 1- to 8-character identifier that indicates entry for that PTF.
how a SYSMOD was obtained—for example, from a
particular service level in an ESO. A source ID is SUP. Supersede.
associated with a specific SYSMOD by the RECEIVE
command or the ++ASSIGN statement. superseded-only SYSMOD. A SYSMOD that has not
been installed, but that has been superseded by
SOURCEID. The operand used to refer to a source ID. another SYSMOD that has been installed.
source module. The source statements that constitute superseded SYSMOD. In SMP/E, a SYSMOD that is
the input to a language translator, such as a compiler or contained in or replaced by the SYSMOD or requisite
an assembler, for a particular translation. set of SYSMODs currently being processed. This is
indicated by the SUPBY subentry in the SYSMOD entry
SRC. The SMP/E entry or MCS statement that for the superseded SYSMOD. A superseded SYSMOD
describes a source. is functionally lower than the SYSMOD that superseded
it.
SRCUPD. The MCS used to update a source.
superseding SYSMOD. In SMP/E, a SYSMOD that
SREL. System release identifier.
contains all the functions in another SYSMOD and is
Storage Management Subsystem (SMS). A recognized as the equivalent of that other SYSMOD.
DFSMS/MVS facility used to automate and centralize The superseding SYSMOD uses SUP operand on its
the management of storage. Using SMS, a storage ++VER statement to specify the superseded SYSMOD.
administrator describes data allocation characteristics,
superzap. A generic term for the process performed
performance and availability goals, backup and
by IMASPZAP. It can also refer to the module updates
retention requirements, and storage requirements to the
processed by IMASPZAP.
system through data class, storage class, management
class, storage group, and ACS routine definitions. SVC. Supervised call.
STS. Source temporary store data set. See SMPSTS. SVRB. Supervisor request block.
STSSRC entry. An SMP/E entry that is a copy of SYSGEN. System generation.
source that resides only in a distribution library but is
needed temporarily during APPLY processing. STSSRC SYSLIB. (1) A subentry used to identify the target
entries are in the SMPSTS data set. library in which an element is installed. (2) A
concatenation of macro libraries to be used by the
stub entry. An element entry or LMOD entry that does assembler. (3) A set of routines used by the link-edit
not contain the basic information SMP/E requires in utility to resolve unresolved external references.
order to process the element or load module (such as
FMID, RMID, or library names), but does contain other SYSMOD. System modification.
information, such as subentries describing cross-zone
relationships.
Glossary 203
SYSMOD entry • UCLIN
SYSMOD entry. An SMP/E entry containing target zone. In SMP/E, a group of records in a CSI
information about a SYSMOD that has been received data set that describes the SYSMODs, elements, and
into SMPPTS, accepted into the distribution libraries, or load modules in a target library.
applied to the target libraries.
TARGETZONE entry. An SMP/E entry containing
SYSMOD ID. System modification identifier. information used by SMP/E to process a specific target
zone and the associated target libraries.
SYSMOD packaging. See packaging.
TCP/IP. Transmission Control Protocol/Internet
SYSMOD selection. The process of determining which Protocol (TCP/IP) is a hardware independent
SYSMODs are eligible to be processed. communication protocol used between physically
separated computers. It was designed to facilitate
SYSPRINT. The data set that contains output from the communication between computers located on different
utilities called by SMP/E. physical networks.
SYSPUNCH. The temporary data set containing object temporary data set. A work data set
modules assembled by running the job stream produced (SMPWRK1–SMPWRK6) or utility data set
by system generation or the GENERATE command. (SYSUT1–SYSUT4). Temporary data sets are allocated
These modules are not installed in the distribution when processing for an SMP/E command begins, and
libraries at ACCEPT time. deleted when processing is finished.
system control program (SCP). IBM-supplied text library (TXLIB). A data set containing JCLIN input
programming that is fundamental to the operation and or replacements for macros, source, or object modules
maintenance of the system. It serves as an interface that have not been link-edited. It is used when the
with licensed programs and user programs and is JCLIN or elements are provided in partitioned data sets
available without additional charge. rather than inline or in relative files.
system generation (SYSGEN). The process of TGTLIB. Target library.
selecting optional parts of an operating system and of
creating a particular operating system tailored to the TIEDTO relationship. A cross-zone relationship
requirements of a data processing installation. between two target zones created when the LINK
command updates a load module in one of the zones to
system modification (SYSMOD). The input data to include modules from the other zone. This relationship
SMP/E that defines the introduction, replacement, or is established through the TIEDTO subentry in the zone
update of elements in the operating system and definition entries for each of the zones.
associated distribution libraries to be installed under the
control of SMP/E. A system modification is defined by a TIEDTO zone. See cross-zone.
set of MCS.
TLIB. Temporary library. See SMPTLIB.
system modification identifier (SYSMOD ID). The
name that SMP/E associates with a system transformed data. Data processed by the GIMDTS
modification. It is specified on the ++APAR, service routine so that it can be packaged inline in
++FUNCTION, ++PTF, or ++USERMOD statement. fixed-block 80 records.
unconditionally coexisting functions. Functions that ZONECOPY. The SMP/E command used to copy a
coexist and must be in the same zone. zone from one CSI data set to another.
UNLOAD. The SMP/E command used to copy data ZONEDELETE. The SMP/E command used to delete
out of SMP/E data set entries in the form of UCL a zone from a CSI data set.
statements.
ZONEEDIT. The SMP/E command used to change the
unload. In SMP/E, to copy data out of SMP/E data set values for a subentry in all the DDDEF or UTILITY
entries in the form of UCL statements, by use of the entries in a given zone.
UNLOAD command.
ZONEEXPORT. The SMP/E command used to copy a
update. In SMP/E, to change an existing element zone into a sequential data set.
without replacing it.
ZONEIMPORT. The SMP/E command used to load an
update modification identifier (UMID). The SYSMOD exported zone from a sequential data set into another
ID of a SYSMOD that updated the last replacement of a zone.
given element.
ZONEMERGE. The SMP/E command used to copy
user modification (USERMOD). A change one zone into another, or to merge two zones into one.
constructed by a user to modify an existing function,
add to an existing function, or add a user-defined ZONERENAME. The SMP/E command used to
function. USERMODs are identified to SMP/E by the change the name of a zone.
++USERMOD statement.
ZONESET. A group of zones to be used when
USERMOD. User modification. processing an SMP/E command. For example, it may
define the zones that the REPORT command is to
UTILITY entry. An SMP/E entry containing information check for cross-zone requisites. A ZONESET may also
used by SMP/E to invoke a particular system utility define a group of zones to be checked or ignored by the
program. REJECT command.
VERSION. An operand on the ++VER or element z/OS UNIX System Services (z/OS UNIX). The set of
statement. VERSION specifies one or more SYSMODs functions provided by the Shell and Utilities, kernel,
containing elements that are functionally lower than debugger, file system, C/C++ Run-Time Library,
elements in the SYSMOD that specifies the operand. Language Environment, and other elements of the z/OS
The VERSION operand is also used to change operating system that allow users to write and run
ownership of elements. application programs that conform to UNIX standards.
Z
ZAP. (1) The SMP/E MCS used to package an update
for an object module. (2) The superzap control
statement used to update an object module. (3) A
shortened name for the superzap utility, which is used
to install these updates. See IMASPZAP.
Glossary 205
206 SMP/E V3R1.0 User’s Guide
Index
Special Characters allocating data sets (continued)
PTS 58
++element MCS
SCDS 58
USERMODs 153
SMPCSI 52
++HOLD MCS
ALLZONES 128
coexistence considerations 179
AMODE=64 link edit parameter 172
operands 113
AMS utility
++IF MCS
allocating the CSI 52
cross-zone requisite checking 139
default values 61
++JCLIN MCS
initializing the SMPCSI 54
USERMODs 151
reorganizing a CSI 57
++MAC MCS
APAR fixes
USERMODs 152
defining 36
++MACUPD MCS
APAR SYSMODs 5
USERMODs 152
APPLY CHECK command
++MOD MCS
See also APPLY command
USERMODs 152
corrective service 106
++PROGRAM MCS
functions 86
USERMODs 153
preventive service 96
++RELEASE MCS
USERMODs 110
operands 113
APPLY command
++SRC MCS
corrective service 107
USERMODs 153
description 13
++SRCUPD MCS
examples 19
USERMODs 153
exception SYSMOD processing 115
++USERMOD MCS
functions 88
building USERMODs 150
preventive service 99
examples 154
processing 18
++VER MCS
reports produced 21
coexistence considerations 179
summary 40
USERMODs 150
USERMODs 111
++ZAP MCS
ASMA90 utility
USERMODs 152
See assembler utility
assembler utility
default values 61
A automatic call libraries 125
ACCEPT CHECK command automatic cross-zone requisite checking
See also ACCEPT command specifying 73
corrective service 107
functions 89
preventive service 101
ACCEPT command
B
BACKUP entry 19
corrective service 108
base functions 36
description 13
binder
examples 27
See link-edit utility
exception SYSMOD processing 116
BPX.SUPERUSER security class
functions 90
coexistence considerations 174
preventive service 102
processing 25
reports produced 28
summary 40
C
Access Method Services (AMS) CALL
See AMS utility effect of CALLLIBS subentry on 62
accessibility 189 calling SMP/E 76
alias defined for user catalog 52, 54 cataloged procedure for SMP/E 77
allocating data sets catalogs
DDDEF entry 59 alias defined for user catalog 52, 54
dynamic allocation 59 for CSI 52
Index 209
F HOLDDATA (continued)
checking effect on installed SYSMODs (REPORT
FILL
ERRSYSMODS) 143
coexistence considerations 180
ESO
fixing an element 5
processing 94, 106, 120
function SYSMODs 3
source of 117
installation
from IBMLINK 118
ACCEPT CHECK processing 89
from the IBM Support Center 106
ACCEPT processing 90
provided for SYSMODs 12
APPLY CHECK processing 86
PSP files
APPLY processing 88
processing 121
choosing the update mode 86
source of 118
get additional SYSMODs 88
HOLDDATA entries
preparation 84
created during RECEIVE 115
RECEIVE function 85
in the global zone 15
RECEIVE processing 85
research the ACCEPT CHECK reports 90
research the APPLY CHECK reports 87
summary 83
I
test the new function 88 IBMLINK, source of HOLDDATA 118
summary 35 IDCAMS utility
functions in a system 2 See AMS utility
IEANUC01 load module 171
IEBCOPY utility
G See copy utility
IEBUPDTE utility
GENERATE command
See update utility
summary 40
IEWBLINK utility
generated JCL, saving for SMP/E dialogs 68
See link-edit utility
GIM@UPRM (nondisplay panel) 70
IEWL utility
GIMMPDFT
See link-edit utility
migration considerations 171
IMASPZAP utility
GIMMPUXD
See superzap utility
migration considerations 170
implicitly including modules from another product 125
GIMSAMPU 55
installation methods
GIMSMP 76, 77
RECEIVE-APPLY-ACCEPT 83
GIMZPOOL, initializing a CSI data set 54
installation procedures
global zone
corrective service 103
defining 54
functions 83
description of 11, 38
preventive service 91
HOLDDATA entries 15
USERMODs 109
SYSMOD entries 15, 19, 23, 26
installing SMP/E
GLOBALZONE entry 54
connecting the dialogs 66
installing SYSMODs
distribution libraries (ACCEPT command) 13, 25
H target libraries (APPLY command) 13, 18
HEWLH096 utility introducing an element 3
See link-edit utility invoking SMP/E 76
HFSINST job ISPCTL1 68
coexistence considerations 174 ISPCTL2 68
hierarchical file system ISPF (Interactive System Productivity Facility)
copy utility concatenating libraries 67
default values 61 connecting dialogs 66, 69
hierarchical file system element MCS ISPF/PDF (Interactive System Productivity
coexistence considerations 175 Facility/Program Development Facility) 67
USERMODs 154
HOBSET
coexistence considerations 180
HOLDDATA 117
J
JCL generated by SMP/E dialogs, saving 68
See also exception SYSMOD management
JCLIN command
CBPDO tape
summary 42
processing 119
Index 211
Query dialog (continued) reports (continued)
example 30 APPLY CHECK reports
corrective service 106
functions 87
R preventive service 97
RC USERMODs 110
coexistence considerations 176 Causer SYSMOD Summary report 163
reason IDs 113 SYSMOD Status report 163, 164
RECEIVE command RESETRC command 44
corrective service 105 RESTORE command
description 13 description 13
entries created examples 23
HOLDDATA entry 115 exception SYSMOD processing 116
MCS entry 114 processing 22
SYSMOD entry 114, 115 reports produced 24
examples 16 summary 41
functions 85 restrictions
preventive service 94 CLIST data set for SMP/E dialogs 67
processing 15 dialogs 67
reports produced 17 LIBDEF 67
summary 40 load module data set for SMP/E dialogs 67
USERMODs 109 retry processing 64
RECEXZGRP retry utility
coexistence considerations 177 default values 61
Recommended Service Upgrade 187 RMODE=ALIASES
recovering from utility errors 64 coexistence considerations 180
RECZGRP RMODE=SPLIT
coexistence considerations 177 coexistence considerations 180
REJECT command root cause analysis 163
exception SYSMOD processing 117 RSU 187
summary 41
removing SYSMODs from your system (RESTORE
command) 13, 22 S
reorganizing a CSI 57 sample logon procedure 68
REPORT saving JCL generated by SMP/E dialogs 68
HOLDDATA for installed SYSMODs 143 SCDS, summary 58
REPORT CALLLIBS command separate CSI for each SREL, combining target and
introduction 137 DLIB zones 51
relinking load modules 138 separate CSI for each zone 50
summary 41 ServerPac
REPORT command Recommended Service Upgrade 187
description 14 servicing a product
example 33 corrective service (APAR SYSMODs) 5
reports produced 34 preventive service (PTF SYSMODs) 4
REPORT CROSSZONE command 76 SET command 13, 40
introduction 139 shortcut keys 189
summary 41 SIDEDECKLIB
REPORT ERRSYSMODS command coexistence considerations 180
introduction 143 single-CSI structure 46, 48
summary 41 SMP/E cataloged procedure 77
REPORT SOURCEID command SMP/E commands 12, 39
introduction 145 SMP/E data
summary 41 changing 133
REPORT SYSMODS command listing 127
introduction 147 SMP/E data sets
summary 41 SMPCSI 11
reports SMPPTS 15
ACCEPT CHECK reports SMPSCDS 19
corrective service 108 SMPTLIB 15
functions 90 SMP/E dialog libraries, concatenating 67
preventive service 102
Index 213
utility programs (continued) zones
default values (continued) comparing
copy 61 LIST command 131
hierarchical file system copy 61 REPORT CROSSZONE command 139
link-edit utility 61 REPORT SYSMODS command 147
retry 61 description of 38
superzap 61 zones in the SMPCSI data set
update 61 See also distribution zone
UTIN See also global zone
coexistence considerations 180 See target zone
ZONESET entry
cross-zone processing 139
V defining 73
VERSION command
coexistence considerations 177
W
WAIT
EXEC statement parameter for GIMSMP 77
X
XZREQCHK subentry
coexistence considerations 178
use of 73
Z
zone group
default 73
defining 73
specifying on command 74
ZONEINDEX for 74
zone structures
examples 47
multiple CSIs 46
single CSI 46
ZONECOPY command
alternative to UCLIN 134
summary 43
ZONEDELETE command
alternative to UCLIN 134
summary 43
ZONEEDIT command
alternative to UCLIN 134
summary 42
ZONEEXPORT command
alternative to UCLIN 134
summary 43
ZONEIMPORT command
alternative to UCLIN 134
summary 43
ZONEINDEX
for zone group 74
ZONEMERGE command
summary 43
ZONERENAME command
alternative to UCLIN 134
summary 43
Overall, how satisfied are you with the information in this book?
How satisfied are you that the information in this book is:
When you send comments to IBM, you grant IBM a nonexclusive right to use or distribute your comments in any
way it believes appropriate without incurring any obligation to you.
Name Address
Company or Organization
Phone No.
___________________________________________________________________________________________________
Readers’ Comments — We’d Like to Hear from You Cut or Fold
SA22-7773-02 Along Line
_ _ _ _ _ _ _Fold
_ _ _and
_ _ _Tape
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Please
_ _ _ _ _do
_ _not
_ _ staple
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Fold
_ _ _and
_ _ Tape
______
NO POSTAGE
NECESSARY
IF MAILED IN THE
UNITED STATES
IBM Corporation
Department 55JA, Mail Station P384
2455 South Road
Poughkeepsie, NY
12601-5400
_________________________________________________________________________________________
Fold and Tape Please do not staple Fold and Tape
Cut or Fold
SA22-7773-02 Along Line
SA22-7773-02