Professional Documents
Culture Documents
Commands
Commands
Commands
2.5
IBM
SA23-2275-50
Note
Before using this information and the product it supports, read the information in “Notices” on page
557.
This edition applies to Version 2 Release 5 of z/OS® (5650-ZOS) and to all subsequent releases and modifications until
otherwise indicated in new editions.
Last updated: 2021-09-30
© Copyright International Business Machines Corporation 1986, 2021.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
IBM Corp.
Contents
Figures.............................................................................................................. xvii
Tables...............................................................................................................xxiii
iii
Example 10: Bypassing system reason IDs.........................................................................................27
Example 11: Excluding SYSMODs selected with an FMIDSET............................................................28
Processing.................................................................................................................................................. 28
SYSMOD selection................................................................................................................................ 28
SYSMOD installation.............................................................................................................................34
Element selection.................................................................................................................................37
Element installation............................................................................................................................. 39
Recording after completion..................................................................................................................46
Zone and data set sharing considerations................................................................................................ 48
iv
Data sets used......................................................................................................................................... 108
Usage notes............................................................................................................................................. 108
Product intersections.........................................................................................................................108
Other considerations..........................................................................................................................108
Output...................................................................................................................................................... 109
Reports............................................................................................................................................... 109
SMPPUNCH output.............................................................................................................................109
Example................................................................................................................................................... 109
Processing................................................................................................................................................110
FMID applicability.............................................................................................................................. 110
Determine SYSMODs associated with FMIDs................................................................................... 110
Determine elements for all associated SYSMODs.............................................................................111
Determine LMODs for module elements........................................................................................... 111
Create JCLIN...................................................................................................................................... 112
Zone and data set sharing considerations.............................................................................................. 113
v
Chapter 8. The GZONEMERGE command.............................................................141
Zones for SET BOUNDARY.......................................................................................................................141
Syntax...................................................................................................................................................... 141
Operands............................................................................................................................................ 141
Data sets used......................................................................................................................................... 142
Usage notes............................................................................................................................................. 142
Output...................................................................................................................................................... 143
Examples..................................................................................................................................................143
Example 1: Merge definition entries..................................................................................................143
Example 2: Merge content entries.....................................................................................................143
Processing................................................................................................................................................144
FMID applicability.............................................................................................................................. 144
Determine SYSMODs associated with FMIDs................................................................................... 145
Determine HOLDDATA entries associated with FMIDs..................................................................... 145
Determine FEATURE entries associated with FMIDs........................................................................ 145
Determine PRODUCT entries associated with FMIDs.......................................................................145
GLOBALZONE entry updates for content entries.............................................................................. 145
Merging SYSMOD entries................................................................................................................... 146
Merging HOLDDATA entries............................................................................................................... 147
Merging FEATURE entries.................................................................................................................. 147
Merging PRODUCT entries................................................................................................................. 148
Merging DEFINITION entries.............................................................................................................148
Compaction of inline data.................................................................................................................. 150
Zone and data set sharing considerations.............................................................................................. 150
vi
Chapter 10. The LINK LMODS command............................................................. 191
Zones for SET BOUNDARY.......................................................................................................................191
Syntax...................................................................................................................................................... 191
Operands............................................................................................................................................ 191
Data sets used......................................................................................................................................... 192
Output...................................................................................................................................................... 193
Processing................................................................................................................................................193
LMOD applicability............................................................................................................................. 193
Processing LMODs with CALLLIBS and XZMOD subentries.............................................................. 194
Processing LMODs with CALLLIBS but no XZMOD subentries..........................................................194
Processing LMODs without CALLLIBS subentries.............................................................................194
Scheduling and batching link-edits................................................................................................... 194
Zone and data set sharing considerations.............................................................................................. 195
vii
Syntax...................................................................................................................................................... 229
Operands............................................................................................................................................ 229
Data sets used......................................................................................................................................... 229
Output...................................................................................................................................................... 230
Examples..................................................................................................................................................230
Example 1: Writing a message...........................................................................................................230
Example 2: Coding parentheses correctly.........................................................................................230
Example 3: Listing an SMPLOG data set............................................................................................230
Processing................................................................................................................................................231
viii
Mass mode syntax..............................................................................................................................278
Select mode syntax............................................................................................................................ 279
PURGE mode syntax.......................................................................................................................... 279
NOFMID mode syntax........................................................................................................................ 280
Operands............................................................................................................................................ 280
Data sets used......................................................................................................................................... 285
Output...................................................................................................................................................... 285
Reports............................................................................................................................................... 285
Statistics............................................................................................................................................. 285
Examples..................................................................................................................................................286
Example 1: Rejecting all SYSMODs that have not been installed (mass mode)...............................286
Example 2: Rejecting all SYSMODs for a specific function (mass mode)......................................... 286
Example 3: Rejecting selected SYSMODs that have been applied (select mode)........................... 286
Example 4: Rejecting selected SYSMODs that have been accepted and applied (select mode).... 287
Example 5: Rejecting HOLDDATA that has no SYSMOD entry (select mode)...................................287
Example 6: Rejecting SYSMODs that have been accepted (PURGE mode)......................................287
Example 7: Rejecting SYSMODs that have been accepted and applied (PURGE mode)................. 287
Example 8: Rejecting SYSMODs for undefined functions (NOFMID mode)..................................... 288
Example 9: Deleting service for a group of source IDs..................................................................... 288
Example 10: Rejecting selected SYSMODs that have been superseded (select mode).................. 288
Processing................................................................................................................................................288
Selecting the eligible SYSMODs, FEATUREs, PRODUCTs, and HOLDDATA.......................................289
Processing the SYSMODs, FEATUREs, PRODUCTs, and HOLDDATA.................................................292
Zone and data set sharing considerations.............................................................................................. 292
ix
Data sets used......................................................................................................................................... 316
Usage notes............................................................................................................................................. 316
Output...................................................................................................................................................... 317
Reports............................................................................................................................................... 317
SMPPUNCH output.............................................................................................................................317
Example: Using REPORT MISSINGFIX....................................................................................................318
Processing................................................................................................................................................319
Zone and data set sharing considerations.............................................................................................. 320
x
Example 3: Restoring PTFs using the GROUP operand.................................................................... 350
Processing................................................................................................................................................350
SYSMOD selection..............................................................................................................................351
Element installation........................................................................................................................... 352
Recording after completion............................................................................................................... 355
Cross-zone processing....................................................................................................................... 355
Global zone SYSMOD entries............................................................................................................. 356
Zone and data set sharing considerations.............................................................................................. 356
xi
Usage notes............................................................................................................................................. 391
Examples..................................................................................................................................................391
Example 1: UCLIN to change a global zone entry............................................................................. 391
Example 2: UCLIN to change a target zone entry............................................................................. 392
Example 3: UCLIN to change a distribution zone entry.................................................................... 392
Example 4: UCLIN to delete an ORDER entry in the global zone......................................................392
Example 5: UCLIN to change an ORDER retention subentry in an OPTIONS entry in the global
zone............................................................................................................................................... 392
Example 6: UCLIN statements using the FIXCAT subentry in various OPTIONS entries in the
global zone.................................................................................................................................... 392
Processing................................................................................................................................................393
Zone and data set sharing considerations.............................................................................................. 394
xii
Usage notes............................................................................................................................................. 418
Output...................................................................................................................................................... 419
Examples..................................................................................................................................................419
Example 1: Deleting a target zone..................................................................................................... 419
Example 2: Deleting a distribution zone............................................................................................419
Processing................................................................................................................................................419
Zone and data set sharing considerations.............................................................................................. 419
xiii
Usage notes............................................................................................................................................. 443
Output...................................................................................................................................................... 444
Examples..................................................................................................................................................444
Example 1: Creating new target zone after system generation........................................................ 444
Example 2: Creating a test target system..........................................................................................445
Example 3: Creating a test distribution system................................................................................ 446
Processing................................................................................................................................................446
SYSMOD verification processing........................................................................................................448
Element and LMOD verification processing.......................................................................................449
Preserving CIFREQ subentries.......................................................................................................... 449
Zone and data set sharing considerations.............................................................................................. 450
xiv
Summary section............................................................................................................................... 482
Example: Exception SYSMOD report................................................................................................. 482
File allocation report................................................................................................................................483
Format and explanation of data.........................................................................................................484
Example: File allocation report for APPLY.........................................................................................486
GENERATE summary report.................................................................................................................... 486
Format and explanation of data.........................................................................................................487
Examples............................................................................................................................................ 487
GZONEMERGE report.............................................................................................................................. 489
Format and explanation of data.........................................................................................................489
Examples............................................................................................................................................ 492
JCLIN cross-reference report..................................................................................................................493
Format and explanation of data.........................................................................................................493
Example: JCLIN cross-reference report............................................................................................494
JCLIN summary report............................................................................................................................ 494
Format and explanation of data.........................................................................................................494
Example: JCLIN summary report...................................................................................................... 497
LINK LMODS summary report................................................................................................................. 497
Format and explanation of data.........................................................................................................498
Example: LINK LMODS summary report........................................................................................... 499
LIST summary report...............................................................................................................................499
Format and explanation of data.........................................................................................................499
Example: LIST summary report......................................................................................................... 500
Missing FIXCAT SYSMOD report..............................................................................................................500
Format and explanation of data.........................................................................................................500
Example: Missing FIXCAT SYSMOD report........................................................................................ 502
MOVE/RENAME/DELETE report.............................................................................................................. 502
Format and explanation of data.........................................................................................................503
Example: Report for APPLY processing............................................................................................. 507
RECEIVE exception SYSMOD data report............................................................................................... 507
Format and explanation of data.........................................................................................................507
Examples............................................................................................................................................ 508
RECEIVE summary report....................................................................................................................... 509
Format and explanation of data.........................................................................................................510
Examples............................................................................................................................................ 512
Receive product summary report............................................................................................................514
Format and explanation of data.........................................................................................................514
Example..............................................................................................................................................515
REJECT summary report......................................................................................................................... 516
Format and explanation of data.........................................................................................................517
Examples............................................................................................................................................ 519
SOURCEID report.....................................................................................................................................522
Format and explanation of data.........................................................................................................522
Examples............................................................................................................................................ 523
Summary of bypassed and unresolved HOLD reason report................................................................. 524
Example: Summary of bypassed and unresolved HOLD reason report............................................525
SYSMOD comparison report.................................................................................................................... 525
Format and explanation of data.........................................................................................................526
Example: SYSMOD comparison report.............................................................................................. 527
SYSMOD comparison HOLDDATA report.................................................................................................527
Format and explanation of data.........................................................................................................528
Example: SYSMOD Comparison HOLDDATA report...........................................................................529
SYSMOD regression report...................................................................................................................... 530
Format and explanation of data.........................................................................................................530
Example: APPLY SYSMOD regression report.....................................................................................531
SYSMOD status report............................................................................................................................. 531
Format and explanation of data.........................................................................................................532
Example: APPLY SYSMOD status report............................................................................................ 534
xv
UNLOAD summary report........................................................................................................................ 534
Format and explanation of data.........................................................................................................534
Example: UNLOAD summary report.................................................................................................. 535
Unresolved HOLD reason report............................................................................................................. 535
Format and explanation of data for ERROR HOLDS section............................................................. 536
Format and explanation of data for FIXCAT HOLDS section.............................................................537
Format and explanation of data for SYSTEM and USER HOLDS section.......................................... 538
Examples............................................................................................................................................ 538
ZONEEDIT summary report.....................................................................................................................540
Format and explanation of data.........................................................................................................540
Examples............................................................................................................................................ 541
ZONEMERGE report................................................................................................................................. 542
Format and explanation of data.........................................................................................................542
Examples............................................................................................................................................ 543
Appendix D. Accessibility...................................................................................553
Accessibility features.............................................................................................................................. 553
Consult assistive technologies................................................................................................................ 553
Keyboard navigation of the user interface.............................................................................................. 553
Dotted decimal syntax diagrams.............................................................................................................553
Notices..............................................................................................................557
Terms and conditions for product documentation................................................................................. 558
IBM Online Privacy Statement................................................................................................................ 559
Policy for unsupported hardware............................................................................................................559
Minimum supported hardware................................................................................................................ 559
Trademarks.............................................................................................................................................. 560
Index................................................................................................................ 561
xvi
Figures
xvii
24. Example of SMPPUNCH output for REPORT SOURCEID (SYSMODIDS operand specified)................. 325
26. Example of SMPPUNCH output for REPORT SOURCEID (SYSMODIDS operand not specified)........... 326
28. Example of SMPPUNCH output for REPORT SOURCEID (ZONES operand specified).......................... 327
42. Cross-zone requisite SYSMOD report: standard format for REPORT CROSSZONE.............................. 470
43. Cross-Zone Requisite SYSMOD Report: Sample Report for REPORT CROSSZONE.............................. 470
44. Cross-zone requisite SYSMOD report: standard format for APPLY and ACCEPT.................................. 471
45. Cross-Zone Requisite SYSMOD Report: Sample Report for APPLY....................................................... 472
xviii
49. Deleted SYSMOD report: sample report for APPLY................................................................................476
51. Element summary report: sample report for APPLY CHECK................................................................. 479
55. Exception SYSMOD report: sample report (first zone section 1)...........................................................482
56. Exception SYSMOD report: sample report (first zone section 2)...........................................................483
xix
74. Missing FIXCAT SYSMOD report, part 2................................................................................................. 501
80. RECEIVE exception SYSMOD data report: sample report for internal HOLDDATA............................... 509
81. RECEIVE exception SYSMOD data report: sample report for external HOLDDATA.............................. 509
83. RECEIVE summary report: sample report for successful RECEIVE processing................................... 513
84. RECEIVE summary report: sample report with failing SYSMOD........................................................... 513
85. RECEIVE summary report: source IDs assigned from FIXCAT HOLDs..................................................514
96. SOURCEID report: sample report (SYSMODIDS operand not specified).............................................. 524
97. Summary of Bypassed and Unresolved HOLD Reason Report: Standard Format................................ 524
98. Summary of bypassed and unresolved HOLD reason report: sample report....................................... 525
xx
99. SYSMOD comparison report: standard format.......................................................................................526
112. Unresolved HOLD reason report: SYSTEM and USER HOLD section...................................................538
115. Unresolved HOLD reason report: sample of the SYSTEM and USER section of the report................ 539
117. ZONEEDIT summary report: sample report for DDDEF entries.......................................................... 541
118. ZONEEDIT summary report: sample report for PATH subentries....................................................... 541
121. ZONEMERGE report: sample report for merging to a null zone.......................................................... 543
xxi
xxii
Tables
14. Summary of how link-edit control statements are processed as JCLIN data.......................................178
15. Information listed for HOLDDATA combined with other operands....................................................... 214
18. Relationship between format of RELFILE data set and DSNTYPE value for SMPTLIB data set........... 265
xxiii
24. UCL statements for SMP/E data sets......................................................................................................368
28. GZONEMERGE report REASON values for GZONE entry and subentries.............................................. 492
30. Default maximum return codes for commands previously processed................................................. 545
xxiv
SMP/E publications
SMP/E publications
The IBM SMP/E for z/OS, V3R6 publications are available as PDF files in the z/OS Internet library
(www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary).
Table 2 on page xxv lists the IBM SMP/E for z/OS, V3R6 publications and briefly describes each one.
For information about z/OS publications and more information about the IBM SMP/E for z/OS, V3R6
books, see z/OS Information Roadmap.
Changed
The following content is changed.
• The Note in topic “Zones for SET BOUNDARY” on page 107 was updated.
Deleted
The following content is deleted.
• None.
Changed
The following content is changed.
September 2020 refresh
The syntax diagram for the LIST command was corrected, refer to “Global zone syntax” on page 208.
Deleted
The following content is deleted.
• None.
Changed information
• For APAR IO25506, the subdirectory name format was updated; see “Network transfer” on page 273.
• For APAR IO25475, updates were made to the link edit attributes; see Chapter 9, “The JCLIN
command,” on page 153.
• The exception SYSMOD Report generated by the REPORT ERRSYSMODS command now includes
superceded SYSMODS; see Chapter 17, “The REPORT ERRSYSMODS command,” on page 307.
• Updates were made to the ZoneMerge command; see Chapter 32, “The ZONEMERGE command,” on
page 441.
• Attribute ftpccc, which specifies whether SMP/E should use the z/OS FTP client CCC subcommand, was
added to the <CLIENT> tag in the CLIENT/SMPCLNT data set. See “Content of CLIENT data set” on page
248 for more information.
• Chapter 14, “The RECEIVE command,” on page 233 was updated with information about HTTPS
support.
• To reflect the support for multitasking using the SYSPRINT definition in the GIMDDALC dataset, the
section about the multi-tasking of link-edit utility invocations of the following commands has been
updated:
– ACCEPT command (“Multitasking of link-edit utility invocations” on page 44)
– Chapter 3, “The APPLY command,” on page 51 (“Multitasking of link-edit utility invocations” on page
97)
• The following commands were enhanced to allow users to specify target or dlib zones that are defined
in different global zones
– REPORT CROSSZONE command
– REPORT SYSMODS command
• The REPORT SYSMODS command was changed to generate a new report called the SYSMOD
Comparison HOLDDATA Report. It identifies the SYSTEM and USER HOLDS that must be resolved before
the SYSMODS identified in the SYSMOD Comparison Report can be installed in the comparison zone. For
more information, see “SYSMOD comparison HOLDDATA report” on page 527.
• Because the REPORT SYSMODS command was changed to identify SYSTEM and USER HOLDS that must
be resolved before the SYSMODS identified in the SYSMOD Comparison Report can be installed in the
comparison zone, the following commands were modified to retain HOLDDATA information:
– REJECT command
– REPORT SYSMODS command
– RESTORE command
• Chapter 9, “The JCLIN command,” on page 153 was updated as a result of the added support for the
RMODE(31) Binder option.
SA22-7771-14
Changed information:
• The syntax diagram showing the SYSOUT DDDEF UCLIN operands was corrected. For details, see
“SYSOUT data set” on page 372.
SA22-7771-13
Changed information:
• Chapter 9, “The JCLIN command,” on page 153 was updated for the following two changes:
– A blank space is no longer required between the closing parenthesis and TYPE comment in the JCLIN
INCLUDE statement.
– X'C0' is a valid character in a module name that is specified on the INCLUDE statement.
– The notes in Chapter 24, “The UCLIN command,” on page 365 were updated to explain that the
SOURCEID value cannot span lines and must be explicitly specified.
SA22-7771-12
New information:
• You can use the REPORT MISSINGFIX command (Chapter 18, “The REPORT MISSINGFIX command,”
on page 315) to determine whether any FIXCAT APARs exist that are applicable but are not installed
yet, and whether any SYSMODs are available to satisfy the missing FIXCAT APARs. The Missing FIXCAT
SYSMOD report was also been added; see “Missing FIXCAT SYSMOD report” on page 500.
Changed information:
• You can now use the ZONEEDIT command to add certain subentries to selected SMP/E entries in the
same zone. Chapter 29, “The ZONEEDIT command,” on page 421 has been updated to describe this
change.
• The description of the SOURCEID operand, the EXSRCID operand, or both have been updated for the
following commands:
– Chapter 3, “The APPLY command,” on page 51
– ACCEPT command
– Reject command
– Chapter 12, “The LIST command,” on page 205
– Chapter 25, “The UNLOAD command,” on page 397
This chapter explains the syntax notation and rules for SMP/E commands. It describes:
• How to read the notation used to show how commands should be coded
• The rules to follow when coding commands
• If you can choose from two or more items, they appear in a vertical stack.
If you must choose one of the items, one item of the stack appears on the main path.
STATEMENT required_choice1
required_choice2
If choosing one of the items is optional, the entire stack appears below the main path.
STATEMENT
optional_choice1
optional_choice2
If one of the optional items is the default, it appears above the main path and the remaining choices will
be shown.
default_choice1
STATEMENT
optional_choice2
optional_choice3
• Keywords appear in uppercase (for example, PARM1). They must be spelled exactly as shown.
• Variables appear in lowercase italics (for example, parmx). They represent user-supplied names or
values.
STATEMENT variable
• An arrow returning to the left above the main line indicates an item that can be repeated.
STATEMENT repeatable_item
A repeat arrow above a stack indicates that you can make more than one choice from the stacked items,
or repeat a single choice.
– A repeat arrow above a stack of keywords means that you can enter one or more of the keywords.
However, each keyword can be entered only once.
– A repeat arrow above a variable means that you can enter one or more values for the variable.
However, each value can be entered only once.
• If punctuation marks, parentheses, arithmetic operators, or other such symbols are shown, you must
enter them as part of the syntax.
• Sometimes a single substitution represents a set of several parameters. For example, in the following
diagram, the callout Parameter Block can be replaced by any of the interpretations of the
subdiagram that is labeled Parameter Block:.
STATEMENT CLAUSE1
Parameter Block
Parameter Block
PARM1
PARM2 PARM3
PARM4
Syntax rules
Follow these rules when you code SMP/E commands:
• SMP/E input is case-sensitive. Use uppercase letters to enter all SMP/E keywords. Enter operands in the
same case as the intended operand values. Enter the text within a comment in any case you prefer.
• Start each command on a new logical 80-byte record.
For SMP/E commands, enter the command name first, followed by any operands.
Note: Except for these restrictions, SMP/E commands can begin and end anywhere up to and including
column 72.
• You can code optional information in any order, except where noted in the syntax and operand
descriptions.
• Separate operands and their values with a blank or comma.
Note: Although the syntax diagrams show only commas when indicating the allowable separator
characters for repeating values, one or more blank characters may be used instead to separate
repeating values.
• You can continue a command on more than one line. SMP/E assumes a command is continued if it did
not find a period (.) before column 73.
Note: If an operand's value must span multiple lines and that value is delimited by quotation marks,
the value should extend up to and including column 72 and restart on column 1 of the next line. Put
a quotation mark before the value and another after the value, but do not add extra quotation marks
where the value spans lines. Blanks within the quoted value are considered to be part of the value,
including any blanks at the beginning of a continuation line.
• Start comments with “/*” and end them with “*/”. The first “*/” encountered after the initial “/*” will
end the comment. A comment can appear anywhere within or after a command, but should not start
before a command, nor begin in column 1. (When “/*” starts in column 1, it indicates the end of an input
data set.) A comment after the ending period must start on the same line as the period. You cannot
specify any additional operands or comments after that final comment. For example, you can code a
comment like this:
This causes a syntax error at the start of the second comment after the period.
• Comments can be in single-byte characters (such as English alphanumeric characters) or in double-byte
characters (such as Kanji).
• For a parameter that allows or requires the use of quotation marks as part of the parameter's value, the
parameter value should extend up to and including column 72 and restart on column 1 of the next line.
No intervening quotation marks are needed. Intervening blanks will be incorporated into the value.
• End each command with a period.
• SMP/E completes processing for one command before it starts processing the next one.
• SMP/E ignores columns 73 through 80. If data, such as a period, is specified beyond column 72, SMP/E
ignores it and indicates an error in the command after the one containing that data.
<start-tag />
attribute="attribute value"
• Comments must begin with <!-- and end with"-->. All data between the <!-- and the --> is ignored.
Comments cannott be placed inside a tag.
• Any text not contained within comment delimiters is syntax checked.
• Tags are case sensitive; attribute values may be mixed case.
• A tag is not required to start on a new line.
• The XML markup characters, <, >, and &, cannot appear within a tag name or an attribute value.
The ACCEPT command is used to cause SMP/E to install the elements supplied by a SYSMOD into the
distribution libraries (or DLIBs). The ACCEPT process:
• Selects SYSMODs present in the global zone that are applicable to the specified distribution libraries
• Makes sure all other required SYSMODs have been accepted or are being accepted concurrently
• Selects the elements from the accepted SYSMODs based on the functional and service level of those
elements in the distribution libraries and the relationship between the SYSMODs being installed,
ensuring that no current service is regressed by the installation of another SYSMOD
• Calls system utilities to install the elements into the distribution libraries
• Records the functional and service levels of the new elements in the distribution zone
• Records the installation of the SYSMOD in the distribution zone
• Deletes the global zone SYSMOD and PTS modification control statement entries for those SYSMODs
that were successfully processed
The ACCEPT process is controlled by:
• The information in the distribution zone reflecting the status and structure of the distribution libraries
• Information on the SYSMODs indicating their applicability
• Information in the OPTIONS and UTILITY entries
• Operands on the ACCEPT command
Syntax
ACCEPT Command
ACCEPT
,
SELECT( sysmod_id )
fmidset REDO
PTFS
, APARS
FUNCTIONS
EXCLUDE( sysmod_id )
USERMODS
XZREQ XZGROUP( )
,
zoneset
zonename
, ,
, ASSEM
SOURCEID( source_id )
CHECK
COMPRESS (ALL)
,
( ddname )
FIXCAT( )
category
GROUP
GROUPEXTEND
,
( NOAPARS )
NOUSERMODS
JCLINREPORT
NOJCLINREPORT NOJCLIN
,
( sysmod_id )
RETRY(YES)
•
RETRY(NO) REUSE ,
RC( command=rc )
BYPASS Options
APPLYCHECK
,
HOLDCLASS( class_id )
HOLDERROR
,
( reason_id )
HOLDFIXCAT
,
( )
reason_id
HOLDSYSTEM
,
( Reason ID )
,
( sysmod_id )
HOLDUSER
,
( reason_id )
ID
IFREQ
PRE
REQ
XZIFREQ
,
( sysmod_id )
(sysmod_id,zonename )
AO
DB2BIND
DDDEF
DELETE
DEP
DOC
DOWNLD
EC
ENH
EXIT
EXRF
FULLGEN
IOGEN
IPL
MSGSKEL
MULTSYS
RESTART
Operands
APARS
indicates that all eligible APARs should be accepted.
Note:
1. APARS can also be specified as APAR.
2. If APARS is specified along with SELECT, all eligible APARs are included in addition to the
SYSMODs specified on SELECT.
3. If APARS is specified along with SOURCEID, all APARs associated with the specified source IDs are
included.
ASSEM
indicates that if any SYSMODs contain both source code and object code for the same module, the
source code should be assembled and should replace the object code.
BYPASS
You can specify any of these options:
APPLYCHECK
HOLDCLASS
HOLDERROR
HOLDFIXCAT
HOLDSYSTEM
HOLDUSER
ID
IFREQ
PRE
REQ
XZIFREQ
XZIFREQ(list)
Note: If you specify both BYPASS and GROUPEXTEND, SMP/E does not include superseding SYSMODs
needed to take the place of requisites or error reason IDs that have been bypassed.
During CHECK processing, if you want to see whether any superseding SYSMODs are available for
requisites that have been bypassed, specify GROUPEXTEND without BYPASS.
BYPASS(APPLYCHECK)
indicates that SYSMODs should be accepted even if they have not been applied. For example, if
you are preparing the distribution libraries before doing a system generation, you want to accept
SYSMODs that have not been applied.
Note: APPLYCHECK can also be specified as APPCHK.
BYPASS(HOLDCLASS(value,…))
indicates that exception SYSMODs associated with the specified class names should not be held.
The list of class names is required.
These are the hold classes you can specify:
Class
Explanation
ERREL
The SYSMOD is held for an error reason ID but should be installed anyway. IBM has
determined that the problem the SYSMOD resolves is significantly more critical than the error
reflected by the holding APAR.
HIPER
The SYSMOD is held with a hold class of HIPER (High Impact)
PE
The SYSMOD is held with a hold class of "PTF in Error".
UCLREL
UCLIN needed for the SYSMOD has been handled by IBM and no longer requires your
attention.
YR2000
Identifies PTFs that provide Year 2000 function, or fix a Year 2000-related problem.
BYPASS(HOLDERROR)
indicates that exception SYSMODs associated with the specified error reason IDs should not be
held. The list of reason IDs is optional. If you include one, only the reason IDs specified on it are
bypassed. If you do not include a list, all error reason IDs are bypassed.
Note: HOLDERROR can also be specified as HOLDERR.
BYPASS(HOLDFIXCAT)
indicates that the held SYSMODs associated with the specified fix category reason IDs should not
be held. The list of reason IDs is optional. If a list of reason IDs is included, only the ones specified
are bypassed. If a list is not included, all fix category reason IDs are bypassed.
BYPASS(HOLDSYSTEM)
indicates that exception SYSMODs associated with the specified system reason IDs should not
be held. The list of reason IDs is optional, as is the list of SYSMOD IDs for a particular reason
ID. Generally, you should specify BYPASS(HOLDSYSTEM) on all ACCEPT CHECK commands, and
BYPASS(HOLDSYSTEM(reason_id,…)) on all ACCEPT commands for all system reason IDs for
which appropriate action has been (or will be) taken.
How you specify the reason IDs determines which system reason IDs are bypassed. Make sure the
appropriate action has been taken for all SYSMODs whose reason IDs are to be bypassed.
• If you do not include a list of reason IDs, all system reason IDs are bypassed.
• If you include a list of reason IDs without a list of SYSMOD IDs, all the SYSMODs with the
specified reason IDs are bypassed.
If you include a list of SYSMOD IDs for a particular reason ID, that reason ID is bypassed only
for the specified SYSMODs. Other SYSMODs held for that reason remain held, unless the hold is
released by some other BYPASS operand (such as CLASS).
Note: HOLDSYSTEM can also be specified as HOLDSYS.
These are the system reason IDs currently used by IBM:
ID
Explanation
ACTION
The SYSMOD needs special handling before or during APPLY processing, ACCEPT processing,
or both.
AO
The SYSMOD may require action to change automated operations procedures and associated
data sets and user exits in products or in customer applications. The PTF cover letter
describes any changes (such as to operator message text, operator command syntax, or
expected actions for operator messages and commands) that can affect automation routines.
DB2BIND
A DB2® application REBIND is required for the SYSMOD to become effective.
DDDEF
Data set changes or additions as required.
DELETE
The SYSMOD contains a ++DELETE MCS, which deletes a load module from the system.
DEP
The SYSMOD has a software dependency.
DOC
The SYSMOD has a documentation change that should be read before the SYSMOD is installed.
DOWNLD
Code that is shipped with maintenance that needs to be downloaded.
DYNACT
The changes supplied by the SYSMOD may be activated dynamically without requiring an
IPL. The HOLD statement describes the instructions required for dynamic activation. If those
instructions are not followed, then an IPL is required for the SYSMOD to take effect.
EC
The SYSMOD needs a related engineering change.
ENH
The SYSMOD contains an enhancement, new option or function. The HOLD statement provides
information to the user regarding the implementation and use of the enhancement.
EXIT
The SYSMOD contains changes that may affect a user exit. For example, the interface for an
exit may be changed, an exit may need to be reassembled, or a sample exit may be changed.
EXRF
The SYSMOD must be installed in both the active and the alternative Extended Recovery
Facility (XRF) systems at the same time to maintain system compatibility. (If you are not
running XRF, you should bypass this reason ID.)
FULLGEN
The SYSMOD needs a complete system or subsystem generation to take effect.
IOGEN
The SYSMOD needs a system or subsystem I/O generation to take effect.
IPL
The SYSMOD requires an IPL to become effective. For example, the SYSMOD may contain
changes to LPA or NUCLEUS, the changes may require a CLPA, or a failure to perform an IPL
might lead to catastrophic results, such as could be caused by activation of a partial fix.
Note: If you plan to perform an IPL with CLPA after the SYSMOD has been applied, then no
further investigation of the HOLD is required; simply bypass the IPL reason ID. However, if you
are not planning to perform an IPL with CLPA, then the details of the HOLD statement must be
investigated to determine what kind of actions are required to activate the SYSMOD.
MSGSKEL
This SYSMOD contains message changes that must be compiled for translated versions of the
message changes to become operational on extended TSO consoles.
If you want to use translated versions of the messages, you must run the message compiler
once for the library containing the English message outlines, and once for each additional
language you want to be available on your system. For details, see z/OS MVS Planning:
Operations.
If you want to use only the English version of the messages, you do not need to run the
message compiler. You should bypass this reason ID.
MULTSYS
Identifies fixes that need to be applied to multiple systems, in one of three cases:
preconditioning, coexistence, or exploitation.
RESTART
To become effective, the SYSMOD requires a special subsystem restart operation. The HOLD
statement contains information regarding the required restart actions.
BYPASS(HOLDUSER)
indicates that exception SYSMODs associated with the specified user reason IDs should not be
held. The list of reason IDs is optional. If you include one, only the reason IDs specified on it are
bypassed. If you do not include a list, all user reason IDs are bypassed.
BYPASS(ID)
indicates that SMP/E should ignore any errors it detects when checking the SYSMOD's RMID and
UMIDs. BYPASS(ID) should be used with caution and only after careful consideration because
ignoring RMID and UMID errors may regress modifications included in previously accepted
SYSMODs.
BYPASS(IFREQ)
indicates that SMP/E should ignore any conditional requisites that are missing.
BYPASS(PRE)
indicates that SMP/E should ignore any prerequisites that are missing.
BYPASS(REQ)
indicates that SMP/E should ignore any requisites that are missing.
BYPASS(XZIFREQ)
indicates that SMP/E is to continue ACCEPT processing for a SYSMOD, even if SMP/E detects
a missing cross-zone requisite. SMP/E will identify such missing cross-zone requisites with a
warning message, instead of terminating the ACCEPT processing.
BYPASS(XZIFREQ(list))
indicates that SMP/E is to continue ACCEPT processing for a SYSMOD, even if SMP/E detects a
missing cross-zone requisite, provided that the missing requisite SYSMOD is included in the list
provided with the XZIFREQ option.
Note:
1. There are two ways to specify source IDs:
• Explicitly, by fully specifying a particular source ID (for example, RSU0711). In this case, all
SYSMODs that contain the identified source ID are excluded.
• Implicitly, by partially specifying a source ID value using asterisks (*) as global characters and
percent signs (%) as placeholders.
– A single asterisk indicates that zero or more characters can occupy that position. Here are
some examples:
- For RSU*, all SYSMODs that contain a source ID that begins with the character string RSU*
are excluded.
- For *0711, all SYSMODs that contain a source ID that ends with the character string 0711
are excluded.
- For RSU*1, all SYSMODs that contain a source ID that begins with the character string RSU
and ends with the character string 1 are excluded.
– A single percent sign indicates that any one single character can occupy that position. For
RSU0%11, for example, SYSMODs that contain any of these source IDs are excluded: RSU0711,
RSU0211, and RSU0311. SYSMODs that contain source ID RSU00711 are not excluded.
Any number of asterisks and percent signs can be used within a single partially specified source ID.
The following examples are valid source ID specifications:
RSU0709
RSU*
IBM.Device.20%4
IBM.Device.*.zAAP
2. A given source ID can be explicitly specified only once on the EXSRCID operand.
3. The same source ID cannot be explicitly specified on both the EXSRCID and SOURCEID operands.
4. If a source ID is specified implicitly or explicitly on the EXSRCID operand and is also specified
either implicitly or explicitly on the SOURCEID operand, all SYSMODs with that source ID are
excluded from processing.
5. If a given SYSMOD has multiple source IDs and at least one of those source IDs is specified
either implicitly or explicitly on the SOURCEID operand, the SYSMOD is excluded from processing if
another one of its source IDs is specified either explicitly or implicitly on the EXSRCID operand.
For example, assume PTF UZ12345 has been assigned source IDs SMCREC and PUT0703. If you
specify SOURCEID(SMC*) and EXSRCID(PUT0703), the SYSMOD is excluded from processing.
6. If a SYSMOD that would have been included by the GROUP or GROUPEXTEND operand is excluded
by the EXSRCID operand, SMP/E does not include it.
7. If no SYSMOD types are specified, only PTFs are processed. To process other types of SYSMODs,
you must specify the desired SYSMOD types.
8. A source ID value might contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified source ID value. For example, a specified source ID
value of ABCDEF matches a value of abcdef.
FIXCAT
identifies the list of fix categories of interest for command processing. This list determines which fix
category APARs must be resolved for the SYSMODs being accepted.
A fix category APAR provides a fix for a held SYSMOD and the APAR is associated with one or more fix
categories. Fix category APARs are identified by FIXCAT HOLD entries. If a fix category specified on a
FIXCAT HOLD for a SYSMOD being accepted matches any of those specified on the FIXCAT operand of
the command, then the SYSMOD is held for the APAR reason ID from the FIXCAT HOLD and will not be
accepted until the APAR is resolved. If a fix category specified on a FIXCAT HOLD for a SYSMOD being
accepted does not match any of those specified on the FIXCAT operand of the command, or if the list
of fix categories is null, the SYSMOD is not held for the APAR reason ID from the FIXCAT HOLD.
The values specified on the FIXCAT operand will override the list of values, if any, defined by the
FIXCAT subentry in the active OPTIONS entry. FIXCAT() can be used to specify a null list, which means
no fix category APARs must be resolved during current accept processing.
Fix category values can be 1 to 64 characters in length and can contain any nonblank character in the
range X'41' - X'FE' except the single quotation mark, comma, left parenthesis, and right parenthesis.
They can be specified in two ways:
• Explicitly, by fully specifying a particular fix category value. For example, IBM.Device.zIIP. In this
case, all HOLDDATA associated with this fix category is applicable to command processing.
• Implicitly, by partially specifying a fix category value using any number of asterisks (*) as global
characters and percent signs (%) as placeholders.
– A single asterisk indicates that zero or more characters can occupy that position. For example,
IBM.Device*, *z/OS or IBM*z/OS. In the first case, all HOLDDATA associated with a fix category
that begins with the character string IBM.Device is applicable. In the second case, all HOLDDATA
associated with a fix category that ends with the character string z/OS is applicable. In the third
case, all HOLDDATA associated with a fix category that begins with the character string IBM and
ends with the character string z/OS is applicable.
– A single percent sign indicates that any one single character can occupy that position. For
example, IBM.Device.20%4. In this case, HOLDDATA associated with any of the following fix
categories is applicable: IBM.Device.2084, IBM.Device.2094, and IBM.Device.20t4. HOLDDATA
associated with fix category IBM.Device.20914, however, is not applicable.
Fix category values can contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified Fix category value. For example, a specified value
of IBM.FUNCTION.HEALTHCHECKER matches the value of IBM.Function.HealthChecker.
Fix category values are defined by FIXCAT HOLD entries. The following examples of acceptable fix
categories are based on the fix category values that are used by IBM in FIXCAT HOLD entries:
IBM.Device.2094.zAAP
*
IBM.Function*
IBM.Device.20%4.*
*.HealthChecker
FORFMID
indicates that only SYSMODs for the specified FMIDs or FMIDSETs should be accepted.
Note:
1. Functions containing a ++VER DELETE statement are not automatically included by the FORFMID
operand. You must specify them on the SELECT operand.
2. If no SYSMOD types are specified, only PTFs are processed. To process other types of SYSMODs,
you must specify the desired SYSMOD types.
FUNCTIONS
indicates that all eligible functions should be accepted.
Note:
1. FUNCTIONS can also be specified as FUNCTION.
2. If FUNCTIONS is specified along with SELECT, all eligible functions are included in addition to the
SYSMODs specified on SELECT.
3. If FUNCTIONS is specified along with SOURCEID, all functions associated with the specified source
IDs are included.
4. Functions that contain a ++VER DELETE statement are not automatically included by the
FUNCTIONS operand. You must specify them on the SELECT operand.
GROUP
indicates that if any SYSMODs specifically defined as requisites for eligible SYSMODs have not yet
been accepted, SMP/E should automatically include them.
Note:
1. GROUP can also be specified as G.
2. GROUP is mutually exclusive with GROUPEXTEND.
3. GROUP might include SYSMODs at a higher service level than the level specified by the SOURCEID
operand.
4. If you specify GROUP without any other SYSMOD selection operands (such as a SYSMOD type,
SOURCEID, FORFMID, or SELECT), GROUP is ignored.
5. Processing done for SYSMODs specified on the SELECT operand is not necessarily done for
SYSMODs included by the GROUP operand. For example, if REDO is specified, only SYSMODs
specified on the SELECT operand can be reaccepted; SYSMODs included by the GROUP operand
are not.
6. Functions containing a ++VER DELETE statement are not automatically included by the GROUP
operand. You must specify them on the SELECT operand.
7. If a SYSMOD that would have been included by the GROUP operand is excluded by the EXCLUDE or
EXSRCID operand, SMP/E does not include it.
GROUPEXTEND
indicates that if a SYSMOD specifically defined as a requisite for an eligible SYSMOD has not
been accepted and cannot be processed for one of the reasons shown in Table 3 on page 14,
SMP/E should automatically include a superseding SYSMOD. Table 3 on page 14 shows what
GROUPEXTEND includes, depending on why the requisite cannot be processed.
You can specify NOAPARS or NOUSERMODS (or both) to limit the types of SYSMODs that are included by
GROUPEXTEND to resolve error reason IDs. The default is to include all eligible SYSMODs, regardless
of SYSMOD type.
NOAPARS
indicates that SMP/E should exclude APARs that resolve error reason IDs.
NOUSERMODS
indicates that SMP/E should exclude USERMODs that resolve error reason IDs.
Note:
1. GROUPEXTEND can also be specified as GEXT.
2. GROUPEXTEND is mutually exclusive with GROUP.
3. If you specify both BYPASS and GROUPEXTEND, SMP/E does not include any superseding
SYSMODs needed to take the place of requisites or error reason IDs that have been bypassed.
During CHECK processing, if you want to see whether any superseding SYSMODs are available for
requisites that have been bypassed, specify GROUPEXTEND without BYPASS.
4. GROUPEXTEND might include SYSMODs at a service level higher than that specified by the SELECT
or SOURCEID operand.
5. Functions and excluded SYSMODs are not automatically included by GROUPEXTEND.
6. Processing done for SYSMODs specified on the SELECT operand is not necessarily done
for SYSMODs specified by the GROUPEXTEND operand. For example, if REDO is specified,
only SYSMODs specified on the SELECT operand are reaccepted; SYSMODs included by the
GROUPEXTEND operand are not.
7. If a SYSMOD that would have been included by the GROUPEXTEND operand is excluded by the
EXCLUDE or EXSRCID operand, SMP/E does not include it.
8. When GROUPEXTEND is specified, SMP/E examines more SYSMODs than it does if GROUP were
specified. Because of this additional processing, the ACCEPT command runs longer than if GROUP
was specified, and a larger region size might be needed. On the other hand, GROUPEXTEND
reduces the amount of time you would otherwise spend searching for missing requisites.
JCLINREPORT
indicates that SMP/E is to write the JCLIN reports after processing inline JCLIN. This is the default
when inline JCLIN is processed at ACCEPT time (ACCJCLIN is set in the DLIBZONE entry).
Note: JCLINREPORT can also be specified as JCLR.
NOJCLIN
indicates that SMP/E should not process inline JCLIN for the specified SYSMODs. For example, if you
are reaccepting SYSMODs, you may not want to process inline JCLIN that would change distribution
zone entries that should not be changed.
If you include a list of SYSMOD IDs, SMP/E skips JCLIN processing only for the specified SYSMODs. If
you do not include a list of SYSMOD IDs, SMP/E skips JCLIN processing for all SYSMODs.
Note: If inline JCLIN is not being processed at ACCEPT time (ACCJCLIN is not set in the DLIBZONE
entry), you do not need to specify NOJCLIN.
NOJCLINREPORT
indicates that SMP/E should not write any JCLIN reports after processing inline JCLIN.
Note: NOJCLINREPORT can also be specified as NOJCLR.
PTFS
indicates that all eligible PTFs should be accepted.
Note:
1. PTFS can also be specified as PTF.
2. PTFS is the default SYSMOD type for mass-mode processing. If no other SYSMOD types are
specified, only PTFs are processed, even if PTFS was not specified.
3. If PTFS is specified along with SELECT, all eligible PTFs are included in addition to the SYSMODs
specified on SELECT.
4. If PTFS is specified along with SOURCEID, all PTFs associated with the specified source IDs are
included.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the ACCEPT command.
Before SMP/E processes the ACCEPT command, it checks whether the return codes for the specified
commands are less than or equal to the values specified on the RC operand. If so, SMP/E can process
the ACCEPT command. Otherwise, the ACCEPT command fails. For more information about the RC
operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
RSU0709
RSU*
IBM.Device.20%4
IBM.Device.*.zAAP
2. A given source ID can be explicitly specified only once on the SOURCEID operand.
3. The same source ID cannot be explicitly specified on both the EXSRCID and SOURCEID operands.
4. If a source ID is specified implicitly or explicitly on both the SOURCEID operand and the EXSRCID
operand, all SYSMODs with that source ID are excluded from processing.
5. If a given SYSMOD has multiple source IDs and at least one of those source IDs is specified either
explicitly or implicitly on the SOURCEID operand, and another one is specified either explicitly or
implicitly on the EXSRCID operand, the SYSMOD is excluded from processing.
For example, assume PTF UZ12345 has been assigned source IDs SMCREC and PUT0703. If you
specify SOURCEID(SMC*) and EXSRCID(PUT0703), the SYSMOD is excluded from processing.
6. Functions containing a ++VER DELETE statement are not automatically included by the SOURCEID
operand. You must specify them on the SELECT operand.
7. If no SYSMOD types are specified, only PTFs are processed. To process other types of SYSMODs,
you must specify the desired SYSMOD types.
8. A source ID value might contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified source ID value. For example, a specified source ID
value of ABCDEF matches a value of abcdef.
USERMODS
indicates that all eligible USERMODs should be accepted.
Note:
1. USERMODS can also be specified as USERMOD.
2. If USERMODS is specified along with SELECT, all eligible USERMODs are included, in addition to the
SYSMODs specified on SELECT.
3. If USERMODS is specified along with SOURCEID, all USERMODs associated with the specified
source IDs are included.
XZGROUP(list)
indicates that you wish to override SMP/E's default method for determining the zones to be checked
for cross-zone requisites.
You may specify either:
• A list of ZONESETs and zones that are to be used to establish the zone group for this command.
Each value in the list must be a valid ZONESET or zone name.
• XZGROUP() to provide a null list, which means that no cross-zone requisite checking is to be done
for this command. A null list is not valid if the XZREQ operand is also specified.
The XZGROUP operand always requires a list or null list. That is, XZGROUP (without parentheses) is
not allowed.
Note:
1. If XZGROUP is specified, whatever ZONESETs the user specifies are used to establish the initial
zone group, even if the set-to zone is not in a ZONESET and the XZREQCHK subentry is not set.
2. If no XZGROUP operand was specified on the ACCEPT command, SMP/E reads all ZONESET
entries. If a ZONESET entry has its XZREQCHK subentry set to YES and it contains the set-to
zone, then all the other zones within the ZONESET entry become part of the initial zone group for
the ACCEPT command.
3. After the initial zone group is established, it is culled by removing all target zones for ACCEPT
processing. In other words, only zones having the same type as the set-to zone are left in the final
zone group used for cross-zone requisite checking.
XZREQ
indicates that SMP/E should install unsatisfied cross-zone requisites into the set-to zone.
XZREQ causes cross-zone requisites to become primary candidates for installation. To do this, SMP/E
checks secondary zones in the currently established zone group for CIFREQ data that is applicable to
functions installed or being installed into the set-to zone.
Note:
1. SYSMODs selected with the XZREQ operand are in addition to any SYSMODs selected with the
FORFMID and SOURCEID operands.
2. If XZREQ is specified along with SELECT, the specifically selected SYSMODs are included along
with any unsatisfied cross-zone requisites.
3. If FORFMID is specified, only cross-zone requisites for the specified FMIDs become primary
candidates for installation.
4. When the XZREQ operand is specified without EXSRCID operand, FORFMID operand, the SELECT
operand, or the SOURCEID operand, only unsatisfied cross-zone requisites become primary
candidates.
5. If any SYSMOD types are specified, processing is limited to those SYSMOD types, except for those
SYSMODs that might be needed to satisfy processing for these operands:
• GROUP
• GROUPEXTEND
• SELECT
• XZREQ
6. If the XZREQ operand is specified, the XZGROUP operand may not be specified as a null list.
Syntax notes
Figure 1 on page 20 shows how SMP/E chooses which SYSMODs to process, on the basis of the operands
specified on the ACCEPT command.
• If you specify any of the operands in the top part of the chart, or if you do not specify the SELECT
operand, SMP/E does mass-mode processing.
• If you specify the SELECT operand, SMP/E does select-mode processing.
• If you specify the SELECT operand plus operands from the top part of the chart, SMP/E does both
select-mode and mass-mode processing.
For more information about select-mode and mass-mode processing, see “Candidate selection” on page
28.
Remember the following when coding the ACCEPT command:
• SMP/E accepts SYSMODs specified on SELECT, regardless of other ACCEPT operands (such as a
SYSMOD type, SOURCEID, EXSRCID, or FORFMID). Therefore, if you want to accept a specific SYSMOD,
you only need to specify the SYSMOD ID on SELECT. For example, to accept a specific APAR, you do not
also have to include the APAR operand.
Note: If you do specify a SYSMOD type along with SELECT, SMP/E accepts all SYSMODs of the specified
type plus the selected SYSMOD.
• If you specify more than one SYSMOD type, a SYSMOD needs to match only one of the specified types.
• If the SOURCEID, FORFMID, and SYSMOD type operands are specified together, only those SYSMODs
meeting all the conditions are accepted.
Note:
1. SMPHRPT is an optional DD statement. If SMPHRPT is defined, the HOLD reports are directed there.
2. SMPJHOME is an optional DD statement used to specify the Java™ runtime directory. SMP/E requires
the Java runtime when installing JARUPD elements.
3. SMPWKDIR is an optional DD statement used to specify a directory in the UNIX file system for the
storage of temporary files created during SMP/E processing. If the SMPWKDIR DD statement is not
provided, SMP/E will use the /tmp directory for temporary work files.
4. zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated using the
ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used
to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
5. SMPPARM is required only if exit routines have been defined in SMPPARM member GIMEXITS.
Usage notes
This section provides usage notes for the ACCEPT command.
• The DISTSRC operand value specifies the name of the distribution library containing the source.
• The ASSEM and PREFIX operand values specify a list of sources that should be assembled during APPLY
processing.
• The DISTMOD operand value specifies the name of the distribution library containing the load modules.
These four operands are specified on ++MAC and ++MACUPD statements. The DISTMOD operand is also
specified on ++SRC and ++SRCUPD statements.
The ASSEM operand values are placed in the associated SYSMOD entry on the distribution zone as ASSEM
subentries. If any of the modules specified in the ASSEM operand values are found on the target zone as
SRC or ASSEM entries, the DISTLIB and SYSLIB subentry values are used in lieu of the DISTSRC operand
value.
If neither a SRC nor an ASSEM entry exists for a module in the ASSEM operand values, a SRC entry is
created. The DISTSRC operand value is placed in the SRC entry as the DISTLIB subentry.
If there is no MOD entry on the distribution zone for a module in the ASSEM operand list, one is created.
The DISTMOD operand value is placed in the MOD entry as the DISTLIB subentry.
After the macro update or replacement is accomplished, all modules specified in the ASSEM and PREFIX
operand lists are assembled. If no member is found in the source distribution library or in the distribution
library for a source specified in the ASSEM operand list, a warning message is issued, and processing of
the SYSMOD continues without assembling or link-editing the module. If an assembly completes with a
return code greater than the one you specified in the RC subentry of the ASM UTILITY entry (or the SMP/E
default of 4 if the RC subentry is null), the processing of the SYSMOD stops. If the resulting object text
from a successful assembly can be link-edited into a load module, the link-edit is performed.
Alias processing
When an element with aliases is processed, both the element and its aliases are updated. SMP/E does
not check the aliases against elements maintained in the distribution zone. The user must make sure an
element's alias does not match the name of an element maintained by SMP/E in the distribution zone.
Aliases for an element are determined as follows:
• Replacement elements (MACs, MODs, data elements, and program elements):
1. If a list of aliases is specified on the SMP/E modification control statement, these aliases are used.
The new list replaces any alias subentries in the distribution zone element entry.
2. If no list of aliases is specified on the SMP/E modification control statement, the aliases found as
alias subentries in the distribution zone element entry are used.
• Update elements (ZAPs and MACUPDs):
1. If a list of aliases is specified on the SMP/E modification control statement, these aliases are used.
Any alias subentries in the distribution zone element entry are ignored for update processing of the
element. Macro aliases (in the distribution library) existing before this list of aliases was presented
to SMP/E are not updated. They remain in the distribution library. Alias subentries in the distribution
zone element entry are not updated or replaced by the aliases in this list.
2. If no list of aliases is specified on the SMP/E modification control statement, the aliases found as
alias subentries in the distribution zone element entry are used.
SYSMOD termination
Termination of a SYSMOD causes a return code of 8. Termination of a ++FUNCTION causes a return code
of 12. Termination occurs in response to any of the following conditions:
• Missing requisites:
– The requisite SYSMOD is not available on the PTS/CSI data sets. (It has not been received.)
– The requisite SYSMOD has been excluded.
– The requisite SYSMOD was terminated (possibly because of other missing requisites).
– The requisite SYSMOD did not meet the applicability criteria.
– The requisite SYSMOD was not included in the SELECT list, and neither GROUP nor GROUPEXTEND was
specified.
– GROUP was specified to include the requisite, but the requisite SYSMOD is being held or is not
available on the PTS or CSI data sets. (It has not been received.)
– GROUPEXTEND was specified to supersede the failing requisite, but a superseding SYSMOD was not
available for processing.
• MODID error conditions.
• Attempting to change the ownership of an element that is being updated rather than replaced.
• DISTLIB operand checking failure.
• DD statement missing for a distribution library.
• Utility return codes: Return codes from the utilities called to update, assemble, copy, and link-edit
elements to the distribution library are examined to determine the success or failure of an operation.
If these return codes exceed a predefined value, the SYSMODs whose elements are involved in the
operation are terminated. For details on handling x37 abends, see the description of the RETRY operand
under “Operands” on page 7.
• Related SYSMOD failure: When SMP/E excludes an element from a SYSMOD because another SYSMOD
being processed supplies a higher level of the element, SMP/E does not consider the first SYSMOD
successfully processed until the SYSMOD supplying the highest (selected) level element completes
successfully. If the SYSMOD supplying the highest level element fails, all SYSMODs from which
elements have been excluded are terminated because of a “related SYSMOD failure.”
BYPASS
Certain error conditions that cause the termination of a SYSMOD can be avoided by specifying the BYPASS
operand on the ACCEPT command. In BYPASS mode, some error conditions are treated as warning
conditions. The following operand values can be specified with the BYPASS operand to avoid termination:
ID
Indicates that SYSMODs should be processed even though their MODID verification checks have
failed.
IFREQ
Indicates that SYSMODs should be processed even though their conditional requisite conditions
(IFREQs) are not met.
PRE
Indicates that SYSMODs should be processed even though their PRE requisite conditions are not met.
REQ
Indicates that SYSMODs should be processed even though their REQ requisite conditions are not met.
XZIFREQ
Indicates that SYSMODs should be processed even though their cross-zone requisite conditions are
not met.
ACCEPT termination
Termination can be caused by any of the following conditions. For each condition, SMP/E issues an error
message:
• Termination of processing of any function SYSMOD.
• Two function SYSMODs are specified in the SELECT list and one specifies the other in the DELETE
operand of its ++VER statement.
• Two function SYSMODs are specified in the SELECT list, or are selected in mass mode, and one specifies
the other in the NPRE operand of its ++VER statement.
• A function SYSMOD specifying a previously accepted SYSMOD in the NPRE operand of its ++VER
statement is specified in the SELECT list.
• A function SYSMOD specified in the SELECT list has been deleted by a previously accepted SYSMOD;
that is, a SYSMOD entry on the distribution zone indicates that the SYSMOD has been deleted.
• A function SYSMOD specified in the SELECT list has been superseded by a previously accepted
SYSMOD; that is, a SYSMOD entry on the distribution zone indicates that the SYSMOD is superseded. A
service SYSMOD in the same situation is not processed, but the ACCEPT command is not terminated.
• A function SYSMOD is terminated before selection processing is complete. SMP/E issues a return code
of 12 and does not produce a SYSMOD status report.
++PTF(UZ00001).
++VER(Z038) FMID(GVT3100).
++IF FMID(GVT3101) THEN REQ(UZ00001).
++VER(Z038) FMID(GVT3101).
++MOD(IFTABCD) DISTLIB(AOS99).
If this PTF was first accepted when only function GVT3100 was installed, the first ++VER statement
would have been used and the conditional requisite data supplied on the ++IF would have been saved. If
GVT3101 is subsequently installed, the saved ++IF data would require reinstallation of this same PTF.
Note: Because SMP/E does not process a SYSMOD with more than one VER that appears to be valid,
GVT3101 must DELETE GVT3100 for this construction to work properly.
Output
The following reports may be produced during ACCEPT processing:
• Bypassed HOLD Reason Report
• Causer SYSMOD Summary report
• Cross-Zone Requisite SYSMOD report
• Deleted SYSMOD report
• File Allocation report
• Element Summary report
• JCLIN Cross-Reference report
• JCLIN Summary report
• MOVE/RENAME/DELETE report
• SYSMOD Regression report
• SYSMOD Status report
• Summary of Bypassed and Unresolved HOLD Reason Report
• Unresolved HOLD Reason Report
These reports are described in Chapter 34, “SMP/E reports,” on page 461.
Examples
The following examples are provided to help you use the ACCEPT command.
You can now use the following commands to install PTFs for function JXX1234 and for the functions in
FMIDSET TP:
The FORFMID operand indicates that only SYSMODs applicable to this function should be installed. The
FUNCTIONS operand indicates that HYY1234 can be installed. The PTFS operand indicates that only PTFs
for HYY1234 should be installed (no APARs or USERMODs are included). The GROUP operand indicates
that all requisite SYSMODs should also be accepted. These requisites can be applicable to other functions
but may not be APARs or USERMODs.
SMP/E accepts HYY1234 and any functions or PTFs applicable to HYY1234. Because of the
GROUPEXTEND operand, SMP/E also accepts all requisites for those SYSMODs, even if the requisites
are not applicable to HYY1234. If SMP/E cannot find a requisite, it looks for a SYSMOD that supersedes
the requisite and uses it to satisfy the requirement. Likewise, if a requisite is being held for an error reason
ID, SMP/E looks for a SYSMOD that supersedes the requisite, or that either satisfies or supersedes its
error reason ID, and uses it to satisfy the requirement.
After running this command, you should check the SYSMOD Status Report to see which SYSMODs would
have been installed if you had not specified CHECK. If the results of this trial run are acceptable, you can
run the commands again without the CHECK operand to actually install the SYSMODs.
By issuing these commands, you direct SMP/E to accept all the SYSMODs from service levels PUT0701
and PUT0702 that are applicable either to function SYSMOD HYY1234 or to one of the function SYSMODs
identified in the FMIDSET entry TP. Any other SYSMODs required to install those SYSMODs are also
installed. Both FUNCTIONS and PTFS SYSMODs are eligible for selection. In addition, SYSMODs UZ00001,
UZ00002, and UZ00003 are accepted, even though they are not part of PUT0701 or PUT0702, and they
may not belong to function SYSMOD HYY1234 or to FMIDSET entry TP. SMP/E does not install SYSMOD
UZ00010, UZ00011, or UZ00012, even if they are requisites for other eligible SYSMODs.
Suppose, instead, you have completed the necessary actions for only certain SYSMODs in service level
0701 (PTFs UZ12345 and UZ34567). You are ready to accept those specific held SYSMODs, but want the
other SYSMODs requiring actions to be held from ACCEPT processing. To limit the SYSMODs for which the
hold is bypassed, specify the desired SYSMOD IDs with the ACTION reason ID:
Processing
Generally, ACCEPT processing is very similar to APPLY processing, except that the distribution zone,
rather than the target zone, controls processing and the distribution libraries, rather than the target
libraries, are updated.
SYSMOD selection
This section outlines the process by which SYSMODs and the elements from the SYSMODs are selected.
Candidate selection
The SYSMOD selection operands of the ACCEPT command can be specified separately or in combination
in order to control the SYSMODs that SMP/E is to process. When specified separately, SMP/E selects only
those SYSMODs that meet the one selection criterion specified. When you specify them in combination,
SMP/E does the following checking to build the complete candidate list:
1. SMP/E assumes that normal SYSMOD processing is:
a. RECEIVE
b. APPLY
c. ACCEPT
Therefore, before SMP/E accepts a SYSMOD, it checks to make sure you have applied it. SMP/E does
this checking by looking at the applicable target zone to see if the SYSMOD has been installed there
(not by looking at any information in the global zone SYSMOD entry). A SYSMOD is considered installed
in the target zone if the entry indicates the SYSMOD is applied or superseded. The applicable target
zone is determined from the RELATED subentry in the distribution zone DZONE entry.
In some circumstances, you may want to accept a SYSMOD before it is applied—for example, when
preparing the distribution libraries before doing a full system generation. In this case, you must specify
the BYPASS(APPLYCHECK) operand, telling SMP/E not to check the target zone to make sure the
SYSMOD has been applied.
Note: The BYPASS(APPLYCHECK) function was previously provided by the NOAPPLY operand, which is
no longer supported.
2. SMP/E checks the global zone and the specified distribution zone to determine which SYSMODs in the
global zone and SMPPTS have not already been accepted into the distribution zone.
SMP/E checks each such SYSMOD to see if it meets the criteria of any additional selection operands.
a. If you specify the EXCLUDE operand, SMP/E makes sure the SYSMOD was not specified in the
exclude list.
b. If you specify one or more of the SYSMOD-type operands (that is, FUNCTIONS, PTFS, APARS, or
USERMODS), SMP/E checks to make sure the SYSMOD type was one of those specified.
If you do not specify a SYSMOD-type operand, the default is for SMP/E to process only PTF
SYSMODs.
c. If you specify the FORFMID operand, SMP/E makes sure that either the FMID value on one of the
++VER statements within the SYSMOD or the SYSMOD ID itself matches either an FMID specified in
FORFMID or one of the FMID values contained in a specified FMIDSET.
d. If you specify the SOURCEID operand, SMP/E makes sure one of the SOURCEIDs of the SYSMOD
matches a source ID that you have specified, either explicitly or implicitly, on the SOURCEID
operand.
e. If you specify the EXSRCID operand, SMP/E makes sure none of the SOURCEIDs of the SYSMOD
matches a source ID you have specified, either explicitly or implicitly, on the EXSRCID operand.
Note: If a given SYSMOD has multiple source IDs and you specify at least one of them implicitly
or explicitly on the SOURCEID operand, and another one explicitly or implicitly on the EXSRCID
operand, that SYSMOD is excluded from processing.
Similarly, if you specify a given source ID implicitly or explicitly on the EXSRCID operand and also
implicitly or explicitly on the SOURCEID operand, all SYSMODs with that source ID are excluded
from processing.
Each SYSMOD that satisfies all of these conditions is considered a candidate for the ACCEPT process.
In other words, by specifying the SYSMOD type operands, the FORFMID operand, or the SOURCEID
operand in combination, you cause SMP/E to select only SYSMODs that meet all the specified
conditions.
3. If you specify the SELECT operand, each SYSMOD specified in the select list is considered a candidate,
regardless of its SYSMOD type, FMID value, or SOURCEID value. That is, SELECT has an additive effect
on the SYSMOD selection. This is called select-mode processing. If you do not specify SELECT, this is
called mass-mode processing.
Note: If SELECT is the only operand you specify, only SYSMODs in the select list are processed.
4. If you specify the XZREQ operand, unsatisfied cross-zone requisites that are needed in the set-to zone
become candidates for installation. These SYSMODs are in addition to other SYSMODs that are chosen
due to other operands, such as FORFMID and SOURCEID. If FORFMID is specified, only cross-zone
requisites for the FMIDs specified on the FORFMID operand become candidates for installation. Other
operands on the command, such as EXSRCID, have no effect on which cross-zone requisites become
candidates for installation.
5. If you specify the GROUP or GROUPEXTEND operand, SMP/E checks each of the candidate SYSMODs
to determine whether they have any requisites that must also be accepted. SMP/E automatically
includes the following SYSMODs, as long as they are not specified on the EXCLUDE operand or
excluded by the EXSRCID operand:
• Any SYSMOD not already accepted and specified as a prerequisite (that is, specified in the ++VER
statement PRE operand) of one of the candidate SYSMODs
• Any SYSMOD not already accepted and specified as a corequisite (that is, specified in the ++VER
statement REQ operand) of one of the candidate SYSMODs
• Any SYSMOD not already accepted and specified as a conditional requisite (that is, specified in the
++IF statement REQ operand) of one of the candidate SYSMODs
• Any SYSMOD not already accepted and specified as a conditional requisite (CIFREQ subentry) in the
distribution zone SYSMOD entry for one of the candidate SYSMODs
If one of these requisites is held or not available and you specified GROUPEXTEND, SMP/E checks the
global zone for any SYSMODs that have been received and that either supersede the requisite, or that
match or supersede its HOLDERROR reason ID. The lowest-level SYSMOD found is then used to satisfy
the requisite.
• If you specified NOAPARS with GROUPEXTEND, SMP/E does not include APARs that resolve error
reason IDs for the held requisites.
• If you specified NOUSERMODS with GROUPEXTEND, SMP/E does not include USERMODs that resolve
error reason IDs for the held requisites.
Once a SYSMOD is added to the candidate list, it is eligible to be checked for additional requisites.
The FORFMID, SOURCEID, and SYSMOD type operands have no effect on SYSMODs brought in because
of the GROUP or GROUPEXTEND operand. The following example accepts all those SYSMODs with a
source ID of PUT0701 that are applicable to EBB1102, plus any additional SYSMODs that are required,
even though their source ID is not PUT0701 or their FMID is not EBB1102:
Applicability checking
Once the ACCEPT candidate list is completed, SMP/E performs additional checking to make sure the
selected SYSMODs are applicable to the system.
General applicability
SMP/E makes sure that each SYSMOD meets certain requirements before it is accepted by the system:
• Each SYSMOD must contain at least one ++VER statement whose SREL value matches one of the SREL
values for that distribution zone and whose FMID value (if present) names a function SYSMOD that
has been (or is being) accepted. Function SYSMODs having no ++VER statement FMID operand are
applicable if the SREL matches.
Each SYSMOD must have at most one ++VER statement whose SREL matches the SREL in the
distribution zone entry and whose FMID value exists in the distribution zone (or is being accepted)
and has not been superseded.
If a SYSMOD is found that contains multiple applicable ++VER statements, SMP/E cannot accept that
SYSMOD because SMP/E cannot determine which ++VER statement to use.
Note: If an FMID has been superseded or deleted, SMP/E does not consider it accepted. Therefore, a
SYSMOD can contain two ++VER statements that apply to two functions, one of which supersedes the
other.
• The SYSMOD must not have already been accepted successfully to the distribution zone.
– To reaccept a SYSMOD, you must specify the SYSMOD in the SELECT operand and include the REDO
operand on the ACCEPT command.
– SYSMODs partially accepted during an earlier invocation are considered eligible for processing
without any special action. These SYSMODs are identified by the ACCEPT ERROR indicator in their
distribution zone SYSMOD entry.
• The SYSMOD must not have been partially restored during a previous SMP/E RESTORE attempt. A
partially restored SYSMOD can be identified by the RESTORE ERROR indicator in its distribution zone
SYSMOD entry.
• The SYSMOD must not have been superseded by an earlier SYSMOD. If a SYSMOD is found to be
superseded by another SYSMOD being accepted, no elements are selected from the superseded
SYSMOD.
• The SYSMOD must not have been explicitly deleted by a previous SYSMOD.
Cross-zone requisites
Cross-zone requisites are very similar to conditional requisites. Like conditional requisites, they are also
caused by an ++IF statement. For a cross-zone requisite, however, the SYSMOD containing the ++IF exists
in one zone, but the function and SYSMODs identified by the FMID and REQ operands specified on the
++IF statement are in another zone.
Note: The NPRE operand is valid only in function SYSMODs and is used to specify one or more mutually
exclusive functions.
• For HOLDERROR exception data the reason ID is actually the number of the APAR that caused the
SYSMOD to be placed in exception status. As subsequent service is processed, the APAR will probably
be superseded by a PTF. When this happens, the exception data is resolved and the first PTF is
automatically processed. Therefore, it is generally not necessary to use the BYPASS operand to process
SYSMODs with error reason IDs.
During any mass installation of SYSMODs, it should be expected that some SYSMODs are not accepted,
because unresolved APARs are associated with them. During the installation of preventive service,
these SYSMODs should not be investigated further; they will be installed later when a subsequent
SYSMOD is produced that supersedes the reason ID associated with the exception data that is causing
them to be held.
During the installation either of corrective service (that is, installing a PTF or an APAR because of a
known problem in the system) or of a new function specifically requiring a SYSMOD, the reason IDs
associated with the HOLDERROR exception data should be taken as the first piece of data for research.
Research may provide a fix for the problem, in which case the SYSMOD and the fix can be accepted
concurrently. If a fix is not available, you can either wait for one, or accept the SYSMOD using the
appropriate BYPASS operand.
• For HOLDFIXCAT exception data, the reason ID is the number of the APAR that caused the SYSMOD to
be placed in the exception status. The APAR is associated with one or more fix categories. It is optional
whether the HOLDFIXCAT exception data affects processing for the held SYSMOD, based on the fix
categories of the HOLDFIXCAT and the fix categories of interest specified by the user. The fix categories
of interest are specified on the FIXCAT operand or in the FIXCAT subentry of the active OPTIONS entry.
If a fix category value on the HOLDFIXCAT exception matches any of those of interest to the user, then
the held SYSMOD is not accepted until the APAR reason ID is resolved. If there are no matching fix
categories, then the SYSMOD is not held for that HOLDFIXCAT exception.
For HOLDFIXCAT exceptions that must be resolved, the APAR is considered resolved when any one of
the following conditions is true:
– The SYSMOD named as the reason ID (the APAR) is already accepted or has been superseded by a
SYSMOD that is already accepted.
– The SYSMOD named as the reason ID (the APAR) is being accepted concurrently or is being
superseded by a SYSMOD that is being accepted concurrently.
– An applicable BYPASS operand of HOLDCLASS or HOLDFIXCAT is specified.
• For HOLDSYSTEM (internal) exception data the SYSMOD ID specified on the ++HOLD modification
control statement may be either
– the SYSMOD ID of the containing SYSMOD OR
– a SYSMOD ID of a SYSMOD superseded by the containing SYSMOD.
When it is the latter, the reason that the current SYSMOD contains the ++HOLD is because it was
originally in the SYSMOD whose SYSMOD ID appears on the ++HOLD and that SYSMOD has been
superseded by the current SYSMOD. The exception data is considered resolved if the SYSMOD specified
on the ++HOLD is already installed or is being superseded by another SYSMOD that is being installed
concurrently with the held SYSMOD. When this is the case, it is assumed that the user has already
addressed the reason for the hold.
When it is the former, the held SYSMOD should be accepted by use of the BYPASS(HOLDSYS(reason_id))
operand once the reason for the hold is addressed.
• For HOLDSYSTEM (external) exception data the associated reason ID is a 1- to 7-character string used
to identify some action that must be taken before or after a SYSMOD is installed. System reason IDs are
not SYSMOD IDs and are not specified in the supersede list of a SYSMOD. Therefore, SMP/E does not
automatically release them.
SYSMODs held in this manner should be accepted by use of the BYPASS(HOLDSYS(reason_id)) operand.
If you were to remove the system reason ID by using the ++RELEASE statement, you would then be able
to install the SYSMOD, but you would also lose the information about any special processing required in
order to accept that SYSMOD on another system.
• For HOLDUSER exception data the associated reason ID is a 1-to 7-character string meaningful to the
user. User reason IDs are not SYSMOD IDs and are not specified in the supersede list of a SYSMOD.
Therefore, SMP/E does not automatically release them.
SYSMODs held in this manner should be accepted by use of the BYPASS(HOLDUSER) operand. If you
were to remove the hold associated with user reason ID by using the ++RELEASE statement, you would
then be able to install the SYSMOD, but you would also lose sight of the fact the SYSMOD has some
special significance to the you, the user.
SYSMOD installation
After determining which SYSMODs are to be accepted and which elements should be selected from each
SYSMOD, SMP/E begins actually installing these elements by performing the following tasks:
1. Determine the order in which the SYSMODs should be processed.
2. Perform delete processing for any SYSMODs in which the DELETE operand is specified on the ++VER
statement.
3. Move specified elements, and delete or rename specified LMOD entries if appropriate.
Note: Items 3 and 4 are combined and are done as each SYSMOD is processed.
4. Process any inline JCLIN.
Note: Inline JCLIN is processed at ACCEPT time only if ACCJCLIN is set in the DLIBZONE entry.
5. Call system utilities to install the selected elements.
6. Update the applicable distribution zone entries.
7. Produce summary reports identifying all processing done.
The following sections describe each of these tasks in greater detail.
Deleted SYSMODs
A function SYSMOD can delete another function by naming the function to be deleted as an operand
of the ++VER DELETE operand. SMP/E deletes the function and all FUNCTIONs, PTFs, APARs, and
USERMODs dependent on the deleted function. The functions specifically named in the DELETE operand
list are considered explicitly deleted SYSMODs; all SYSMODs deleted because of their dependency on the
explicitly deleted SYSMODs are termed implicitly deleted SYSMODs.
When one function SYSMOD deletes another, SMP/E attempts to remove all information on the deleted
SYSMOD from the distribution zone. SMP/E also removes from the distribution libraries all elements that
are currently owned by the deleted function SYSMOD. The following processing is done:
1. SMP/E determines whether there are any function SYSMODs in the hierarchy of the function SYSMOD
being deleted, and considers those function SYSMODs also eligible for delete processing.
2. SMP/E deletes all SYSMODs that have an FMID value equal to one of the function SYSMODs being
deleted.
3. SMP/E identifies all the elements that are currently owned by a function SYSMOD that is to be deleted.
4. SMP/E deletes from the distribution libraries all the elements of the SYSMODs to be deleted. If the
elements have been successfully deleted, SMP/E deletes the entries for them from the distribution
zone.
5. If the distribution zone contains an LMOD entry for a load module composed entirely of modules that
are deleted, the LMOD entry is deleted.
6. If the load module contains modules not being deleted, the LMOD entry is not deleted.
However, for each module deleted from the load module, SMP/E adds a MODDEL subentry for the
module to the LMOD entry. MODDEL subentries document the connection between the deleted
modules and the load module. If any of these deleted modules are ever reintroduced, an LMOD
subentry is added to the MOD entries, and the MODDEL subentries are removed from the LMOD entry.
7. The distribution zone SYSMOD entries for all implicitly deleted SYSMODs are deleted. A distribution
zone SYSMOD entry is created for each explicitly deleted SYSMOD. This entry has a DELBY subentry
naming the function causing the deletion. The SYSMOD entries for the explicitly deleted SYSMODs
prevent the deleted function SYSMODs from being reprocessed by ACCEPT.
Note: Some functions may both delete and supersede another function. In this case, the SYSMOD
entry contains a SUPBY subentry instead a DELBY subentry. This allows SYSMODs naming the deleted
function as a requisite to be installed nevertheless.
The result of this process is that all SYSMODs within the hierarchy of the specified function SYSMOD are
deleted.
In the example in Figure 2 on page 35, function SYSMODs HDE1203, HDE1303, and HDE1403, and
service SYSMODs UZ00009, UZ00010 and UZ00004 are deleted, because DELETE(HDE1203) is specified
on the ++VER statement.
CIFREQ subentries in the SYSMOD entry for a function that is deleted (either explicitly or implicitly) are
retained in the SYSMOD entry along with the DELBY subentry.
Thus, for the example in Figure 2 on page 35, when function HDE2000 is applied, CIFREQ subentries
in the SYSMOD entry for function HDE1203 are retained, as are any CIFREQ subentries in the SYSMOD
entries for functions HDE1303 and HDE1403. Any CIFREQ subentries for conditional requisites specified
by the deleted SYSMODs are also retained in the appropriate SYSMOD entries.
Note: SMP/E assumes that when a function is deleted, the deleting function replaces all the required
elements of the deleted function. Although you can build a function SYSMOD that does nothing but delete
another function, it is your responsibility to make sure you still have a functionally complete system after
the product has been deleted. One item commonly overlooked is the IHASUxx macros, which are used to
indicate whether an SU has been installed. If you delete a product, thus causing its IHASUxx macro to be
deleted, and do not replace that macro with your own version, indicating that the SU is not installed, you
may lose the system generation capability for that system, because system generation requires that all
IHASUxx macros be present.
During ACCEPT processing, when a function is deleted from a distribution zone by another function, its
FMID is not removed from the FMID list in the global zone. This is because the deleted function may still
be applied in other target zones or accepted in other distribution zones.
Inline JCLIN
Inline JCLIN can be saved for products without SYSGEN support to make building a new system easier.
Inline JCLIN data for a SYSMOD is supplied following the ++JCLIN statement. In order to initialize the
distribution zone, JCLIN is processed before elements. Later, when a system is built using the existing
distribution libraries and the GENERATE command, this JCLIN data can be copied into the target zone.
This eliminates the need for a separate step to obtain JCLIN information for products without SYSGEN
support.
Remember the following restrictions when you plan to save inline JCLIN at ACCEPT time:
• Before using SMP/E to build the distribution libraries, you must set the ACCJCLIN indicator in the
associated DLIBZONE entry. This tells SMP/E to save inline JCLIN in the distribution zone. If ACCJCLIN
was not set when you first built the distribution libraries, it should not be set until the next time the
libraries are built.
• After you install a product and set the ACCJCLIN indicator, you must keep ACCJCLIN set in the
DLIBZONE entry. This makes sure that any time you accept service for that product, its JCLIN is updated
in the distribution zone.
• The only way to save inline JCLIN in the distribution zone is through the ACCEPT command. The JCLIN
command does not update the distribution zone.
• Saving JCLIN at ACCEPT does not take the place of a stage 1 SYSGEN for products that do have SYSGEN
support.
• Because additional data is being saved in the distribution zone, the CSI data set containing the
distribution zone may require more DASD space.
Note:
1. Inline JCLIN is not processed for superseded or deleted SYSMODs.
2. Inline JCLIN does not cause SMP/E to update the distribution libraries; only the entries in the
target and distribution zones are updated. These libraries are updated when SMP/E processes the
elements in the SYSMOD. The element statements in the SYSMOD determine which elements should
be installed.
The NOJCLIN operand on the ACCEPT command prevents the processing of inline JCLIN. NOJCLIN can be
used if the JCLIN contains data that would overlay user-modified entries in the distribution zone.
If you specify NOJCLIN without an operand list, inline JCLIN is not processed for any SYSMOD that was
selected and contained a ++JCLIN statement. If you specify NOJCLIN with an operand list, inline JCLIN is
not processed for the specified SYSMODs.
For more information about JCLIN processing, see Chapter 9, “The JCLIN command,” on page 153.
Moving elements
Macros, modules, and source can be moved from one distribution library to another by use of the ++MOVE
statement. This processing is done before element selection.
The ++MOVE statement is further described in the "SMP/E Modification Control Statements" section in
z/OS SMP/E Reference.
Element selection
SMP/E uses the element statements provided in a SYSMOD to determine which elements should be
installed in the distribution libraries. The selection of elements from a SYSMOD is based on relationships
among SYSMODs being installed, other SYSMODs already installed, and modification identifiers of the
corresponding elements installed in the distribution libraries. Three modification identifiers are kept for
each element:
• FMID (function modification identifier): The FMID of an element is the function-type SYSMOD that owns
the element. Generally, the FMID of an element is established (and later changed) by the installation of
a function SYSMOD. The FMID of the element is the function SYSMOD that installed the element in the
distribution libraries.
• RMID (replacement modification identifier): The RMID of an element is the last SYSMOD that replaced
the element (or caused the FMID of that element to change). The RMID of an element is established by
the SYSMOD that first introduces the element to the distribution libraries. The RMID of an element is
changed by the installation of a SYSMOD that supplies a replacement for the element. An element can
be replaced with an element defined by replacement , or with a module resulting from an assembly.
• UMID (update modification identifier): The UMIDs of an element are the set of SYSMODs that have
installed updates to the distribution library element. A UMID is added to that set for each SYSMOD that
installs an update to the element. Whenever a new replacement for the element is accepted, the set
of UMIDs is cleared to start anew with subsequent updates installed for the new replacement. Element
updates are ++ZAPs, ++MACUPDs, ++SRCUPDs, and ++JARUPDs.
Note: Because data elements, hierarchical file system elements, and program elements can only be
replaced and cannot be updated, they do not have UMIDs.
The purpose of element selection is to make sure that the correct functional level of each element is
selected and that no service is inadvertently removed from the distribution libraries.
Element selection in SMP/E is divided into three cases:
• The FMID of the SYSMOD being installed matches the FMID of the element in the distribution libraries.
• The FMID of the SYSMOD being installed differs from the FMID of the element on the distribution
libraries.
• A function SYSMOD is reinstalled.
The following topics describe processing for each case.
All elements
The SYSMOD being installed must specify the RMID of the associated distribution library element on the
PRE or SUP operand of its ++VER MCS. If the RMID of the distribution library element is the same as its
FMID, the element has not been replaced by any SYSMOD. Therefore, the SYSMOD being installed need
not specify the RMID value in the PRE or SUP operand.
Replacement elements
The SYSMOD being installed must be a prerequisite for, or must supersede, all UMIDs associated with the
distribution library element.
Assemblies resulting from ++SRC/++SRCUPD and ++MAC/++MACUPD elements are considered to be
replacement modules; the SYSMOD being installed must specify on the PRE or SUP operand all UMIDs of
the corresponding distribution library modules to be replaced by the assembly. No exception is made for a
SYSMOD that does not specify, on the PRE or SUP operand, all UMIDs associated with modules that have
been assembled, because any UMIDs associated with the module are ZAPs that would be overlaid by a
new assembly.
If the SYSMOD being processed does not specify each UMID of the element on the PRE or SUP operand
of the ++VER MCS, SMP/E does not accept that SYSMOD, because doing so would regress the service
supplied by the SYSMODs that the UMIDs represent. If you want to allow the regression to occur, you can
use the BYPASS(ID) operand on the ACCEPT command. The MODID check condition is then reported as a
warning, and the elements are installed on the distribution libraries.
Update elements
When processing ++SRC/++SRCUPD, and ++MAC/ +MACUPD elements, it is assumed that previous
updates are still present and are incorporated with the current update. Therefore, a SYSMOD need not
state a relationship (PRE or SUP) to a previous update.
The SYSMOD being installed need not specify each UMID of the element on the PRE or SUP operand
of the ++VER MCS. If any element UMIDs in the distribution library are not specified in the SUP or PRE
operands, a MODID check warning condition is raised and is reported to the user.
The MODID check warning does not result in the termination of the SYSMOD being installed, and the
update is installed on the distribution library. The warning is given because SMP/E is unable to determine
with certainty that the two modifications have a relationship or that there is an intersection. Thus, it is the
responsibility of the developer or the service team (that is, whoever supplies the update type SYSMOD) to
make sure that this SYSMOD specifies the correct relationships with all previous SYSMODs.
When processing ++JAR/++JARUPD elements, the SYSMOD must identify as a prerequisite or supersede
the SYSMOD that last replaced the most recently selected ++JAR element (the RMID for the element).
Therefore, the SYSMOD must specify as a PRE or SUP, the SYSMOD that last supplied a ++JAR for
the element. In addition, the SYSMOD supplying the ++JAR/++JARUPD elements must identify as a
prerequisite or supersede all SYSMODs which have previously updated the most recently selected ++JAR
element (the UMID for the element). In other words, the current SYSMOD must specify as a PRE or SUP,
all SYSMODs that have supplied ++JARUPDs for the element since it was last replaced.
FMIDs differ
In this case, SMP/E is dealing with elements belonging to different functions, and element selection is
based on functional relationships expressed by means of FMID and VERSION. Elements may be excluded
(that is, not selected), and processing of the SYSMOD continues under the assumption that a functionally
higher version of the element is already installed on the distribution library.
An element is excluded from the SYSMOD being installed unless one of the following conditions is met:
• The function SYSMOD being installed names the FMID of the distribution library element in the ++VER
FMID operand. In this case, the function being installed is superior to the function that owns the
distribution library element; therefore, the element is selected.
• The modification control statement associated with the element from the SYSMOD being installed has
a VERSION operand, and the FMID of the distribution library element is named in the VERSION list. In
this case, the element from the SYSMOD being installed is considered to be functionally superior to the
distribution library element, and it is selected.
If there is no VERSION operand on the message control statement of an element, the SYSMOD IDs
named in the VERSION operand on the ++VER are used as previously described.
In this situation, SMP/E may be dealing either with a function SYSMOD or with a nonfunction SYSMOD
that is changing the functional ownership (FMID) of the elements.
Note: If a SYSMOD containing an element update (++SRCUPD, ++MACUPD, ++ZAP or ++JARUPD)
attempts to change the ownership (FMID) of the element (with the VERSION operand), the SYSMOD
cannot be installed.
When an element is selected, its FMID becomes that of the SYSMOD from which it is selected. No further
MODID checking is done for these elements. SYSMODs are constructed so that when the functional
ownership of a module changes, either the SYSMOD changing the ownership or data stored in the
distribution zone SYSMOD entries (the CIFREQ data) contains sufficient information to prevent any service
or functional regressions.
Reinstalling a function
Element selection gets more complicated only for function SYSMODs that are being reinstalled and have
elements that intersect with corresponding elements having the same FMID as themselves (see “FMIDs
match: MODID verification” on page 37).
The processing for this situation proceeds as in “FMIDs match: MODID verification” on page 37. When a
MODID check error condition is detected, however, SMP/E checks to determine whether the service level
of the distribution library element is higher than that of the element from the SYSMOD being reinstalled.
If so, the element from the SYSMOD being reinstalled is not selected, and processing of the SYSMOD
continues. If not, the SYSMOD is terminated with a MODID check error.
Element installation
Once the proper SYSMODs have been selected and the proper functional and service level of each
element has been determined, SMP/E begins the process of calling utility programs to get the elements
installed in the appropriate distribution libraries. The following sections describe the process of installing
each of the element types supported by SMP/E.
Macro replacements
One of the steps in actually updating the distribution libraries is to install macro replacements. Multiple
SYSMODs can be accepted, each of which may contain a replacement for the same macro.
When two or more SYSMODs replacing the same macro are accepted concurrently, SMP/E determines
the version at the highest function and service level. For a full explanation of how SMP/E determines the
functional and service level of an element, see “Element selection” on page 37.
SMP/E then schedules the actual update of the distribution macro library. The library to be updated is
determined from the DISTLIB information in the distribution zone MAC entry. (For further information
about the initial setting of the MAC DISTLIB, see “Usage notes” on page 21.) The actual update is done by
calling either the copy utility or the update utility.
• The copy utility is used in these cases:
– The macro was packaged in a relative file (the RELFILE operand was specified).
– The macro was packaged in a text library (the TXLIB operand was specified) and it had no alias
names (that is, no MALIAS names are in the distribution zone MAC entry and no MALIAS operands are
on the ++MAC statement).
– The macro was packaged inline, it had no alias name, and the SSI operand was not specified.
The SSI operand is ignored when TXLIB or RELFILE is specified.
• The update utility is called in these cases:
– The macro was packaged in a text library, and the element had an alias name.
– The macro was packaged inline and (1) it had an alias name, or (2) the SSI operand was specified.
Upon return from either utility, SMP/E issues a message indicating whether the macro has been replaced
successfully.
Macro updates
After all the macro replacements have been done, any macro updates present can be scheduled. Again,
multiple SYSMODs may contain updates for the same macro. When two or more updates to the same
macro are being processed concurrently, the text from each is merged. Looking at the sequence numbers
in columns 73 to 80, SMP/E processes the updates in the order expressed by the PRE operands on the
++VER statements, by internal defaults, or both, as follows:
• If SMP/E finds a processing order relationship between all of the SYSMODs being processed, the merge
occurs according to that order.
• If any of the SYSMODs being processed do not have a processing order relationship with other
SYSMODs that do have a processing order, the updates from the unrelated SYSMODs are merged after
the updates from SYSMODs that do have a processing order relationship.
• If SMP/E cannot determine the processing order of the SYSMODs, it merges the updates by SYSMOD
type: PTFs first, APARs second, and USERMODs third. Within each type, there is no specified order.
SMP/E then calls the update utility to update the distribution library.
The library to be updated is determined from the DISTLIB information in the MAC entry for the
distribution zone. For further information about the initial setting of the MAC DISTLIB, see “Usage notes”
on page 21. Upon return from the update utility, SMP/E issues a message telling whether the update was
successful.
Source replacements
Another step in actually updating the distribution libraries is to install source replacements. Multiple
SYSMODs can be accepted, each of which can contain a replacement for the same source.
When two or more SYSMODs replacing the same source are accepted concurrently, SMP/E determines
which version is at the highest function and service level. For a full explanation of how SMP/E does this,
see “Element selection” on page 37.
SMP/E then schedules the actual update of the distribution source library. The library to be updated is
determined from the DISTLIB information in the distribution zone SRC entry. (For further information
about the initial setting of the SRC DISTLIB, see “Usage notes” on page 21.) The actual update is done by
calling either the update utility or the copy utility.
• The copy utility is used if the source replacement was packaged, either in a text library (that is, the
TXLIB operand was specified) or in a RELFILE (that is, the RELFILE operand was specified). The SSI
operand is ignored when TXLIB or RELFILE is specified.
• The update utility is called if the source replacement was packaged inline and the SSI operand was
specified.
Upon return from either utility, SMP/E issues a message telling whether the source was replaced
successfully.
Source updates
After all the source replacements have been done, any source updates present can be scheduled. Again,
multiple SYSMODs can contain updates for the same source. When two or more updates to the same
source are processed concurrently, the text from each is merged. Looking at the sequence numbers in
columns 73 to 80, SMP/E processes the updates in the order expressed by the PRE operands on the
++VER statements, by internal defaults, or both, as follows:
• If SMP/E finds a processing order relationship between all of the SYSMODs being processed, the merge
occurs according to that order.
• If any of the SYSMODs being processed do not have a processing order relationship with other
SYSMODs that do have a processing order, the updates from the unrelated SYSMODs are merged after
the updates from SYSMODs that do have a processing order relationship.
• If SMP/E cannot determine the processing order of the SYSMODs, it merges the updates by SYSMOD
type: PTFs first, APARs second, and USERMODs third. Within each type, there is no specified order.
SMP/E then calls the update utility to update the distribution library. The library to be updated is
determined from the DISTLIB information in the distribution zone SRC entry. (For further information
about the initial setting of the SRC DISTLIB, see “Usage notes” on page 21.) Upon return from the update
utility, SMP/E issues a message telling whether the update was successful.
Assemblies
This section discusses these topics:
• Assembling source
• Assemblies caused by macros
• Reusing previous assemblies
Assembling source
A SYSMOD may supply both the source (++SRC/++SRCUPD) and an object deck (++MOD) for an element.
SMP/E determines whether the object deck can simply be link-edited into the distribution library or
whether the source must be assembled. This determination is made by considering the following
questions:
• Was ASSEM specified on the ACCEPT command?
• Are there any updates to the source that the SYSMOD supplying the object does not know about (UMIDs
in the distribution zone SRC entry)?
• Has another SYSMOD assembled the module without this SYSMOD knowing about it (RMID of the
distribution zone MOD entry for the module to be assembled)?
• Is the ASSEMBLE indicator set for the corresponding MOD?
If the answer to any of these questions is yes, the module is assembled if SMP/E can determine where the
resultant assembled object module should go.
SMP/E knows where to put the assembled object module if there is a distribution zone MOD entry and
a resultant object module. That is, the DISTLIB is not SYSPUNCH. (For more information on how SMP/E
processes the object module after assembly, see “Module replacements” on page 43.)
Module replacements
The modules (++MODs and assemblies from ++SRCs) selected from a SYSMOD are link-edited directly
into a distribution library. From the appropriate distribution zone MOD entry, SMP/E determines:
• The distribution library (based on the DISTLIB subentry)
• The link-edit characteristics (based on the LEPARM subentry)
Because there is a one-for-one correspondence between the object module being replaced and the
members in the distribution library, there is no need to save any link-edit control cards in the distribution
zone. When SMP/E link-edits a module into the distribution library, no link-edit include card is generated
for the version of the module already there. Therefore, when you replace a distribution library module, you
must provide SMP/E with the replacement pieces for all the parts of that module; that is, if the module
contains multiple CSECTs, the SYSMOD must contain all the CSECTs, or the missing ones will be lost.
If the module is packaged in a link library (LKLIB) or a relative file (RELFILE), SMP/E copies the module to
the distribution library. Any aliases specified for such a module must exist in the LKLIB or relative file in
order to be copied.
If the module or its link-edit attributes are not found in any of the places indicated, the RENT, REUS, and
REFR attributes are used.
The parameters passed to the link-edit utility are the attributes determined in the preceding steps, plus
the link-edit utility parameters specified in the UTILITY entry for link-edit processing.
Note: SMP/E provides for special processing for any module with a distribution library of SYSPUNCH. This
indicates to SMP/E that the module was assembled during the system generation process and that the
assembly was stored in a temporary data set, the SYSPUNCH data set. After being used during the system
generation process, that data set is deleted. Therefore, during accept, when SMP/E sees any module going
to SYSPUNCH, no processing is done for that module.
Module updates
For each ++ZAP element within a SYSMOD, SMP/E determines the distribution library for the module and
then attempts to install the superzap to that library.
When installing the ZAP, SMP/E performs two passes: the first to process the VER control cards, and the
second to process the REP control cards. The REP pass is performed only if the VER pass for the module is
successful.
Note: For a list of data element types, refer to the "Data element " section in z/OS SMP/E Reference.
The actual update to the library is done by either SMP/E or the copy utility.
• SMP/E updates the library in these cases:
– The data element was packaged inline and has been transformed by GIMDTS. All control information
is removed, the transformed data element is changed back to its original format, and the distribution
library is updated with the element.
– The data element must be reformatted to be compatible with the distribution library. For more
information on reformatting data elements, see “Reformatting data elements” on page 98.
– The distribution library is a sequential data set.
• The copy utility updates the library in all other cases. A COPY control statement is passed to the copy
utility.
Following are the steps required to process one or more ++JARUPDs for a single JAR file:
1. Create the primary temporary work directory in the SMPWKDIR directory for processing all ++JAR and
++JARUPD elements. If the SMPWKDIR directory is not specified on a DD statement or DDDEF entry,
SMP/E will use the /tmp directory.
2. Copy the JAR file to be updated into the primary temporary work directory.
3. Create an update subdirectory for processing the ++JARUPD elements for this JAR file.
4. Copy a ++JARUPD element to the primary temporary work directory.
5. Extract the component files from the ++JARUPD element into the update subdirectory.
6. Repeat steps 4 through 5 for each ++JARUPD to be processed for this JAR file.
7. Update the JAR file with the component files from all the ++JARUPD elements.
8. Cleanup the ++JARUPD elements and all component files in the update subdirectory.
9. Copy the updated JAR file into its distribution directory.
– If the SYSMOD that the selected version of the module came from contained the CSECT operand, the
CSECT names there are either added to the distribution zone MOD entry (if no CSECT information was
already there) or are used to replace the existing list of CSECT names in the distribution zone MOD
entry.
– If the SYSMOD that the selected version of the module came from did not contain the CSECT
operand, SMP/E determines whether any other SYSMOD applicable to the same FMID was also being
accepted. If so, and if any of those SYSMODs contained the CSECT operand, the CSECT information
from the SYSMOD at the highest service level is used.
Superseded SYSMODs
When one SYSMOD is superseded by another, SMP/E makes a record of this by adding the name of the
superseding SYSMOD to the entry for the superseded SYSMOD.
• When there is only one superseding SYSMOD, its name is saved in the LASTSUP subentry.
• When there are several superseding SYSMODs, the name of the last one is saved in the LASTSUP
subentry, and a complete list is saved in the SUPBY subentry.
If the superseded SYSMOD has not been previously accepted, its distribution zone SYSMOD entry
contains only the LASTSUP information. Such a SYSMOD entry is called a "dummy entry". Because the
superseded SYSMOD had not been previously accepted, SMP/E does not know what type of SYSMOD it
was (function, PTF, APAR, or USERMOD).
Deleted SYSMODs
When one SYSMOD is deleted by another, SMP/E makes a record of this by adding the name of the
deleting SYSMOD to the DELBY subentry of the deleted SYSMOD. If the deleted SYSMOD has not been
previously accepted, its distribution zone SYSMOD entry contains only the DELBY information. Such
a SYSMOD entry is called a "dummy entry". Although the deleted SYSMOD had not been previously
accepted, SMP/E assumes it was a function SYSMOD, because only function SYSMODs can be explicitly
deleted.
Cross-zones
Read with shared enqueue.
Global zone
Read with shared enqueue.
SMPPTS
Read with shared enqueue.
Target zone
Read with shared enqueue.
DLIB zone
Update with exclusive enqueue.
3. Element selection
SMPPTS
Read with shared enqueue.
DLIB zone
Update with exclusive enqueue.
4. Utility calling
DLIB zone
Update with exclusive enqueue.
5. Cross-zone requisite reporting phase
Set-to zone
Update with exclusive enqueue.
Cross-zones
Read with shared enqueue.
Global zone
Read with shared enqueue.
6. Global zone update
Global zone
Update with exclusive enqueue.
SMPPTS
Update with exclusive enqueue.
DLIB zone
Update with exclusive enqueue.
7. Termination
All resources are freed.
The APPLY command is used to cause SMP/E to install the elements supplied by a SYSMOD into the
operating (or target) system libraries. The APPLY process:
• Selects SYSMODs present in the global zone and applicable to the specified target system
• Makes sure all other required SYSMODs have either been applied or are being applied concurrently
• Selects the elements from those SYSMODs on the basis of the functional and service level of those
elements in the target system and the relationship between the SYSMODs being installed, making sure
that the installation of another SYSMOD does not cause any current service to regress
• Calls system utilities to install the elements into the target system libraries
• Records the functional and service levels of the new elements in the target zone
• Records the application of the SYSMOD in the target zone
• Performs cross-zone processing
• Updates the SYSMOD entries in the global zone
• Creates, when library change file recording is in effect, records that reflect any successful utility work
performed by APPLY processing to update target libraries. For more information about library change
file recording, see z/OS SMP/E Reference.
The APPLY process is controlled by:
• The information in the target zone reflecting the status and structure of the target system libraries
• Information on the SYSMODs indicating their applicability
• Information in the OPTIONS and UTILITY entries
• Operands on the user's APPLY command
Syntax
APPLY Command
APPLY
,
SELECT( sysmod_id )
fmidset REDO
PTFS
, APARS
FUNCTIONS
EXCLUDE( sysmod_id )
USERMODS
XZREQ XZGROUP( )
,
zoneset
zonename
, ,
, ASSEM
SOURCEID( source_id )
CHECK
COMPRESS (ALL)
,
( ddname )
FIXCAT( )
category
GROUP
GROUPEXTEND
,
( NOAPARS )
NOUSERMODS
JCLINREPORT
NOJCLINREPORT NOJCLIN
,
( sysmod_id )
RETRY(YES)
•
RETRY(NO) REUSE ,
RC( command=rc )
BYPASS Options
HOLDCLASS( class_id )
HOLDERROR
,
( reason_id )
HOLDFIXCAT
,
( )
reason_id
HOLDSYSTEM
,
( Reason ID )
,
( sysmod_id )
HOLDUSER
,
( reason_id )
ID
IFREQ
PRE
REQ
XZIFREQ
,
( sysmod_id )
(sysmod_id,zonename )
AO
DB2BIND
DDDEF
DELETE
DEP
DOC
DOWNLD
EC
ENH
EXIT
EXRF
FULLGEN
IOGEN
IPL
MSGSKEL
MULTSYS
RESTART
Operands
APARS
indicates that all eligible APARs should be applied.
Note:
1. APARS can also be specified as APAR.
2. If APARS is specified along with SELECT, all eligible APARs are included in addition to the
SYSMODs specified on SELECT.
3. If APARS is specified along with SOURCEID, all APARs associated with the specified source IDs are
included.
ASSEM
indicates that if any SYSMOD contains both source code and object code for the same module, the
source code should be assembled and should replace the object code.
BYPASS
You can specify any of these options:
HOLDCLASS
HOLDERROR
HOLDFIXCAT
HOLDSYSTEM
HOLDUSER
ID
IFREQ
PRE
REQ
XZIFREQ
XZIFREQ(list)
Note: If you specify both BYPASS and GROUPEXTEND, SMP/E does not include superseding SYSMODs
needed to take the place of requisites or error reason IDs that have been bypassed.
During CHECK processing, if you want to see whether any superseding SYSMODs are available for
requisites that have been bypassed, specify GROUPEXTEND without BYPASS.
BYPASS(HOLDCLASS(value,…))
indicates that exception SYSMODs associated with the specified class names should not be held.
The list of class names is required.
These are the hold classes you can specify:
Class
Explanation
ERREL
The SYSMOD is held for an error reason ID but should be installed anyway. IBM has
determined that the problem the SYSMOD resolves is significantly more critical than the error
reflected by the holding APAR.
HIPER
The SYSMOD is held with a hold class of HIPER (High Impact)
PE
The SYSMOD is held with a hold class of "PTF in Error".
UCLREL
UCLIN needed for the SYSMOD has been handled by IBM and no longer requires your
attention.
YR2000
Identifies PTFs that provide Year 2000 function, or fix a Year 2000-related problem.
BYPASS(HOLDERROR)
indicates that exception SYSMODs associated with the specified error reason IDs should not be
held. The list of reason IDs is optional.
If you include a list of reason IDs, only the ones you specify are bypassed. If you do not include a
list, all error reason IDs are bypassed.
Note: HOLDERROR can also be specified as HOLDERR.
BYPASS(HOLDFIXCAT)
indicates that held SYSMODs associated with the specified fix category reason IDs should not be
held. The list of reason IDs is optional. If a list of reason IDs is included, only the ones specified
are bypassed. If a list is not included, all fix category reason IDs are bypassed.
BYPASS(HOLDSYSTEM)
indicates that exception SYSMODs associated with the specified system reason IDs should not
be held. The list of reason IDs is optional, as is the list of SYSMOD IDs for a particular reason
ID. Generally, you should specify BYPASS(HOLDSYSTEM) on all APPLY CHECK commands, and
BYPASS(HOLDSYSTEM(reason_id,…)) on all APPLY commands for all system reason IDs for
which appropriate action has been (or will be) taken.
How you specify the reason IDs determines which system reason IDs are bypassed. Make sure the
appropriate action has been taken for all SYSMODs whose reason IDs are to be bypassed.
• If you do not include a list of reason IDs, all system reason IDs are bypassed.
• If you include a list of reason IDs without a list of SYSMOD IDs, all the SYSMODs with the
specified reason IDs are bypassed.
If you include a list of SYSMOD IDs for a particular reason ID, that reason ID is bypassed only
for the specified SYSMODs. Other SYSMODs held for that reason remain held, unless the hold is
released by some other BYPASS operand (such as CLASS).
Note: HOLDSYSTEM can also be specified as HOLDSYS.
These are the system reason IDs currently used by IBM:
ID
Explanation
ACTION
The SYSMOD needs special handling before or during APPLY processing, ACCEPT processing,
or both.
AO
The SYSMOD may require action to change automated operations procedures and associated
data sets and user exits in products or in customer applications. The PTF cover letter
describes any changes (such as to operator message text, operator command syntax, or
expected actions for operator messages and commands) that can affect automation routines.
DB2BIND
A DB2 application REBIND is required for the SYSMOD to become effective.
DDDEF
Data set changes or additions as required.
DELETE
The SYSMOD contains a ++DELETE MCS, which deletes a load module from the system.
DEP
The SYSMOD has a software dependency.
DOC
The SYSMOD has a documentation change that should be read before the SYSMOD is installed.
DOWNLD
Code that is shipped with maintenance that needs to be downloaded.
DYNACT
The changes supplied by the SYSMOD may be activated dynamically without requiring an
IPL. The HOLD statement describes the instructions required for dynamic activation. If those
instructions are not followed, then an IPL is required for the SYSMOD to take effect.
EC
The SYSMOD needs a related engineering change.
ENH
The SYSMOD contains an enhancement, new option or function. The HOLD statement provides
information to the user regarding the implementation and use of the enhancement.
EXIT
The SYSMOD contains changes that may affect a user exit. For example, the interface for an
exit may be changed, an exit may need to be reassembled, or a sample exit may be changed.
EXRF
The SYSMOD must be installed in both the active and the alternative Extended Recovery
Facility (XRF) systems at the same time to maintain system compatibility. (If you are not
running XRF, you should bypass this reason ID.)
FULLGEN
The SYSMOD needs a complete system or subsystem generation to take effect.
IOGEN
The SYSMOD needs a system or subsystem I/O generation to take effect.
IPL
The SYSMOD requires an IPL to become effective. For example, the SYSMOD may contain
changes to LPA or NUCLEUS, the changes may require a CLPA, or a failure to perform an IPL
might lead to catastrophic results, such as could be caused by activation of a partial fix.
Note: If you plan to perform an IPL with CLPA after the SYSMOD has been applied, then no
further investigation of the HOLD is required; simply bypass the IPL reason ID. However, if you
are not planning to perform an IPL with CLPA, then the details of the HOLD statement must be
investigated to determine what kind of actions are required to activate the SYSMOD.
MSGSKEL
This SYSMOD contains message changes that must be compiled for translated versions of the
message changes to become operational on extended TSO consoles.
If you want to use translated versions of the messages, you must run the message compiler
once for the library containing the English message outlines, and once for each additional
language you want to be available on your system. For details, see z/OS MVS Planning:
Operations.
If you want to use only the English version of the messages, you do not need to run the
message compiler. You should bypass this reason ID.
MULTSYS
Identifies fixes that need to be applied to multiple systems, in one of three cases:
preconditioning, coexistence, or exploitation.
RESTART
To become effective, the SYSMOD requires a special subsystem restart operation. The HOLD
statement contains information regarding the required restart actions.
BYPASS(HOLDUSER)
indicates that exception SYSMODs associated with the specified user reason IDs should not be
held. The list of reason IDs is optional.
If you include a list of reason IDs, only the ones you specify are bypassed. If you do not include a
list, all user reason IDs are bypassed.
BYPASS(ID)
indicates that SMP/E should ignore any errors it detects when checking the SYSMOD's RMID
and UMIDs. BYPASS(ID) should be used with caution and only after careful consideration
because ignoring RMID and UMID errors may regress modifications included in previously applied
SYSMODs.
BYPASS(IFREQ)
indicates that SMP/E should ignore any conditional requisites that are missing.
BYPASS(PRE)
indicates that SMP/E should ignore any missing prerequisites.
BYPASS(REQ)
indicates that SMP/E should ignore any requisites that are missing.
BYPASS(XZIFREQ)
indicates that SMP/E is to continue APPLY processing for a SYSMOD, even if SMP/E detects
a missing cross-zone requisite. SMP/E will identify such missing cross-zone requisites with a
warning message, instead of terminating the APPLY processing.
BYPASS(XZIFREQ(list))
indicates that SMP/E is to continue APPLY processing for a SYSMOD, even if SMP/E detects a
missing cross-zone requisite, provided that the missing requisite SYSMOD is included in the list
provided with the XZIFREQ option. For SYSMODs identified in the list, SMP/E will identify with a
warning message any that are missing cross-zone requisites. For missing requisite SYSMODs that
are not included in the list, SMP/E will terminate APPLY processing.
Each entry in the list must be in one of the following formats:
• sysmod_id
• (sysmod_id,zone)
sysmod_id
specifies that SMP/E is to continue APPLY processing, even if requisite SYSMOD sysmod_id in
any zone (other than the set-to zone) is missing.
(sysmod_id,zone)
specifies that SMP/E is to continue APPLY processing, even if requisite SYSMOD sysmod_id in
zone zone is missing.
Each entry in the list must be unique. Also, a SYSMOD ID must not appear both by itself and as
part of a SYSMOD/zone pair. However, a SYSMOD ID may appear in multiple SYSMOD/zone pairs,
provided each of the pairs is unique.
The list provided must not be a null list; that is, BYPASS(XZIFREQ()) is not allowed.
CHECK
indicates that SMP/E should not actually update any libraries. Instead, it should just take these
actions:
• Test for errors other than those that occur when the libraries are actually updated.
• Report on which libraries are affected.
• Report on any SYSMOD that would be regressed.
COMPRESS
indicates which target libraries should be compressed. SMP/E does not compress any libraries that
are actually paths in a UNIX file system.
• If you specify ALL, any libraries in which elements will be installed by this APPLY command are
compressed.
• If you specify particular ddnames, those libraries are compressed regardless of whether they will be
updated.
Note:
1. COMPRESS can also be specified as C.
2. If you specify both COMPRESS and CHECK, COMPRESS is ignored. This is because SMP/E does not
update any data sets for CHECK.
EXCLUDE
specifies one or more SYSMODs that should not be applied.
Note:
1. EXCLUDE can also be specified as E.
2. SMP/E does not include a SYSMOD that would be included by the GROUP or GROUPEXTEND
operand if that SYSMOD is specified on the EXCLUDE operand.
3. SYSMODs that are superseded by another SYSMOD being applied are not excluded even if they are
specified on the EXCLUDE operand.
EXSRCID
indicates that SYSMODs associated with the specified source IDs should not be applied.
Note:
1. There are two ways to specify source IDs:
• Explicitly, by fully specifying a particular source ID (for example, RSU0711). In this case, all
SYSMODs that contain the identified source ID are excluded.
• Implicitly, by partially specifying a source ID value using asterisks (*) as global characters and
percent signs (%) as placeholders.
– A single asterisk indicates that zero or more characters can occupy that position. Here are
some examples:
- For RSU*, all SYSMODs that contain a source ID that begins with the character string RSU*
are excluded.
- For *0711, all SYSMODs that contain a source ID that ends with the character string 0711
are excluded.
- For RSU*1, all SYSMODs that contain a source ID that begins with the character string RSU
and ends with the character string 1 are excluded.
– A single percent sign indicates that any one single character can occupy that position. For
RSU0%11, for example, SYSMODs that contain any of these source IDs are excluded: RSU0711,
RSU0211, and RSU0311. SYSMODs that contain source ID RSU00711 are not excluded.
Any number of asterisks and percent signs can be used within a single partially specified source
IDs.
The following examples are valid source ID specifications:
RSU0709
RSU*
IBM.Device.20%4
IBM.Device.*.zAAP
2. A given source ID can be explicitly specified only once on the EXSRCID operand.
3. The same source ID cannot be explicitly specified on both the EXSRCID and source ID operands.
4. If a source ID is implicitly or explicitly specified on the EXSRCID operand and on the SOURCEID
operand, all SYSMODs with that source ID are excluded from processing.
5. If a given SYSMOD has multiple source IDs, at least one of which is specified either implicitly
or explicitly on the SOURCEID operand and another is specified on the EXSRCID operand, the
SYSMOD is excluded from processing.
For example, assume PTF UZ12345 has been assigned source IDs SMCREC and PUT0703. If you
specify SOURCEID(SMC*) and EXSRCID(PUT0703), the SYSMOD is excluded from processing.
6. If a SYSMOD would be included by the GROUP or GROUPEXTEND operand, but is excluded by the
EXSRCID operand, SMP/E does not include it.
7. If you do not specify any SYSMOD types, SMP/E processes only PTFs. To process other types of
SYSMODs, you must specify the desired SYSMOD types.
8. A source ID value might contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified source ID value. For example, a specified source ID
value of ABCDEF matches a value of abcdef.
FIXCAT
identifies the list of fix categories of interest for command processing. This list determines which fix
category APARs must be resolved for the SYSMODs being applied.
A fix category APAR provides a fix for a held SYSMOD and the APAR is associated with one or more fix
categories. Fix category APARs are identified by FIXCAT HOLD entries. If a fix category specified on a
FIXCAT HOLD for a SYSMOD being applied matches any of those specified on the FIXCAT operand of
the command, then the SYSMOD is held for the APAR reason ID from the FIXCAT HOLD and will not be
applied until the APAR is resolved. If a fix category specified on a FIXCAT HOLD for a SYSMOD being
applied does not match any of those specified on the FIXCAT operand of the command, or if the list of
fix categories is null, the SYSMOD is not held for the APAR reason ID from the FIXCAT HOLD.
The values specified on the FIXCAT operand will override the list of values, if any, defined by the
FIXCAT subentry in the active OPTIONS entry. FIXCAT() may be used to specify a null list, which
means no fix category APARs must be resolved during current accept processing.
Fix category values can be 1 to 64 characters in length and can contain any nonblank character in the
range X'41' - X'FE' except the single quotation mark, comma, left parenthesis, and right parenthesis.
They can be specified in two ways:
• Explicitly, by fully specifying a particular fix category value. For example, IBM.Device.zIIP. In this
case, all HOLDDATA associated with this fix category is applicable to command processing.
• Implicitly, by partially specifying a fix category value using any number of asterisks (*) as global
characters and percent signs (%) as placeholders.
– A single asterisk indicates that zero or more characters can occupy that position. For example,
IBM.Device*, *z/OS or IBM*z/OS. In the first case, all HOLDDATA associated with a fix category
that begins with the character string IBM.Device is applicable. In the second case, all HOLDDATA
associated with a fix category that ends with the character string z/OS is applicable. In the third
case, all HOLDDATA associated with a fix category that begins with the character string IBM and
ends with the character string z/OS is applicable.
– A single percent sign indicates that any one single character can occupy that position. For
example, IBM.Device.20%4. In this case, HOLDDATA associated with any of the following fix
categories is applicable: IBM.Device.2084, IBM.Device.2094, and IBM.Device.20t4. HOLDDATA
associated with fix category IBM.Device.20914, however, is not applicable.
Fix category values can contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified Fix category value. For example, a specified value
of IBM.FUNCTION.HEALTHCHECKER matches the value of IBM.Function.HealthChecker.
Fix category values are defined by FIXCAT HOLD entries. The following examples of acceptable fix
categories are based on the fix category values that are used by IBM in FIXCAT HOLD entries:
IBM.Device.2094.zAAP
*
IBM.Function*
IBM.Device.20%4.*
*.HealthChecker
FORFMID
indicates that only SYSMODs for the specified FMIDs or FMIDSETs should be applied.
Note:
1. Functions containing a ++VER DELETE statement are not automatically included by the FORFMID
operand. You must specify them on the SELECT operand.
2. If you do not specify any SYSMOD types, SMP/E processes only PTFs. To process other types of
SYSMODs, you must specify the desired SYSMOD types.
FUNCTIONS
indicates that all eligible functions should be applied.
Note:
1. FUNCTIONS can also be specified as FUNCTION.
2. If you specify FUNCTIONS along with SELECT, all eligible functions are included in addition to the
SYSMODs specified on SELECT.
3. If you specify FUNCTIONS along with SOURCEID, all functions associated with the specified source
IDs are included.
4. Functions containing a ++VER DELETE statement are not automatically included by the
FUNCTIONS operand. You must specify them on the SELECT operand.
GROUP
indicates that if any SYSMODs specifically defined as requisites for eligible SYSMODs have not yet
been applied, SMP/E should automatically include them.
Note:
1. GROUP can also be specified as G.
2. GROUP is mutually exclusive with GROUPEXTEND.
3. GROUP may include SYSMODs at a service level higher than that specified by the SOURCEID
operand.
4. If you specify GROUP with no other SYSMOD selection operands (such as a SYSMOD type,
SOURCEID, FORFMID, or SELECT), GROUP is ignored.
5. Processing done for SYSMODs specified on the SELECT operand is not necessarily done for
SYSMODs included by the GROUP operand. For example, if REDO is specified, only SYSMODs
specified on the SELECT operand can be reapplied; SYSMODs included by the GROUP operand are
not.
6. Functions containing a ++VER DELETE statement are not automatically included by the GROUP
operand. You must specify them on the SELECT operand.
7. If a SYSMOD would be included by the GROUP operand, but is excluded by the EXCLUDE or
EXSRCID operand, SMP/E does not include it.
GROUPEXTEND
indicates that if a SYSMOD specifically defined as a requisite for an eligible SYSMOD has not been
applied and cannot be processed for one of the reasons shown in Table 4 on page 60, SMP/E should
automatically include a superseding SYSMOD. As the table shows, what GROUPEXTEND includes
depends on why the requisite cannot be processed.
You can specify NOAPARS or NOUSERMODS (or both NOAPARS and NOUSERMODS) to limit the types of
SYSMODS that are included by GROUPEXTEND to resolve error reason IDs. The default is to include all
eligible SYSMODs, regardless of SYSMOD type.
NOAPARS
indicates that SMP/E should exclude APARs that resolve error reason IDs.
NOUSERMODS
indicates that SMP/E should exclude USERMODs that resolve error reason IDs.
Note:
1. GROUPEXTEND can also be specified as GEXT.
2. GROUPEXTEND is mutually exclusive with GROUP.
3. If you specify both BYPASS and GROUPEXTEND, SMP/E does not include superseding SYSMODs
needed to take the place of requisites or error reason IDs that have been bypassed.
During CHECK processing, if you want to see whether any superseding SYSMODs are available for
requisites that have been bypassed, specify GROUPEXTEND without BYPASS.
4. GROUPEXTEND may include SYSMODs at a service level higher than what is specified by the
SELECT or SOURCEID operands.
5. Functions and excluded SYSMODs are not automatically included by GROUPEXTEND.
6. Processing done for SYSMODs specified on the SELECT operand is not necessarily done for
SYSMODs included by the GROUPEXTEND operand. For example, if REDO is specified, only
SYSMODs specified on the SELECT operand can be reapplied; SYSMODs included by the
GROUPEXTEND operand cannot.
7. If a SYSMOD would be included by the GROUPEXTEND operand, but is excluded by the EXCLUDE or
EXSRCID operand, SMP/E does not include it.
8. When GROUPEXTEND is specified, SMP/E examines more SYSMODs than it does if GROUP were
specified. Because of this additional processing, the APPLY command runs longer than if GROUP
was specified, and a larger region size might be needed.
On the other hand, GROUPEXTEND reduces the amount of time you would otherwise spend
searching for missing requisites.
JCLINREPORT
indicates that SMP/E is to write the JCLIN reports after processing inline JCLIN. This is the default.
Note: JCLINREPORT can also be specified as JCLR.
NOJCLIN
indicates that SMP/E should not process inline JCLIN for the specified SYSMODs. For example, if you
are reapplying SYSMODs, you may not want to process inline JCLIN that would change target zone
entries that should not be changed.
If you include a list of SYSMOD IDs, SMP/E skips JCLIN processing only for the specified SYSMODs. If
you do not include a list of SYSMOD IDs, SMP/E skips JCLIN processing for all SYSMODs.
NOJCLINREPORT
indicates that SMP/E should not write any JCLIN reports after processing inline JCLIN.
Note: NOJCLINREPORT can also be specified as NOJCLR.
PTFS
indicates that all eligible PTFs should be applied.
Note:
1. PTFS can also be specified as PTF.
2. PTFS is the default SYSMOD type for mass-mode processing. If you do not specify any other
SYSMOD types, only PTFs are processed, even if PTFS was not specified.
3. If you specify PTFS along with SELECT, all eligible PTFs are included in addition to the SYSMODs
specified on SELECT.
4. If you specify PTFS along with SOURCEID, all PTFs associated with the specified source IDs are
included.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the APPLY command.
Before SMP/E processes the APPLY command, it checks whether the return codes for the specified
commands are less than or equal to the values specified on the RC operand. If so, SMP/E can
process the APPLY command. Otherwise, the APPLY command fails. For more information about the
RC operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the APPLY command. Therefore, if you use the RC operand, you must specify every
command whose return code you want SMP/E to check.
REDO
indicates that if any SYSMOD specified on SELECT has already been successfully applied, it should be
reapplied.
Note:
1. If you specify REDO, you must also specify SELECT.
2. If GROUP or GROUPEXTEND is also specified, REDO does not reapply SYSMODs included by the
GROUP or GROUPEXTEND operand. It processes only SYSMODs specified on the SELECT operand.
3. If you use REDO to reapply a SYSMOD with inline JCLIN, you may not be able to restore that
SYSMOD. This is the case if the target zone entries were updated the first time the SYSMOD was
applied. When the SYSMOD is reapplied by use of the REDO operand, the target zone entries are
first copied to the SMPSCDS as BACKUP entries, and then updated again for the SYSMOD. As a
result, the BACKUP entries and the target zone entries are at the same level, and SMP/E has no
record of the target zone entries before the SYSMOD was installed.
4. When reapplying a function SYSMOD, be sure to also reapply all PTFs, APARs, and USERMODs
for the same FMID that have already been applied to prevent intersecting elements from being
regressed. Otherwise, the correct service level of the intersecting elements may not be installed.
RETRY
indicates whether SMP/E should try to recover from out-of-space errors for utilities it calls.
YES
indicates that SMP/E should try to recover and retry the utility if a RETRYDDN list is available in the
OPTIONS entry that is in effect. RETRY(YES) is the default.
If retry processing does not reclaim sufficient space and input to the utility was batched (copy
or link-edit utility only), SMP/E debatches the input and retries the utility for each member
separately. If this final attempt fails, the resulting x37 abend is treated as an unacceptable utility
return code. In this case, processing continues for SYSMODs containing eligible updates to other
libraries, but processing fails for SYSMODs containing unprocessed elements for the out-of-space
library (and it fails for any SYSMODs that are dependent on the failed SYSMODs). For guidance on
setting up the desired retry processing, see z/OS SMP/E User's Guide. For more information about
OPTIONS entries, see z/OS SMP/E Reference.
If there is no RETRYDDN list, SMP/E does not try to recover from out-of-space errors, even if you
specify YES.
NO
indicates that SMP/E should not try to recover from the error.
REUSE
indicates that if a module was successfully assembled during previous SMP/E processing, it should
not be reassembled. Instead, the existing object module from SMPWRK3 should be reused.
Note: The REUSE operand must be used with great care. SMP/E does not ensure that the same set of
SYSMODs are being processed after a failure. If new maintenance is received after the initial APPLY
command and before the APPLY REUSE command, SMP/E may use the wrong level of object modules.
SELECT
specifies one or more SYSMODs that should be applied.
You may specify any combination of individual SYSMOD IDs and FMIDSET names, provided that there
are no duplicate SYSMOD IDs nor any duplicate FMIDSET names. For each FMIDSET specified, all
FMIDs defined in the FMIDSET are processed as if they were explicitly specified in the SELECT list.
Note:
1. SELECT can also be specified as S.
2. To reapply a SYSMOD, it is not enough to specify that SYSMOD on the SELECT operand. You must
also specify REDO.
3. To process functions containing a ++VER DELETE statement, you must specify them on the SELECT
operand.
4. When using FMIDSETs on the SELECT operand, remember that:
• A value specified in the SELECT list is processed as an FMIDSET if the GLOBAL zone contains an
FMIDSET entry by that name.
• A value specified in the SELECT list is processed as a SYSMOD ID if it is not defined as an
FMIDSET in the GLOBAL zone and it is a valid SYSMOD ID.
• If the value in the SELECT list is valid both as a SYSMOD ID and as an FMIDSET name, it is
processed (for SELECT) as an FMIDSET. If you want to select a SYSMOD that has the same name
as an FMIDSET, you must define that SYSMOD in an FMIDSET and then include that FMIDSET
name in the SELECT list.
If this same value is specified on the EXCLUDE operand, it will be processed as a SYSMOD ID
(because only SYSMOD IDs are valid on EXCLUDE) and will not be rejected as a duplication of the
identical FMIDSET name in the SELECT list.
• Any given value (whether it represents a SYSMOD ID, an FMIDSET, or both) may not appear more
than once in the SELECT list.
• Any given SYSMOD ID may not simultaneously appear in both the SELECT and EXCLUDE lists,
unless it is also a valid FMIDSET name.
• A SYSMOD ID may be explicitly specified in the SELECT list and also included in an FMIDSET that
is also specified in the SELECT list, provided the SYSMOD ID does not have the same name as the
FMIDSET. The duplicate SYSMOD ID is ignored.
SOURCEID
indicates that SYSMODs associated with the specified source IDs should be applied.
Note:
1. There are two ways to specify source IDs:
• Explicitly, by fully specifying a particular source ID (for example, RSU0711). In this case, all
SYSMODs that contain the identified source ID are selected.
• Implicitly, by partially specifying a source ID value using asterisks (*) as global characters and
percent signs (%) as placeholders.
– A single asterisk indicates that zero or more characters can occupy that position. Here are
some examples:
- For RSU*, all SYSMODs that contain a source ID that begins with the character string RSU are
selected.
- For *0711, all SYSMODs that contain a source ID that ends with the character string 0711
are selected.
- For RSU*1, all SYSMODs that contain a source ID that begins with the character string RSU
and ends with the character string 1 are selected.
– A single percent sign indicates that any one single character can occupy that position. For
RSU0%11, for instance, SYSMODs that contain any of these source IDs are selected: RSU0711,
RSU0211, and RSU0311. SYSMODs that contain source ID RSU00711 are not selected.
Any number of asterisks and percent signs can be used within a single partially specified source ID.
The following examples are valid source IDs:
RSU0709
RSU*
IBM.Device.20%4
IBM.Device.*.zAAP
2. A given source ID can be explicitly specified only once on the SOURCEID operand.
3. The same source ID cannot be explicitly specified on both the EXSRCID and the SOURCEID
operands.
4. If a source ID is implicitly or explicitly specified both on the SOURCEID operand and on the
EXSRCID operand, all SYSMODs with that source ID are excluded from processing.
5. If a given SYSMOD has multiple source IDs, at least one of which is specified either implicitly or
explicitly on the SOURCEID operand and another on the EXSRCID operand, the SYSMOD will be
excluded from processing.
For example, assume that PTF UZ12345 has been assigned source IDs SMCREC and PUT0703.
If you specify SOURCEID(SMC*) and EXSRCID(PUT0703), the SYSMOD is excluded from
processing.
6. Functions containing a ++VER DELETE statement are not automatically included by the SOURCEID
operand. You must specify them on the SELECT operand.
7. If you do not specify any SYSMOD types, only PTFs are processed. To process other types of
SYSMODs, you must specify the desired SYSMOD types.
8. A source ID value might contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified source ID value. For example, a specified source ID
value of ABCDEF matches a value of abcdef.
9. SOURCEIDs for fix category values are assigned to the resolving (fixing) PTFs named on the FIXCAT
++HOLDs, during the RECEIVE of those ++HOLDs. The SOURCEIDs can only be assigned to a PTF,
if that PTF has been received before the HOLDDATA is received. This requirement is met if the PTF
was received during a previous RECEIVE command, or during the same RECEIVE with SYSMODS
HOLDDATA, since the SYSMODs are received first then the HOLDDATA.
USERMODS
indicates that all eligible USERMODs should be applied.
Note:
1. USERMODS can also be specified as USERMOD.
2. If USERMODS is specified along with SELECT, all eligible USERMODs are included in addition to the
SYSMODs specified on SELECT.
3. If USERMODS is specified along with SOURCEID, all USERMODs associated with the specified
source IDs are included.
XZGROUP(list)
indicates that you wish to override SMP/E's default method for determining the zones to be checked
for cross-zone requisites.
You may specify either:
• A list of ZONESETs and zones that are to be used to establish the zone group for this command.
Each value in the list must be a valid ZONESET or zone name.
• XZGROUP() to provide a null list, which means that no cross-zone requisite checking is to be done
for this command. A null list is not valid if the XZREQ operand is also specified.
The XZGROUP operand always requires a list or null list. That is, XZGROUP (without parentheses) is
not allowed.
Note:
1. If XZGROUP is specified, whatever ZONESETs the user specifies are used to establish the initial
zone group, even if the set-to zone is not in a ZONESET and the XZREQCHK subentry is not set.
2. If no XZGROUP operand is specified on the APPLY command, SMP/E reads all ZONESET entries.
If a ZONESET entry has its XZREQCHK subentry set to YES and it contains the set-to zone, then
all the other zones within the ZONESET entry become part of the initial zone group for the APPLY
command.
3. After the initial zone group is established, it is culled by removing all distribution zone for APPLY
processing. In other words, only zones having the same type as the set-to zone are left in the final
zone group used for cross-zone requisite checking.
XZREQ
indicates that SMP/E should install unsatisfied cross-zone requisites into the set-to zone.
XZREQ causes cross-zone requisites to become primary candidates for installation. To do this, SMP/E
checks secondary zones in the currently established zone group for CIFREQ data that is applicable to
functions installed or being installed into the set-to zone.
Note:
1. SYSMODs selected with the XZREQ operand are in addition to any SYSMODs selected with the
FORFMID and SOURCEID operands.
2. If XZREQ is specified along with SELECT, the specifically selected SYSMODs are included along
with any unsatisfied cross-zone requisites.
3. If SOURCEID is specified, only cross-zone requisites with the specified SOURCEID values become
primary candidates for installation.
4. If FORFMID is specified, only cross-zone requisites for the specified FMIDs become primary
candidates for installation. Otherwise, all unsatisfied cross-zone requisites become primary
candidates for installation.
5. When the XZREQ operand is specified without the FORFMID operand, the SOURCEID operand, or
the SELECT operand, only unsatisfied cross-zone requisites become primary candidates.
6. PTFS is the default SYSMOD type for mass-mode processing. If no SYSMOD types are specified,
only PTFs are processed, even if PTFS was not specified.
7. If any SYSMOD types are specified, processing is limited to those SYSMOD types, except for those
SYSMODs that might be needed to satisfy processing for these operands:
• GROUP
• GROUPEXTEND
• SELECT
• XZREQ
8. If EXSRCID is specified, any unsatisfied cross-zone requisite with one of the specified source IDs is
excluded from processing.
9. If the XZREQ operand is specified, the XZGROUP operand may not be specified as a null list.
Syntax notes
Figure 3 on page 66 shows how SMP/E chooses which SYSMODs to process, on the basis of the operands
specified on the APPLY command.
• If you specify any of the operands in the top part of the chart, or if you do not specify the SELECT
operand, SMP/E does mass-mode processing.
• If you specify the SELECT operand, SMP/E does select-mode processing.
• If you specify SELECT plus operands from the top part of the chart, SMP/E does both select-mode and
mass-mode processing.
For more information about select-mode and mass-mode processing, see “Candidate selection” on page
77.
Remember the following when coding the APPLY command:
1. SMP/E applies SYSMODs specified on SELECT regardless of other APPLY operands (such as a SYSMOD
type, SOURCEID, EXSRCID, or FORFMID). Therefore, if you want to apply a specific SYSMOD, you only
need to specify the SYSMOD ID on SELECT. For example, to apply a specific APAR, you do not also have
to include the APAR operand.
Note: If you do specify a SYSMOD type along with SELECT, SMP/E applies all SYSMODs of the specified
type plus the selected SYSMOD.
2. If you specify more than one SYSMOD type, a SYSMOD needs to match only one of the specified types.
3. If the SOURCEID, FORFMID, and SYSMOD type operands are specified together, only those SYSMODs
meeting all the conditions are applied. (For a SYSMOD type, the SYSMOD must meet just one of the
type conditions.)
Note:
1. SMPHRPT is an optional data set. If SMPHRPT is defined, the HOLD reports are directed there.
2. SMPJHOME is an optional DD statement used to specify the Java runtime directory. SMP/E requires the
Java runtime when either of the following conditions applies.
• When SMP/E is installing JARUPD elements, or
• When a UNIX shell script is invoked during the installation of a file system element, and the shell
script issues a Java command.
3. SMPWKDIR is an optional DD statement used to specify a directory in a UNIX file system for the
storage of temporary files created during SMP/E processing. If the SMPWKDIR directory is not
specified on a DD statement or DDDEF entry, SMP/E will use the /tmp directory for temporary work
files.
4. The SMPLTS data set is required only when a load module with CALLLIBS is being processed.
5.
6. The SMPDATA1 and SMPDATA2 data sets are required only when the CHANGEFILE subentry of the
active OPTIONS entry is set to "YES" for the target zone that APPLY is operating on.
7. zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are allocated dynamically by use of
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be
used to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
8. SMPPARM is required only if exit routines have been defined in SMPPARM member GIMEXITS.
Usage notes
This section provides usage notes for the APPLY command.
If the module is to be installed into an existing load module, this fact can be identified to SMP/E in two
ways:
• If no additional link-edit control statements (other than the INCLUDE statement) are required to rebuild
the load module, the LMOD operand on the ++MOD statement can be used to indicate that the new
module is to be link-edited into the existing load module. If no LMOD entry exists in the target zone for
the specified load module, an error results.
• If adding the new module requires the addition of a link-edit control card in order to rebuild the load
module (for example, another ORDER card is required or a new ENTRY is established), inline JCLIN is
required to redefine the load module structure.
If the module is part of a copied library, SMP/E already has all the information necessary to install the
module fully; therefore, no special operands or processing is required. SMP/E uses the DLIB entry to
determine that the distribution library has been totally copied, to build a new target zone MOD entry with
a LMOD subentry equal to the module name, and to build a LMOD entry (with a name equal to the module
name), using the SYSLIB value from the DLIB entry and the LEPARMs from the ++MOD LEPARMs.
If there is no MOD entry in the target zone for a module in the ASSEM operand list, one is created. The
DISTMOD operand value is placed in the MOD entry as the DISTLIB subentry.
If no LMOD entry exists for a module, one is created, provided the target zone contains a DLIB entry for
the DISTMOD operand value. The SYSLIB subentries from the DLIB entry are placed in the LMOD entry as
SYSLIB subentries, and the LMOD subentry is placed in the MOD entry. If no DLIB entry exists, no LMOD
subentry exists in the MOD entry, and, therefore, no executable load module can be updated in the target
system for that module.
After the macro has been updated or replaced, all the modules specified in the ASSEM and PREFIX
operand lists are assembled. If no member is found in the necessary library (the source target system
library, the SMPSTS, or the distribution library) for a source specified in the ASSEM operand list, SMP/E
issues a warning message and goes on processing the SYSMOD without assembling or link-editing the
module. If an assembly completes with a return code greater than the one that you specified in the RC
subentry of the ASM UTILITY entry (or the SMP/E default of 4, if the RC subentry is null), the processing of
the SYSMOD is terminated. If the resulting object text from a successful assembly can be link-edited into
a load module, the link-edit is performed.
Alias processing
When an element with aliases is processed, both the element and its aliases are updated. SMP/E does not
check the aliases against elements maintained in the target zone. The user must make sure an element's
alias does not match the name of an element maintained by SMP/E in the target zone.
Aliases for an element are determined as follows:
• Replacement elements (MACs, MODs, data elements, and program elements):
– If a list of aliases is specified on the SMP/E MCS, these aliases are used. The new list of aliases
replaces any alias subentries in the target zone element entry.
– If no list of aliases is specified on the SMP/E MCS, the aliases found as alias subentries in the target
zone element entry are used.
• Update elements (ZAPs and MACUPDs):
– If a list of aliases is specified on the SMP/E MCS, these aliases are used. Any alias subentries in
the target zone element entry are ignored for update processing of the element. Macro aliases (on
the target system) existing before this list of aliases was presented to SMP/E are not updated. Alias
subentries in the target zone element entry are not updated or replaced by the aliases in this list.
– If no list of aliases is specified on the SMP/E MCS, the aliases found as alias subentries in the target
zone element entry are used.
SYSMOD termination
Termination of a SYSMOD causes a return code of 8. Termination of a ++FUNCTION causes a return code
of 12. Termination occurs in response to any of the following conditions:
• Missing requisites:
– The requisite SYSMOD is not available on the PTS/CSI data sets. (It has not been received.)
– The requisite SYSMOD has been excluded.
– The requisite SYSMOD was terminated (possibly because other requisites are missing).
– The requisite SYSMOD did not meet the applicability criteria.
– The requisite SYSMOD was not included in the SELECT list, and neither GROUP nor GROUPEXTEND was
specified.
– GROUP was specified to include the requisite, but the requisite SYSMOD is being held or is not
available on the PTS or CSI data sets. (It has not been received.)
– GROUPEXTEND was specified to supersede the failing requisite, but a superseding SYSMOD was not
available for processing.
• Inline JCLIN processing failure. The entries affected are restored to the state that existed before JCLIN
processing.
• MODID error conditions.
• Attempting to change the ownership of an element that is being updated rather than replaced.
• DISTLIB operand checking failure.
• DD statement missing for a target system library.
• Utility return codes. Return codes from the utilities called to update, assemble, copy, and link-edit
elements to the target system are examined to determine whether the operation has succeeded or
failed. If these return codes exceed a predefined value, the SYSMODs whose elements are involved in
the operation are terminated. For details on handling x37 abends, see the description of the RETRY
operand under “Operands” on page 53.
• Related SYSMOD failure. When SMP/E excludes an element from a SYSMOD because another SYSMOD
being processed supplies a higher level of the element, SMP/E does not consider the first SYSMOD
successfully processed until the SYSMOD supplying the highest (selected) level element completes
successfully. If the SYSMOD supplying the highest level element fails, all SYSMODs from which
elements have been excluded are terminated because of a “related SYSMOD failure.”
BYPASS
Certain error conditions causing the termination of a SYSMOD can be avoided by specifying the BYPASS
operand on the APPLY command. In BYPASS mode, some error conditions are treated as warning
conditions. The following operand values can be specified with the BYPASS operand to avoid termination:
ID
Specifies that SYSMODs should be processed even though their MODID verification checks have
failed.
PRE
Specifies that SYSMODs should be processed even though their PRE requisite conditions are not met.
REQ
Specifies that SYSMODs should be processed even though their REQ requisite conditions are not met.
IFREQ
Specifies that SYSMODs should be processed even though their conditional requisite conditions
(IFREQs) are not met.
APPLY termination
APPLY processing termination causes a return code of 12. For each of the following conditions, SMP/E
issues an error message. APPLY reports are not produced when a function SYSMOD is terminated before
selection processing completes. Termination can be caused by any of the following conditions:
• Termination of processing of any function SYSMOD.
• Two function SYSMODs are specified in the SELECT list, and one specifies the other in the DELETE
operand of its ++VER statement.
• Two function SYSMODs are specified in the SELECT list or are selected in mass mode, and one specifies
the other in the NPRE operand of its ++VER statement.
• A function SYSMOD specifying a previously applied SYSMOD in the NPRE operand of its ++VER
statement is specified in the SELECT list.
• A function SYSMOD deleted by a previously applied SYSMOD (that is, a SYSMOD entry in the target zone
indicates that the SYSMOD has been deleted) is specified in the SELECT list.
• A function SYSMOD superseded by a previously applied SYSMOD (that is, a SYSMOD entry in the target
zone indicates that the SYSMOD is superseded) is specified in the SELECT list. A service SYSMOD in the
same situation is not processed, but the APPLY command is not terminated.
++PTF(UZ00001).
++VER(Z038) FMID(GVT3100).
++IF FMID(GVT3101) THEN REQ(UZ00001).
++VER(Z038) FMID(GVT3101).
++MOD(IFTABCD) DISTLIB(AOS99).
If this PTF was first applied when only function GVT3100 was installed, the first ++VER statement would
have been used, and the conditional requisite data supplied on the ++IF would have been saved. If
GVT3101 is installed later, the saved ++IF data requires this same PTF to be installed.
Note: Because SMP/E does not process a SYSMOD with more than one VER that appears to be valid,
GVT3101 must DELETE GVT3100 in order for this construction to work properly.
Output
The following reports can be produced during APPLY processing:
• Bypassed HOLD Reason Report
• Causer SYSMOD Summary report
• Cross-Zone Summary report
• Deleted SYSMOD report
• File Allocation report
• Element Summary report
• JCLIN Cross-Reference report
• JCLIN Summary report
• MOVE/RENAME/DELETE report
• SYSMOD Regression report
• SYSMOD Status report
• Summary of Bypassed and Unresolved HOLD Reason Report
• Unresolved HOLD Reason Report
See Chapter 34, “SMP/E reports,” on page 461 for descriptions of these reports.
APPLY processing may also create library change file records that reflect any successful utility work
performed by APPLY processing to update target libraries. For more information about library change file
recording, see z/OS SMP/E Reference.
Examples
The following examples are provided to help you use the APPLY command.
You can now use the following commands to install PTFs for function JXX1234 and for the functions in
FMIDSET TP:
The APARS and USERMODS operands indicate that SMP/E is to pick only APAR fixes and USERMODs.
Note: If you want to install specific APAR fixes or USERMODs, use the SELECT operand. You do not need
to specify APARS or USERMODS, which install all SYSMODs of the specified type.
The FORFMID operand indicates that only SYSMODs applicable to this function should be installed. The
FUNCTIONS operand indicates that HYY2102 can be installed. The PTFS operand indicates that only
PTFs for HYY2102 should be installed (no APAR fixes or USERMODs are included). The GROUP operand
indicates that all requisite SYSMODs should also be applied. These requisites can be applicable to other
functions, but cannot be APAR fixes or USERMODs.
SMP/E applies HYY2102 and any functions or PTFs applicable to HYY2102. Because of the
GROUPEXTEND operand, SMP/E also applies all requisites for those SYSMODs, even those not applicable
to HYY2102. If SMP/E cannot find a requisite, it looks for a SYSMOD superseding the requisite and uses
it to satisfy the requirement. Likewise, if a requisite is held for an error reason ID, SMP/E looks for a
SYSMOD superseding the requisite, or that either satisfies or supersedes that error reason ID, and uses it
to satisfy the requirement.
After running this command, check the SYSMOD Status report to see which SYSMODs would have been
installed if you had not specified CHECK. If the results of this trial run are acceptable, run the commands
again, without the CHECK operand, to actually install the SYSMODs.
This APPLY command causes SMP/E to apply all the SYSMODs that came from either service level
PUT0701 or PUT0702 (from the SOURCEID operand) and that are applicable either to function SYSMOD
HYY2102 or to one of the function SYSMODs identified in the FMIDSET entry “TP” (specified on the
FORFMID operand), plus any other SYSMODs required to install those SYSMODs (specified on the GROUP
operand). All SYSMOD types are eligible for selection. (This includes the FUNCTIONS, PTFS, APARS,
and USERMODS operands.) In addition, the selected SYSMODs (UZ00001, UZ00002, and UZ00003) are
applied even though they came from a source other than the two specified service levels and even though
they may belong to function SYSMODs other than those specified (from the SELECT operand). SMP/E
does not install SYSMODs UZ00010, UZ00011, or UZ00012, even though they may be applicable to
the functions specified and have one of the two SOURCEID values or may be required to install other
SYSMODs that are eligible (from the EXCLUDE operand).
Suppose, instead, you have completed the necessary actions for only certain SYSMODs in service level
0701 (PTFs UZ12345 and UZ34567). You are ready to apply those specific held SYSMODs, but want the
other SYSMODs requiring actions to be held from APPLY processing. To limit the SYSMODs for which the
hold is bypassed, specify the desired SYSMOD IDs with the ACTION reason ID:
Example 12: Automatic release of system hold when ++HOLD keeps the
originating SYSMOD ID
Suppose you encounter a problem that is eventually identified as an APAR (OZ00456) that had already
been reported and fixed in module MOD1234. IBM support gave you the number of a PTF (UZ00999)
that contains a fix for the APAR. You then checked to see if the PTF was available on the system having
the problem. It was, but UZ00999 contained the following ++HOLD that had to be addressed (UZ00999
superseded UZ00111 and thereby had inherited its ++HOLD):
You enlarged the data set and were now ready to install UZ00999. Of course, UZ00999 might need other
PTFs installed along with it, so you decided to use the GROUP operand on the APPLY command. In order
to get UZ00999 installed, you had to bypass the ACTION hold that UZ00999 contained. However, you did
not want to inadvertently bypass any other ACTION holds that might be in effect for SYSMODs brought in
by the GROUP operand, so you coded the BYPASS operand so that it would release only the ACTION hold
for SYSMOD UZ00999.
The APPLY command that you used was:
It turned out that a PRE of UZ00999 (UZ00444) was not installed and was therefore included in
the APPLY operation by the GROUP operand. It also happened that UZ00444 also contained module
MOD1234, which contained the fix for OZ00456, as well as another problem. In fact, UZ00444 also
contained the ++HOLD that was in UZ00999, because UZ00444 also superseded UZ00111 and had
inherited its ++HOLD.
In this case, because the ++HOLD statements in UZ00444 and UZ00999 had kept the originating
SYSMOD ID from being installed, and because UZ00999 was having the ++HOLD bypassed, SMP/E
considers the ACTION hold to be addressed and will therefore automatically release the ACTION hold
against UZ00444, even though you had not specifically named UZ00444 in the BYPASS operand.
Processing
APPLY processing is very similar to ACCEPT processing except that the target zone, rather than the
distribution zone, controls processing, and the target libraries, rather than the distribution libraries, are
updated.
SYSMOD selection
This section outlines the process by which SYSMODs and the elements from the SYSMODs are selected.
Candidate selection
The SYSMOD selection operands of the APPLY command can be specified separately or in combination
to control the SYSMODs that SMP/E is to process. When you specify them separately, SMP/E selects only
SYSMODs meeting the one criterion specified. When you specify them in combination, SMP/E does the
following checking to build the complete candidate list:
1. SMP/E checks the global zone and the specified target zone to determine which SYSMODs present in
the global zone and SMPPTS have not already been applied to the target zone. For each such SYSMOD,
SMP/E checks to see if it meets the criteria of any additional selection operands.
a. If the EXCLUDE operand was specified, SMP/E makes sure the SYSMOD was not specified in the
exclude list.
b. If one or more of the SYSMOD type operands (that is, FUNCTIONS, PTFS, APARS, or USERMODS)
were specified, SMP/E checks to make sure the SYSMOD type was one of those specified. If no type
operand was specified, the default is for SMP/E to process only PTF SYSMODs.
c. If the FORFMID operand was specified, SMP/E makes sure that either the FMID value on one of the
++VER statements within the SYSMOD or the SYSMOD ID itself matches either an FMID specified in
FORFMID or one of the FMID values in a specified FMIDSET.
d. If the SOURCEID operand was specified, SMP/E makes sure one of the source IDs of the SYSMOD
matches a source ID that was either explicitly or implicitly specified on the SOURCEID operand.
e. If the EXSRCID operand was specified, SMP/E makes sure none of the source IDs of the SYSMOD
matches a source ID that was either explicitly or implicitly specified on the EXSRCID operand.
Note: If a given SYSMOD has multiple source IDs and you specify at least one of them, implicitly
or explicitly, on the SOURCEID operand, and you specify another one implicitly or explicitly, on the
EXSRCID operand, that SYSMOD is excluded from processing.
Similarly, if a given source ID is implicitly or explicitly specified on the EXSRCID operand and also
on the SOURCEID operand, all SYSMODs with that source ID are excluded from processing.
Each SYSMOD satisfying all these conditions is a candidate for the APPLY process. In other
words, specifying the SYSMOD type operands, the FORFMID operand, or the SOURCEID operand in
combination causes SMP/E to select those SYSMODs meeting all the specified conditions.
2. If you specify the SELECT operand, each SYSMOD specified in the select list is a candidate regardless
of its SYSMOD type, FMID value, or SOURCEID value. That is, SELECT has an additive effect on the
SYSMOD selection. This is called select-mode processing. If SELECT is not specified, this is called
mass-mode processing.
Note: If SELECT is the only specified operand, SMP/E processes only the SYSMODs in the select list.
3. If you specify the XZREQ operand, unsatisfied cross-zone requisites that are needed in the set-to zone
become candidates for installation. These SYSMODs are in addition to other SYSMODs that are chosen
due to other operands, such as FORFMID and SOURCEID. If FORFMID is specified, only cross-zone
requisites for the FMIDs specified on the FORFMID operand become candidates for installation. Other
operands on the command, such as EXSRCID, have no effect on which cross-zone requisites become
candidates for installation.
4. If the GROUP or GROUPEXTEND operand was specified, SMP/E checks each of the candidate
SYSMODs to determine if it has any requisites that must also be applied. SMP/E automatically includes
the following SYSMODs, as long as they were not specified on the EXCLUDE operand or excluded by
the EXSRCID operand:
a. Any SYSMOD not already applied and specified as a prerequisite (that is, specified in the ++VER
statement PRE operand) of one of the candidate SYSMODs
b. Any SYSMOD not already applied and specified as a corequisite (that is, specified in the ++VER
statement REQ operand) of one of the candidate SYSMODs
c. Any SYSMOD not already applied and specified as a conditional requisite (that is, specified in the
++IF statement REQ operand) of one of the candidate SYSMODs
d. Any SYSMOD not already applied and specified as a conditional requisite (CIFREQ subentry) in the
target zone SYSMOD entry for one of the candidate SYSMODs
If one of these requisites is held or not available, and you specified GROUPEXTEND, SMP/E checks
the global zone for any SYSMODs that have been received and that either supersede the requisite, or
satisfy or supersede its HOLDERROR reason ID. If so, the lowest-level SYSMOD found is used to satisfy
the requisite.
• If you specified NOAPARS with GROUPEXTEND, SMP/E does not include APARs that resolve error
reason IDs for the held requisites.
• If you specified NOUSERMODS with GROUPEXTEND, SMP/E does not include USERMODs that resolve
error reason IDs for the held requisites.
Once a SYSMOD is added to the candidate list, it is eligible to be checked for additional requisites.
The FORFMID, SOURCEID, and SYSMOD type operands have no effect on SYSMODs brought in because
of the GROUP or GROUPEXTEND operand. The following example applies all those SYSMODs with a
source ID of PUT0701 that are applicable to EBB1102, plus any additional SYSMODs that are required,
even though their source ID is not PUT0701 or their FMID is not EBB1102:
Applicability checking
Once the APPLY candidate list is completed, SMP/E does the following checking to make sure the selected
SYSMODs are applicable to the system:
General applicability
SMP/E makes sure that each SYSMOD meets certain requirements before it is applied to the system.
1. Each SYSMOD must contain at least one ++VER statement whose SREL value matches one of the SREL
values for that target zone and whose FMID value (if present) names a function SYSMOD that has been
(or is being) applied. Function SYSMODs having no ++VER statement FMID operand are applicable if
the SREL matches.
Each SYSMOD must have at most one ++VER statement whose SREL matches the SREL in the target
zone entry and whose FMID value exists in the target zone (or is being applied) and has not been
superseded.
If a SYSMOD is found containing multiple applicable ++VER statements, SMP/E is unable to apply that
SYSMOD, because SMP/E cannot determine which ++VER statement to use.
Note: SMP/E does not consider an FMID that has been superseded to be applied. Therefore, a SYSMOD
can contain two ++VER statements that apply to two functions, one of which supersedes the other.
2. The SYSMOD must not have already been applied successfully to the target zone.
• To reapply a SYSMOD, you must specify it in the SELECT operand and include the REDO operand on
the APPLY command.
• SYSMODs that have been partially applied during a previous invocation are considered eligible for
processing without any special action. These SYSMODs are identified by the APPLY ERROR indicator
in their target zone SYSMOD entry.
3. The SYSMOD must not have been partially restored during a previous SMP/E RESTORE attempt. These
SYSMODs are identified by the RESTORE ERROR indicator in their target zone SYSMOD entry.
4. The SYSMOD must not be superseded by a previous SYSMOD. If a SYSMOD is found to be superseded
by another SYSMOD being applied, no elements are selected from the superseded SYSMOD.
5. The SYSMOD must not have been explicitly deleted by a previous SYSMOD.
Cross-zone requisites
Cross-zone requisites are very similar to conditional requisites. Like conditional requisites, they are also
caused by an ++IF statement. For a cross-zone requisite, however, the SYSMOD containing the ++IF exists
in one zone, but the function and SYSMODs identified by the FMID and REQ operands specified on the
++IF statement are in another zone.
• HOLDERROR
• HOLDFIXCAT
• HOLDSYSTEM (internal and external)
• HOLDUSER
In addition, the ++HOLD statement may contain a CLASS operand, which specifies an alternative way to
resolve exception data through the use of the BYPASS operand.
Exception data is considered resolved when one or more of the following conditions are true:
• HOLDERROR and HOLDFIXCAT exception data is considered resolved if any of the following conditions
apply:
– The SYSMOD named as the reason ID for the exception is already applied or is superseded by a
SYSMOD that is already applied.
– The SYSMOD named as the reason ID for the exception is being applied concurrently or is being
superseded by a SYSMOD being applied concurrently.
– The applicable BYPASS operand is specified.
• HOLDSYSTEM (internal) exception data is considered resolved if any of the following conditions apply:
– The SYSMOD ID specified on the ++HOLD defining the exception is already applied or is superseded
by a SYSMOD that is already applied.
– The SYSMOD ID specified on the ++HOLD defining the exception is being superseded by a SYSMOD
being applied concurrently that also contains the same ++HOLD, but the ++HOLD has been bypassed
for the concurrently applied SYSMOD (see “Example 12: Automatic release of system hold when
++HOLD keeps the originating SYSMOD ID” on page 76).
– The applicable BYPASS operand is specified.
• HOLDSYSTEM (external) exception data is considered resolved if the applicable BYPASS operand is
specified.
• HOLDUSER exception data is considered resolved if the applicable BYPASS operand is specified.
If all the exception data associated with a given SYSMOD is not resolved, SMP/E does not apply that
SYSMOD. The SYSMOD is treated as though it had been specifically excluded. Messages are issued
showing which exception data is not resolved, and the SYSMOD and reason IDs associated with the
exception data are displayed in the SYSMOD Summary report.
Each category of exception data is resolved differently:
• For HOLDERROR exception data the reason ID is actually the number of the APAR that caused the
SYSMOD to be placed in exception status. As subsequent service is processed, the APAR will probably
be superseded by a PTF. When this happens, the exception data is resolved and the first PTF is
automatically processed. Therefore, it is generally not necessary to use the BYPASS operand to process
SYSMODs with error reason IDs.
During any mass installation of SYSMODs, it should be expected that some SYSMODs are not applied,
because unresolved APARs are associated with them. During the installation of preventive service,
these SYSMODs should not be investigated further; they will be installed later when a subsequent
SYSMOD is produced that supersedes the reason ID associated with the exception data that is causing
them to be held.
During the installation either of corrective service (that is, installing a PTF or an APAR because of a
known problem in the system) or of a new function specifically requiring a SYSMOD, the reason IDs
associated with the HOLDERROR exception data should be taken as the first piece of data for research.
Research may provide a fix for the problem, in which case the SYSMOD and the fix can be applied
concurrently. If a fix is not available, you can either wait for one, or apply the SYSMOD using the
appropriate BYPASS operand.
• For HOLDFIXCAT exception data, the reason ID is the number of the APAR that caused the SYSMOD to
be placed in the exception status. The APAR is associated with one or more fix categories. It is optional
whether the HOLDFIXCAT exception data affects processing for the held SYSMOD, based on the fix
categories of the HOLDFIXCAT and the fix categories of interest specified by the user. The fix categories
of interest are specified on the FIXCAT operand or in the FIXCAT subentry of the active OPTIONS entry.
If a fix category value on the HOLDFIXCAT exception matches any of those of interest to the user,
then the held SYSMOD is not applied until the APAR reason ID is resolved. If there are no matching fix
categories, then the SYSMOD is not held for that HOLDFIXCAT exception.
For HOLDFIXCAT exceptions that must be resolved, the APAR is considered resolved when any one of
the following conditions is true:
– The SYSMOD named as the reason ID (the APAR) is already applied or has been superseded by a
SYSMOD that is already applied.
– The SYSMOD named as the reason ID (the APAR) is being applied concurrently or is being superseded
by a SYSMOD that is being applied concurrently.
– An applicable BYPASS operand of HOLDCLASS or HOLDFIXCAT is specified.
• For HOLDSYSTEM (internal) exception data the SYSMOD ID specified on the ++HOLD MCS may be either
– the SYSMOD ID of the containing SYSMOD or
– a SYSMOD ID of a SYSMOD superseded by the containing SYSMOD.
When it is the latter, the reason that the current SYSMOD contains the ++HOLD is because it was
originally in the SYSMOD whose SYSMOD ID appears on the ++HOLD and that SYSMOD has been
superseded by the current SYSMOD. The exception data is considered resolved if the SYSMOD specified
on the ++HOLD is already installed or is being superseded by another SYSMOD that is being installed
concurrently with the held SYSMOD. When this is the case, it is assumed that the user has already
addressed the reason for the hold.
When it is the former, the held SYSMOD should be applied by use of the BYPASS(HOLDSYS(reason-id))
operand once the reason for the hold is addressed.
• For HOLDSYSTEM (external) exception data the associated reason ID is a 1- to 7-character string used
to identify some action that must be taken before or after a SYSMOD is installed. System reason IDs are
not SYSMOD IDs and are not specified in the supersede list of a SYSMOD. Therefore, SMP/E does not
automatically release them.
SYSMODs held in this manner should be applied by use of the BYPASS(HOLDSYS"reason-id¨) operand.
If you were to remove the system reason ID by using the ++RELEASE statement, you would then be able
to install the SYSMOD, but you would also lose the information about any special processing required in
order to apply that SYSMOD on another system.
• For HOLDUSER exception data the associated reason ID is a 1- to 7-character string meaningful to the
user. User reason IDs are not SYSMOD IDs and are not specified in the supersede list of a SYSMOD.
Therefore, SMP/E does not automatically release them.
SYSMODs held in this manner should be applied by use of the BYPASS(HOLDUSER) operand. If you were
to remove the hold associated with user reason ID by using the ++RELEASE statement, you would then
be able to install the SYSMOD, but you would also lose sight of the fact the SYSMOD has some special
significance to the you, the user.
SYSMOD installation
After determining which SYSMODs are to be applied, SMP/E performs the following tasks to install the
SYSMODs:
1. Determine the order in which the SYSMODs should be processed.
2. Perform delete processing for any SYSMODs with the DELETE operand specified on their ++VER
statement.
3. Move, delete, or rename specified elements or load modules.
4. Process any inline JCLIN.
5. Select elements from the SYSMODs to be applied.
Note: The previous three items are combined and are performed as each SYSMOD is processed.
Deleted SYSMODs
A function SYSMOD can delete another function by naming the function to be deleted as an operand of
the ++VER DELETE operand. SMP/E deletes that function and all functions, PTFs, APARs, and USERMODs
dependent on it. The functions specifically named in the DELETE operand list are considered explicitly
deleted SYSMODs; all SYSMODs deleted because of their dependence on the explicitly deleted SYSMODs
are termed implicitly deleted SYSMODs.
When one function SYSMOD deletes another, SMP/E attempts to remove from the target zone all
information related to the deleted SYSMOD. In addition, SMP/E removes from the target libraries all
elements currently owned by the deleted function SYSMOD. The following processing is done:
1. SMP/E determines whether there are any function SYSMODs in the hierarchy of the function SYSMOD
being deleted, and considers those function SYSMODs to also be eligible for delete processing.
2. SMP/E deletes any SYSMOD having the same FMID value as one of the function SYSMODs being
deleted.
3. SMP/E determines all the elements that are currently owned by one of the function SYSMODs to be
deleted.
4. SMP/E deletes from the target libraries all the elements of the SYSMODs to be deleted. After the
elements are successfully deleted, SMP/E deletes the element entries from the target zone.
If a module is being deleted, SMP/E checks whether the module is contained in any cross-zone load
modules. If so, SMP/E deletes the contents of the MOD entry, except the XZLMOD subentries. If the
module is not reintroduced and the AUTOMATIC option is in effect for the cross-zone, the module is
deleted from the cross-zone load module during cross-zone processing. For more information, see
z/OS SMP/E Reference.
5. For load modules composed entirely of modules that are to be deleted, SMP/E deletes the load
modules and any aliases for the load modules from the target libraries. If the load modules were
successfully deleted, SMP/E deletes the MOD and LMOD entries from the target zone. The load
modules are also deleted from the SMPLTS, if applicable.
Note: If all the modules in a load module are being deleted or replaced, SMP/E checks whether the
load module contains cross-zone modules. If so, SMP/E does not delete the load module. Instead, it
removes the deleted modules from the load module (leaving a stub load module in the target libraries)
and leaves the LMOD entry in the target zone.
6. For load modules composed of modules to be deleted and modules not to be deleted, SMP/E delinks
the CSECTs in the deleted modules from the load module. In priority order, SMP/E obtains the CSECT
information in the following manner:
a. By gathering the list of CSECT names in the target zone MOD entry
b. By determining the CSECT operand on the ++MOD statement from the lowest function or service
level SYSMOD being installed that contains that module
c. By assuming that the CSECT name is equal to the distribution library name
The MOD entries are deleted from the target zone, but the LMOD entry remains because it is still
needed to process SYSMODs affecting the modules that have not been deleted.
For each deleted module, SMP/E adds to the LMOD entry a MODDEL subentry for the module name.
MODDEL subentries document the connection between the deleted modules and the LMOD. If any
of these deleted modules are ever reintroduced, SMP/E looks for LMODs with MODDEL subentries
for the modules and automatically rebuilds the LMODs to include these modules again. The MODDEL
subentries for the reintroduced modules are then removed from the LMOD entries.
Any aliases associated with the load modules are not deleted from the target libraries, but may be
marked nonexecutable by the link-edit utility.
7. The target zone SYSMOD entries for all implicitly deleted SYSMODs are deleted. For each explicitly
deleted SYSMOD, a target zone SYSMOD entry is created. This entry has a DELBY subentry naming the
function that caused the deletion. The SYSMOD entries for the explicitly deleted SYSMODs prevent the
deleted function SYSMODs from being reprocessed by APPLY.
Note: For a function that both deletes and supersedes another function, the SYSMOD entry contains a
SUPBY subentry instead of a DELBY subentry. This allows SYSMODs naming the deleted function as a
requisite to still be installed.
The result of this process is the deletion of all SYSMODs in the hierarchy of the specified function
SYSMOD.
Note: Always check the APPLY output to verify that all the CSECTs that were supposed to be deleted from
a load module have been deleted.
In Figure 4 on page 85, function SYSMODs HDE1203, HDE1303, and HDE1403, and service SYSMODs
UZ00009, UZ00010, and UZ00004 are deleted because DELETE(HDE1203) is specified on the ++VER
statement. CIFREQ subentries in the SYSMOD entry for a function that is deleted (either explicitly or
implicitly) are retained in the SYSMOD entry along with the DELBY subentry. So, when function HDE2000
is applied, CIFREQ subentries in the SYSMOD entry for function HDE1203 are retained, as are any CIFREQ
subentries in the SYSMOD entries for functions HDE1303 and HDE1403. Likewise, any CIFREQ subentries
for conditional requisites specified by the deleted SYSMODs are retained in the appropriate SYSMOD
entries.
Note: Remember, SMP/E assumes that when a function is deleted, the deleting function replaces all the
required elements of the deleted function. Although you can build a function SYSMOD that does nothing
but delete another function, it is your responsibility to make sure your system remains functionally
complete after the product has been deleted.
During APPLY processing, when a function is deleted from a target zone by another function, its FMID is
not removed from the FMID list in the global zone. This is because the deleted function can still be applied
in other target zones or accepted in other distribution zones.
Inline JCLIN
Inline JCLIN data for a SYSMOD is supplied following the ++JCLIN statement. JCLIN processing is done
before element processing in order to prepare the target zone.
Each entry in the target zone that is affected by the JCLIN update is saved as BACKUP entries on the
SMPSCDS before the update. These BACKUP entries record the SYSMOD ID of the SYSMOD that contained
the inline JCLIN and the type of update performed.
Note:
1. Inline JCLIN is not processed for superseded or deleted SYSMODs.
2. Inline JCLIN does not cause SMP/E to update the target libraries; only the entries in the target and
distribution zones are updated. These libraries are updated when SMP/E processes the elements in the
SYSMOD. The element statements in the SYSMOD determine which elements should be installed.
3. If SMP/E is creating an LMOD entry, and if it finds an existing LMOD entry that is for the same load
module and that contains only cross-zone subentries:
• SMP/E issues messages indicating that the cross-zone relationship might no longer be valid, and
then deletes the cross-zone subentries from the load module.
• If deleting these cross-zone entries eliminates a TIEDTO relationship with a cross-zone, SMP/E
deletes the associated TIEDTO value from the TARGETZONE entry for the set-to zone. For an
explanation of the TIEDTO value, see the "TARGETZONE Entry" section in z/OS SMP/E Reference.
• Entries for related cross-zone modules are not updated to indicate that they are no longer part of the
load module in the set-to zone.
• You must determine whether the cross-zone relationship is still valid. If so, reestablish it by using the
LINK MODULE command. For more information about the LINK MODULE command, see Chapter 11,
“The LINK MODULE command,” on page 197.
The NOJCLIN operand on the APPLY command prevents the processing of inline JCLIN. NOJCLIN can be
used if the JCLIN contains data that would overlay user-modified entries in the target zone.
If you specify NOJCLIN without an operand list, inline JCLIN is not processed for any SYSMOD that was
selected and that contained a ++JCLIN statement. If you specify NOJCLIN with an operand list, inline
JCLIN is not processed for the specified SYSMODs.
For more information about JCLIN processing, see Chapter 9, “The JCLIN command,” on page 153.
The ++MOVE, ++DELETE, and ++RENAME statements are further described in the "SMP/E Modification
Control Statements" section in z/OS SMP/E Reference.
Element selection
SMP/E uses the element statements provided in a SYSMOD to determine which elements should be
installed in the target libraries. The selection of elements from a SYSMOD is based on relationships
among SYSMODs being installed, other SYSMODs being installed, and modification identifiers of the
corresponding elements installed on the target system. Three modification identifiers are kept for each
element:
• FMID: Function modification identifier
The FMID of an element is the function SYSMOD that owns the element. Generally, an element's FMID
is established (and later changed) by the installation of a function SYSMOD. In this case, the element's
FMID is the function SYSMOD that installed the element on the target system.
• RMID: Replacement modification identifier
The RMID of an element is the last SYSMOD that replaced the element (or caused the element's FMID
to change). An element's RMID is established by the SYSMOD that first introduces the element to
the target system. The RMID of an element is changed by the installation of a SYSMOD that supplies
a replacement for the element. Element replacements are ++MOD, ++MAC, ++PROGRAM, ++SRC, +
+JAR, data element, and hierarchical file system element modification control statements, and modules
resulting from assemblies.
• UMID: Update modification identifier
The UMIDs of an element are the set of SYSMODs that have applied updates to the target system
element. A UMID is added to the set of the element's UMIDs for each SYSMOD that applies an update
to the element. Whenever a new replacement for the element is applied, the set of UMIDs is cleared
to start anew with subsequent updates applied to the new replacement. Element updates are ++ZAPs,
++MACUPDs, ++SRCUPDs and ++JARUPDs.
Note: Because data elements, hierarchical file system elements, and program elements can only be
replaced and cannot be updated, they do not have UMIDs.
The purpose of element selection is to make sure that the correct functional level of each element is
selected and that no service is inadvertently removed from the system.
Element selection in SMP/E is divided into three cases:
• The FMID of the SYSMOD being installed matches the FMID of the element on the target system.
• The FMID of the SYSMOD being installed differs from the FMID of the element on the target system.
• A function SYSMOD is being reinstalled.
The following sections describe processing for each case.
All elements
The SYSMOD being installed must specify the RMID of the associated target system element on the PRE
or SUP operand. If the RMID of the target system element is the same as its FMID, the element has not
been replaced by any SYSMOD, and so the SYSMOD being installed need not specify the RMID value in the
PRE or SUP operand.
Replacement elements
The SYSMOD being installed must be a prerequisite for, or must supersede, all UMIDs associated with the
target system element.
Assemblies resulting from ++SRC/++SRCUPD and ++MAC/++MACUPD elements are considered
replacement modules; the SYSMOD being installed must specify on the PRE or the SUP operand all UMIDs
of the corresponding target system modules that are replaced by the assembly. No exception is made for
a SYSMOD that does not specify on the PRE or the SUP operand all UMIDs associated with modules that
have been assembled, because any UMIDs associated with the module are ZAPs that are overlaid by a
new assembly.
If the SYSMOD being processed does not specify the UMID values of the elements on the PRE or the SUP
operand, SMP/E does not apply that SYSMOD. If this SYSMOD were to be applied, each of the SYSMODs
represented by those not specified in either the SUP or PRE operands would be regressed. To allow the
regression, use the BYPASS(ID) operand on the APPLY command. The MODID check condition is then
reported as a warning, and the elements are installed on the target libraries.
Update elements
When processing ++SRC/++SRCUPD and ++MAC/++MACUPD elements, it is assumed that previous
updates are still there and will be incorporated with the current update. Therefore, a SYSMOD need
not state a relationship (PRE or SUP) to a previous update. The SYSMOD being installed need not specify
on the PRE or SUP operand the UMIDs associated with the corresponding target system element. If
any element UMIDs in the target system are not specified in the SUP or PRE operands, a MODID check
warning condition is raised and is reported to the user.
The MODID check warning does not result in the termination of the SYSMOD being installed, and the
update is installed on the target system. The warning is given because SMP/E is unable to determine
with certainty that the two modifications in fact have a relationship or that there is an intersection. Thus,
it is the responsibility of the developer or the service team (that is, whoever supplies the update type
SYSMOD) to make sure that this SYSMOD specifies the correct relationships with all previous SYSMODs.
When processing ++JAR/++JARUPD elements, the SYSMOD must identify as a prerequisite or supersede
the SYSMOD that last replaced the most recently selected ++JAR element (the RMID for the element).
Therefore, the SYSMOD must specify as a PRE or SUP, the SYSMOD that last supplied a ++JAR for the
element.
In addition, the SYSMOD supplying the ++JAR/++JARUPD elements must identify as a prerequisite or
supersede all SYSMODs which have previously updated the most recently selected ++JAR element (the
UMID for the element). In other words, the current SYSMOD must specify as a PRE or SUP, all SYSMODs
that have supplied ++JARUPDs for the element since it was last replaced.
FMIDs differ
In this case, SMP/E is dealing with elements belonging to different functions and element selection is
based on functional relationships expressed by FMID and VERSION. Elements can be excluded (that is,
not selected), and processing of the SYSMOD continues under the assumption that a functionally higher
version of the element is already installed on the target system.
An element is excluded from the SYSMOD being installed unless one of the following conditions is met:
• The function SYSMOD being installed names the FMID of the target system element in the ++VER FMID
operand. In this case, the function being installed is superior to the function that owns the target system
element; therefore, the element is selected.
• The MCS associated with the element from the SYSMOD being installed has a VERSION operand, and
the FMID of the target system element is named in the VERSION list. In this case, the element from
the SYSMOD being installed is considered functionally superior to the target system element, and it is
selected.
If there is no VERSION operand on the MCS of an element, the SYSMOD IDs named in the VERSION
operand on the ++VER are used as previously described. In this situation, SMP/E may be dealing either
with a function SYSMOD or with a nonfunction SYSMOD that is changing the functional ownership
(FMID) of the elements.
Note: If a SYSMOD containing an element update (++SRCUPD, ++MACUPD, ++JARUPD, or ++ZAP)
attempts to change the ownership (FMID) of the element (with the VERSION operand), the SYSMOD
cannot be installed.
When an element is selected, its FMID becomes that of the SYSMOD from which it is selected. No further
MODID checking is done for these elements; SYSMODs are constructed so that when the functional
ownership of a module changes, either the SYSMOD changing the ownership or the data stored in the
target zone SYSMOD entries (the CIFREQ data) contains sufficient information to prevent any service or
functional regressions.
Reinstalling a function
Element selection gets more complicated only for function SYSMODs that are being reinstalled and have
elements that intersect with corresponding elements having the same FMID as themselves (see “FMIDs
match: MODID verification” on page 87). The processing for this situation proceeds as in “FMIDs match:
MODID verification” on page 87. When a MODID check error condition is detected, however, SMP/E
checks further to determine whether the service level of the target system element is higher than that of
the element from the SYSMOD being reinstalled. If so, the element from the SYSMOD being reinstalled is
not selected, and processing of the SYSMOD continues. If not, the SYSMOD is terminated with a MODID
check error.
Note: SMP/E checks whether load modules to be updated contain modules from a cross-zone with the
same name as modules currently selected to update the load module. This is done by checking the load
module's XZMOD subentries. If this condition exists, SYSMOD processing stops.
Element installation
Once the proper SYSMODs have been selected and the proper functional and service level of each
element has been determined, SMP/E begins the process of calling utility programs to get the elements
installed in the appropriate target libraries. The following sections describe the process of installing each
of the element types supported by SMP/E.
Deleting elements
When the DELETE operand is specified on the element MCS, macros, modules, source, data elements,
hierarchical file system elements, and program elements are deleted from a target library. When SMP/E
processes an element specifying the DELETE operand in its MCS statement, it first saves the current
element entry from the target zone in a BACKUP entry on the SMPSCDS. This BACKUP entry includes
the SYSMOD ID of the SYSMOD containing the MCS statement that caused the change, plus an indicator
for the type of change (DEL) made. After SMP/E saves the BACKUP entry for the element, it deletes the
element from the target library and the target zone.
For load modules composed entirely of modules that are to be deleted, SMP/E deletes the load modules
and any aliases for the load modules from the target libraries. SMP/E also deletes the LMOD entry from
the target zone.
For load modules composed of modules to be deleted and modules not to be deleted, SMP/E delinks
the CSECTs in the deleted modules from the load module. In priority order, SMP/E obtains the CSECT
information in the following manner:
• From the list of CSECT names in the target zone MOD entry.
• From the CSECT operand on the ++MOD statement from the lowest function or service level SYSMOD
being installed that contains that module.
• From the module name.
Any aliases associated with the load modules are not deleted from the target libraries, but might be
marked nonexecutable by the link-edit utility. The MOD entries are deleted from the target zone, but the
LMOD entry remains because it is still needed to process SYSMODs affecting the modules that have not
been deleted.
Note: If a module is being deleted, SMP/E also checks whether the module is contained in any cross-zone
load modules. If so, SMP/E deletes the contents of the MOD entry except the XZLMOD subentries. If
the module is not reintroduced and the AUTOMATIC option is in effect for the cross-zone, it is deleted
from the cross-zone load module during cross-zone processing. For more information, see z/OS SMP/E
Reference.
• For macro libraries, no deleting is done. This is because the SYSMOD replacing the macro might fail, and
there may be other SYSMODs that cause assemblies that use the macro.
• For data element, hierarchical file system element, and program element libraries, any data element,
hierarchical file system element, or program element that is to be replaced by one of the SYSMODs
being installed is deleted from the library.
• For load libraries, SMP/E determines which load modules within the library are composed only of
modules copied during system generation and are being replaced by the SYSMODs being installed.
Such load modules are deleted from the library. If a load module contains a module that is not being
replaced, that load module is not deleted.
SMP/E then calls the copy utility to perform the actual compress operation.
Note:
1. To reclaim as much space as possible before installing the SYSMODs, members are deleted before
the library is compressed. SMP/E processes one library at a time, first deleting members, then
compressing the library.
2. When you install a function that deletes another function but supplies no elements, no libraries are
compressed.
Macro replacements
One of the steps in actually updating the target libraries is to install macro replacements. Multiple
SYSMODs can be applied, each of which can contain a replacement for the same macro. When two or
more SYSMODs replacing the same macro are applied concurrently, SMP/E determines the version at the
highest function and service level. For a full explanation of how SMP/E determines the functional and
service level of an element, see “Element selection” on page 87.
SMP/E then schedules the actual update of the target macro library. The library to be updated is
determined from the SYSLIB information in the target zone MAC entry. For further information about the
initial setting of the MAC SYSLIB, see “Adding new elements other than modules to the target libraries” on
page 67.
If there is no SYSLIB value in the MAC entry, SMP/E looks for a DLIB entry with the same name as the
DISTLIB value in the MAC entry and uses the SYSLIB value from the DLIB entry.
Note: In this case, before you run the APPLY command, make sure there is only one SYSLIB subentry in
the DLIB entry and that it specifies the ddname of the correct library.
If no SYSLIB is present, the SMPMTS is used as the target macro library. (For further information about the
use of the SMPMTS as a target macro library, see “Use of the SMPMTS and SMPSTS as target libraries” on
page 69.)
The actual update is done by calling either the copy utility or the update utility.
• The copy utility is used in these cases:
– The macro was packaged in a relative file (the RELFILE operand was specified).
– The macro was packaged in a text library (the TXLIB operand was specified) and had no alias names
—that is, no MALIAS names are in the target zone MAC entry and no MALIAS operands are on the
++MAC statement.
– The macro was packaged inline, it had no alias name, and the SSI operand was not specified.
The SSI operand is ignored when TXLIB or RELFILE is specified.
• The update utility is called in these cases:
– The macro was packaged in a text library, and the element had an alias name.
– The macro was packaged inline, and either it had an alias name or the SSI operand was specified.
Upon return from either utility, SMP/E issues a message indicating whether the macro was replaced
successfully.
Macro updates
After all the macro replacements have been done, any macro updates present can be scheduled. Again,
multiple SYSMODs may contain updates for the same macro. When two or more updates to the same
macro are being processed concurrently, SMP/E merges the text from each update based on the sequence
numbers in columns 73 to 80. The order of the merge is based on the processing order expressed by the
PRE operands on the ++VER statements or by internal defaults, or both, as follows:
• If SMP/E finds a processing order relationship between all the SYSMODs being processed, the merge
occurs according to that order.
• If any of the SYSMODs being processed do not have a processing order relationship with other
SYSMODS that do have a processing order, the updates from the unrelated SYSMODs are merged after
the updates from SYSMODs that have a processing order relationship.
• If SMP/E cannot determine the processing order of the SYSMODs, it merges the updates for PTFs first,
APAR fixes second, and USERMODs third. Within each type, there is no specified order.
SMP/E then calls the update utility to perform the actual target library updating.
The library to be updated is determined from the SYSLIB information in the target zone MAC entry. For
more information about how SMP/E determines the MAC SYSLIB, see “Macro replacements” on page 91.
If no SYSLIB is present, the SMPMTS is used as the target macro library. For further information about the
use of the SMPMTS as a target macro library, see “Use of the SMPMTS and SMPSTS as target libraries” on
page 69. If there is no SYSLIB and the macro does not exist in the SMPMTS, the macro is obtained from
the distribution library and then updated. Upon return from the update utility, SMP/E issues a message
indicating whether the update was successful.
Note: SMP/E checks only whether the NAME operand on the ./ CHANGE statement specifies the same
element as the ++MACUPD statement. (This checking is done during RECEIVE processing.) Other ./
CHANGE operands may produce undesired results. For example, if you code UPDATE=INPLACE and there
is no SYSLIB in the MAC entry, the distribution library may be updated.
Source replacements
Another step in actually updating the target libraries is the installation of source replacements. Multiple
SYSMODs can be applied, each of which can contain a replacement for the same source.
When two or more SYSMODs replacing the same source are applied concurrently, SMP/E determines
the version at the highest function and service level. For full explanation of how SMP/E determines the
functional and service level of an element, see “Element selection” on page 87.
SMP/E then schedules the actual update of the target source library. The library to be updated is
determined from the SYSLIB information in the target zone SRC entry. For further information about the
initial setting of the SRC SYSLIB, see “Adding new elements other than modules to the target libraries” on
page 67.
If there is no SYSLIB value in the SRC entry, SMP/E looks for a DLIB entry with the same name as the
DISTLIB value in the SRC entry and uses the SYSLIB value from that DLIB entry.
Note: In this case, before you run the APPLY command, make sure there is only one SYSLIB subentry in
the DLIB entry and that it specifies the ddname of the correct target library.
If no SYSLIB is present, the SMPSTS is used as the target source library. For further information about the
use of the SMPSTS as a target source library, see “Use of the SMPMTS and SMPSTS as target libraries” on
page 69.
The actual update is done by calling either the update utility or the copy utility.
• The copy utility is used if the source replacement resides in either a text library (that is, the TXLIB
operand was specified) or in a RELFILE (the RELFILE operand was specified). When TXLIB or RELFILE
is specified, the SSI operand is ignored.
• The update utility is called if the source replacement was contained inline and the SSI operand was
specified.
Upon return from either utility, SMP/E issues a message indicating whether the source has been replaced
successfully.
Source updates
After all the source replacements have been done, any source updates present can be scheduled. Again,
multiple SYSMODs can contain updates for the same source. When two or more updates to the same
source are being processed concurrently, the text from each is merged. Looking at the sequence numbers
in columns 73 to 80, SMP/E processes the updates in the order expressed by the PRE operands on the
++VER statements or by internal defaults or both as follows:
• If SMP/E finds a processing order relationship between all the SYSMODs being processed, the merge
occurs according to that order.
• If any of the SYSMODs being processed do not have a processing order relationship with other
SYSMODs that do have a processing order, the updates from the unrelated SYSMODs are merged after
the updates from SYSMODs that have a processing order relationship.
• If SMP/E cannot determine the processing order of the SYSMODs, it merges the updates for PTFs first,
APARs second, and USERMODs third. Within each type, there is no specified order.
SMP/E then calls the update utility to do the actual updating of the target library. The library to be updated
is identified from the SYSLIB information in the target zone SRC entry. For more information about how
SMP/E determines the SRC SYSLIB, see “Source replacements” on page 92. If no SYSLIB is present, the
SMPSTS is used as the target source library. For further information about the use of the SMPSTS as a
target source library, see “Use of the SMPMTS and SMPSTS as target libraries” on page 69. If there is no
SYSLIB and the source does not exist in the SMPSTS, the source is obtained from the distribution library
and then updated. Upon return from the update utility SMP/E issues a message indicating whether the
update was successful.
Note: SMP/E checks only whether the NAME operand on the ./ CHANGE statement specifies the same
element as the ++SRCUPD statement. Other ./ CHANGE operands may produce undesired results. For
example, if UPDATE=INPLACE is coded and there is no SYSLIB in the SRC entry, the distribution library
may be updated.
Assemblies
This section describes these topics:
• Assembling source
• Assemblies caused by macros
• Reusing previous assemblies
Assembling source
When a SYSMOD contains source to be assembled, it can supply either just the source (++SRC/+
+SRCUPD) for that element, or it can supply both the source (++SRC/++SRCUPD) for the element and
an object deck (++MOD) for the same element.
• Source only: When the SYSMOD supplies only the source and no corresponding object deck, the
element is assembled.
• Source and ++MOD: When the SYSMOD supplies both the source and the corresponding object deck,
SMP/E determines whether the object deck can simply be link-edited into the target system or whether
the source must be assembled. It does so by considering the following questions:
– Was ASSEM specified on the APPLY command?
– Are there any updates to the source that the SYSMOD supplying the object does not know about
(UMIDs in the target zone SRC entry)?
– Has another SYSMOD, which this SYSMOD does not know about, assembled the module (RMID of the
target zone MOD entry for the module to be assembled)?
– Is the ASSEMBLE indicator set for the corresponding MOD?
If the answer to any of these questions is yes, the module is assembled if SMP/E can determine
where the resultant assembled object should go. SMP/E knows where to put the assembled object if
there is a target zone MOD entry for the resultant object and a load module into which the module
should be link-edited. If the MOD entry cannot be found or is not included in the same SYSMOD, a
warning message is issued. Processing of the SYSMOD continues without assembling or link-editing the
module. For further information on how SMP/E processes the object deck after assembly, see “Module
replacements” on page 95.
Module replacements
The modules (++MODs and assemblies from ++SRCs) selected from a SYSMOD are generally link-edited
to a load module library on the target system. SMP/E determines the load module to which a module
belongs by checking for load module (LMOD) subentries in the target zone MOD entry for the module
and by looking at the MODDEL subentries for all LMOD entries. The link-edit characteristics and control
statements for the link-edit are found in the target zone LMOD entry for the appropriate load module. For
details on information that is passed to the link-edit utility, see “Link-edit parameters and load module
attributes” on page 95.
Note: If SMP/E cannot determine the load module for a module, it presumes that the configuration of the
target system does not require the module, and does no link-edit or copy. However, it replaces the RMID
subentry of the MOD entry with the ID of the SYSMOD supplying the ++MOD or causing the assembly.
Specific processing depends on whether the load module was part of a totally copied library, selectively
copied, or defined by link-edit JCL. In addition, special processing is done for the nucleus load module
(IEANUC01). For more information, see these sections:
• “Load modules in totally copied libraries” on page 95
• “Load modules that were selectively copied” on page 96
• “Load modules defined by Link-edit JCL” on page 96
• “MODDEL subentry processing for the nucleus load module (IEANUC01)” on page 97
having the same name as the module's name, if one does not already exist. An INCLUDE statement is
generated for the module, but no INCLUDE statement is generated for the current version of the load
module.
link-edit JCLIN as being included in the load module. In addition, an INCLUDE statement is built to
include the current version of the load module from the SMPLTS library. This is done to obtain the
other modules that make up the load module.
When the "base" version of a load module is link-edited into the SMPLTS, any CHANGE and REPLACE
link-edit control statements defined for the load module are passed to the link-edit utility, as well as
all link-edit options defined for the load module. (No link-edit control statements other than CHANGE
and REPLACE are processed.) This link-edit results in unresolved external references, which is
considered normal.
2. Building the executable version of the load module. The executable version of the load module
is built in the target libraries using the load module's SYSLIB allocation (the CALLLIBS subentry list
in its LMOD entry) and the "base" version of the load module from the SMPLTS data set. The only
INCLUDE statement built is for the "base" version of the load module from the SMPLTS data set.
Note:
a. If the "base" version of the load module does not exist in the SMPLTS data set, the load module is
not link-edited.
b. A load module can reside in an executable target library before a base version of it has been built
in the SMPLTS. If the load module had included cross-zone modules through the use of the LINK
MODULE command, these modules are no longer included after the installation of a SYSMOD that
causes the load module to be built into the SMPLTS. (Warning messages are issued to indicate
this.) After the installation of such a SYSMOD, the LINK MODULE command needs to be rerun in
order to include those cross-zone modules back into the load module.
Module updates
For each ++ZAP element within a SYSMOD, SMP/E looks for all the load modules to which the distribution
module was either linked or copied (similar to the processing done for ++MODs). SMP/E then attempts to
install the superzap to each of these load modules. If the load module being zapped contains a CALLLIBS
subentry, the SMPLTS version of the load module is also zapped, if the load module also contains XZMOD
subentries, or if the set-to zone does not have an UPGLEVEL subentry.
In applying the ZAP, SMP/E performs two passes: the first to process the VER control cards, and the
second to process the REP control cards. The REP pass is performed only if the VER pass has been
completed successfully for all load modules to be changed.
Note: For a list of data element types, refer to the "Data Element MCS" section in z/OS SMP/E Reference.
The actual update to the library is done by either SMP/E or the copy utility.
• SMP/E updates the library in these cases:
– The data element was packaged inline and has been transformed by GIMDTS. All control information
is removed, the transformed data element is changed back to its original format, and the target
library is updated with the element.
– The data element must be reformatted to be compatible with the target library. For more information
on reformatting data elements, see “Reformatting data elements” on page 98.
– The target library is a sequential data set.
• The copy utility updates the library in all other cases. A COPY control statement is passed to the copy
utility.
Table 5. Installation actions for input and output data sets (continued)
Input format Output format Condition Action
Legend:
Data Set Format Descriptors
x
control character; A (ANSI) or M (machine)
y
control character; can be A (ANSI) or M (machine), but not the same as x
Actions
Copy
If the input data element is a member of a PDS (or PDSE) and the output element is a member of a
PDS (or PDSE), SMP/E uses the copy utility to install the element. If output is a sequential data set,
SMP/E installs the element itself.
Reformat
SMP/E installs the element with reformatting.
Error
Incompatible input/output RECFM combination. Installation fails.
At the end of processing, SMP/E issues a message indicating whether the data element has been replaced
successfully.
the original program element are of different types (that is, one is a PDS and the other a PDSE), SMP/E
allocates a temporary SMPTLOAD data set of the same type as the data set that contained the original
program element and uses the copy utility to reload a program element and its aliases to the SMPTLOAD
data set. SMP/E then uses the copy utility to place the program element and its aliases into the target
library. The input data set for the copy operation is the SMPTLOAD data set, if one was required, or the
retransformed temporary data set, if an SMPTLOAD data set was not required.
At the end of processing, SMP/E issues a message indicating whether the program element has been
replaced successfully.
Hierarchical file system element and Java Archive file replacements are processed in exactly the same
way. Before any processing occurs, SMP/E checks to make sure that the hierarchical file system (HFS)
copy utility is available (BPXCOPY is the default). If it is not, SMP/E continues APPLY processing. If it is
later discovered that a hierarchical file system element or Java Archive file needs to be processed from a
selected SYSMOD, SMP/E terminates that SYSMOD.
When the HFS copy utility is available, a hierarchical file system element or Java Archive file is processed
by that utility. Before invoking the HFS copy utility, SMP/E deletes the current symbolic links of the
element, and checks the linknames of the current element against those of the replacement. If any of the
existing linknames are different, SMP/E deletes only those that will not be replaced. SMP/E then calls the
HFS copy utility to replace the element. The HFS copy utility will copy the element into its target directory,
replace current linknames, and create new linknames and all symbolic links.
If the hierarchical file system element or Java Archive file identifies a shell script (on the SHSCRIPT
subentry of the element's MCS statement), SMP/E invokes the shell script to perform installation-related
activities on behalf of the element. If the identified SHELLSCR element is also being replaced, to ensure
the latest version of the SHELLSCR element is used, SMP/E will copy the SHELLSCR element to its target
directory before invoking the shell script. Depending on the options chosen on the SHSCRIPT subentry,
SMP/E invokes the shell script before or after copying the element to a UNIX file system. Shell scripts,
which are themselves hierarchical file system elements, are usually provided by the product packager.
The hierarchical file system element or Java Archive file can be packaged in relative file format, text
library format, or inline. If the element was packaged inline after being transformed, SMP/E retransforms
the element back to its original format before invoking the HFS copy utility.
Note: The maximum total length of the parameters to be passed is X'FFFF' bytes. If the length exceeds
this number, SMP/E truncates the parameters at the limit and passes this value to the HFS copy utility.
• The alternate ddnames include any PRINT values specified in the HFSCOPY UTILITY entry, the ddname
of the input data set to be used by the utility, and the ddname of the output data set to be used by the
utility (the SYSLIB ddname for the element).
If the replacement element's MCS specified an RMID for the element (the RMID operand), the
specified value is used.
– When a replacement element is applied, all UMID subentries are deleted.
If the replacement element's MCS specified a list of UMIDs for the element (the UMID operand),
these UMIDs replace any existing UMIDs for the element.
– UMID subentries are added when updates for the element are applied. The UMIDs are the IDs of the
SYSMODs supplying the updates.
If a SYSMOD with an update modification to an element supersedes another SYSMOD with an update
modification to the same element, the UMID subentry for the superseded SYSMOD is deleted from
the element entry.
• SYSLIB subentry
If a DLIB entry was used to determine the SYSLIB value identifying the target library for an element or
load module, that SYSLIB value is added to the corresponding element entry or LMOD entry.
• CSECT names
The CSECT information from the ++MOD statement is saved in the target zone MOD entry. The
information saved is determined in the following way:
– If the SYSMOD that the selected version of the module came from contained the CSECT operand, the
CSECT names present there are either added to the target zone MOD entry (if no CSECT information
was already there) or are used to replace the existing list of CSECT names in the target zone MOD
entry.
– If the SYSMOD that the selected version of the module came from did not contain the CSECT
operand, SMP/E checks to see if any other SYSMOD applicable to the same FMID was also being
applied. If so, and if any of those SYSMODs contained the CSECT operand, the CSECT information
from the SYSMOD at the highest service level is used.
Superseded SYSMODs
When one SYSMOD is superseded by another, SMP/E makes a record of this by adding the name of the
superseding SYSMOD to the entry for the superseded SYSMOD.
• When there is only one superseding SYSMOD, its name is saved in the LASTSUP subentry.
• When there are several superseding SYSMODs, the name of the last one is saved in the LASTSUP
subentry, and a complete list is saved in the SUPBY subentry.
If the superseded SYSMOD has not been previously applied, its target zone SYSMOD entry contains only
the LASTSUP information. Such a SYSMOD entry is called a "dummy entry". Because the superseded
SYSMOD had not been previously applied, SMP/E does not know what type of SYSMOD it was (function,
PTF, APAR, or USERMOD).
Deleted SYSMODs
When one SYSMOD is deleted by another, SMP/E makes a record of this by adding the name of the
deleting SYSMOD to the DELBY subentry of the deleted SYSMOD. If the deleted SYSMOD has not been
previously applied, its target zone SYSMOD entry contains only the DELBY information. Such a SYSMOD
entry is called a "dummy entry". Although the deleted SYSMOD had not been previously applied, SMP/E
assumes that it was a function SYSMOD, because only function SYSMODs can be explicitly deleted.
SMPPTS
Read with shared enqueue.
Target zone
Update with exclusive enqueue.
4. Load module build
DLIB zone
Read with shared enqueue.
Global zone
Read with no enqueue.
Target zone
Update with exclusive enqueue.
SMPPTS
Read with shared enqueue.
5. Utility calling
Target zone
Update with exclusive enqueue.
6. Cross-zone requisite reporting phase
Cross-zones
Read with shared enqueue.
Global zone
Read with shared enqueue.
Target zones
Update with exclusive enqueue.
7. Global zone update
Global zone
Update with exclusive enqueue.
Target zone
Update with exclusive enqueue.
SMPPTS
Update with exclusive enqueue.
8. Cross-zone processing
Cross-zones
Read with shared enqueue.
Cross-zones
Update with exclusive enqueue.
Global zone
Read with no enqueue.
9. Termination
All resources are freed.
The BUILDMCS command provides a more automated and reliable method for copying products from
one pair of target and distribution zones and their libraries into another pair of target and distribution
zones and their associated libraries. The BUILDMCS command creates MCS and JCLIN needed as input
to RECEIVE, APPLY, and ACCEPT processing for reinstallation of products in another SMP/E environment.
Reinstallation allows for the requisite checking needed to ensure the environment into which the product
is being installed is appropriate. The output of the BUILDMCS command is a superseding function
SYSMOD for each base function specified and a superseding function SYSMOD for any dependent
functions related to an FMID specified on the BUILDMCS FORFMID operand. These superseding functions
include all maintenance and user modifications that have been installed in the zone specified for the
BUILDMCS command.
Note: The BUILDMCS command does not create MCS for any FEATURE or PRODUCT data that may
be associated with an FMID. If you wish to copy the FEATURE and PRODUCT data for an FMID, you
can use the GZONEMERGE FORFMID command to merge all FEATURE and PRODUCT entries for the
desired FMIDs from the source global zone to the target global zone. You must then delete any unwanted
FEATURE, PRODUCT, SYSMOD, and HOLDDATA entries that were created by GZONEMERGE.
Syntax
BUILDMCS Command
,
Operands
FORFMID
specifies the names of the FMIDs or FMIDSETs for which the MCS and JCLIN are to be created. This is
a required operand.
The specified FMIDs (including the FMIDs obtained from the FMIDSET values) must be valid for the
BUILDMCS command. An FMID is valid only if all of the following are true:
• the FMID exists in the zone specified on the SET command
• the FMID is a function
• the FMID is not deleted by another FMID
• the FMID is not superseded by another FMID
• the FMID is not in error
No MCS nor JCLIN is created for an invalid FMID. If all of the FMIDs are invalid, then no MCS nor
JCLIN is created at all.
Note:
1. zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are allocated dynamically by use of
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be
used to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
2. In addition to the data sets listed here, the BUILDMCS command also uses the DDDEFs for the
distribution libraries, if they are present in the set-to zone. While the BUILDMCS command will
function if these DDDEFs are not present in the set-to zone, the resulting output must be edited to
add the information that would otherwise have been extracted from the DDDEF entries. IBM therefore
recommends that you ensure that these DDDEFs are in the set-to zone before you use the BUILDMCS
command.
Usage notes
Product intersections
The BUILDMCS command provides facilities to help copy a product from one SMP/E environment and
install it into another. The BUILDMCS command is not intended to be used with all products. It is intended
to be used for products that have no intersections with other products. These intersections come in two
forms:
1. Shared Load Modules
A shared load module is any load module that contains modules from more than one product. If the
product to be copied supplies modules that reside in load modules along with modules from other
products, then that product has shared load modules.
2. Common Elements
A common element is any element with the same name and type that is supplied by more than one
product. One product may take ownership of the element from another product using the VERSION
operand.
If a product has either of these types of intersections with another product, the BUILDMCS command
output for that product might be incorrect, because SMP/E does not have enough information in the zone
entries to correctly create a corresponding superseding function SYSMOD.
Other considerations
Maintenance level
If running the BUILDMCS command from a target zone, you must ensure that the target and
distribution zones are at the same maintenance level before issuing the command. This will ensure
that the resulting MCS will be correct.
When deciding whether the BUILDMCS command is the appropriate method for copying a particular
product, you should also consider these situations:
Element Versioning
If the original ++FUNCTION or any PTFs for the product to be copied supplied elements using the
VERSION operand on the element MCS, the VERSION operand will not be included on the element
MCS created by the BUILDMCS command. The version information is not saved in the zone entries
during APPLY or ACCEPT processing and is therefore not available to the BUILDMCS command.
Macros causing assemblies
If the original ++FUNCTION or any PTFs for the product to be copied used the ASSEM or PREFIX
operands on the ++MAC MCS to supply macro instructions, these ASSEM or PREFIX operands will not
be included on the ++MAC MCS created by the BUILDMCS command. This information is not saved in
the zone entries during APPLY or ACCEPT processing and is therefore not available to the BUILDMCS
command.
Move, Rename, and Delete MCS
If the original ++FUNCTION or any PTFs for the product to be copied supplied ++MOVE, ++RENAME,
or ++DELETE MCS, these MCS will not be included in the MCS created by the BUILDMCS command.
Load module definition
It is possible for more than one product to supply modules that reside in a single load module. SMP/E
cannot determine from the zone entry information which product supplied the JCLIN link edit step to
define the load module. Therefore, it is possible the BUILDMCS command will create a JCLIN link edit
step to define a load module, even though the product to be copied did not originally supply the JCLIN
or define the load module.
Target zones and LEPARM and DALIAS information
Target zones do not contain the LEPARM and DALIAS information for MOD entries. Therefore, when
the BUILDMCS command is issued against a target zone, the generated ++MOD MCS will not contain
the LEPARM and DALIAS information.
Target zone and distribution zone service levels
Ensure that the target and distribution zones into which SMP/E is currently installed are at the same
service level. This can be determined by running either REPORT SYSMODS or LIST NOACCEPT/LIST
NOAPPLY. If any differences are listed in the output, either ACCEPT or RESTORE the differences.
Output
Output from the BUILDMCS command includes reports, as well as output to SMPPUNCH.
Reports
The following reports are produced by the BUILDMCS command:
• BUILDMCS Entry Summary Report
• BUILDMCS Function Summary Report
• Dynamic Allocation Report
See Chapter 34, “SMP/E reports,” on page 461 for descriptions of these reports.
SMPPUNCH output
The BUILDMCS command creates complete superseding function SYSMODs. The SYSMODs are written to
the SMPPUNCH data set.
Example
Suppose that you want to propagate an FMID, such as SMP/E V3R6, to another system. You could do this
with the BUILDMCS command by following these steps:
1. Ensure that the target and distribution zones into which SMP/E is currently installed are at the same
service level. This can be determined by running either REPORT SYSMODS or LIST NOACCEPT/LIST
NOAPPLY. If any differences are listed in the output, either ACCEPT or RESTORE the differences.
Note: If you ACCEPT the differences, you are raising the service level in the distribution zone. If you
RESTORE the differences, you are lowering the service level in the target zone.
2. Use the distribution zone as the zone identified on the SET command. However, if you do not ACCEPT
JCLIN (ACCJCLIN is not specified in the DLIBZONE entry), then you should use the target zone as the
zone against which the BUILDMCS command is to be run. SMP/E needs the JCLIN to create entries
such as load modules. The JCLIN exists in the distribution zone only if ACCJCLIN is specified in the
DLIBZONE entry.
3. Run BUILDMCS against the zone identified in the previous step, as shown in this example:
4. Use the DDDEF entry information from the BUILDMCS Entry Summary Report to determine which
DDDEFs must be defined in the new target and distribution zones and define them.
5. RECEIVE, APPLY, and ACCEPT the output in the SMPPUNCH data set that was generated by the
BUILDMCS command.
Processing
FMID applicability
SMP/E first determines whether each specified FMID is valid, as previously defined under the description
of the FORFMID operand. Once an FMID has been determined to be valid, SMP/E begins to collect the
information needed to build the ++FUNCTION and ++VER statements for the FMID. For the ++FUNCTION
MCS, SMP/E sets the SYSMOD ID to the specified FMID and REWORK operand to the current date. SMP/E
creates the FESN operand only if the FESN subentry is specified in the SYSMOD entry.
SMP/E also begins building one ++VER statement for the entire FMID. The ++VER MCS information stored
in the FMID's SYSMOD entry in the set-to zone is saved. However, all the SYSMODs associated with this
FMID must first be determined before the entire ++VER statement can be built.
SMP/E then determines:
• All SRELs supported by the set-to zone
• All SYSMODs originally listed to be deleted upon installation of this FMID
• If this FMID is a dependent function, the FMID of the base function
• All functions originally listed that cannot exist in the same zone as this function
• All SYSMODs originally listed as prerequisites for this SYSMOD
• All SYSMODs originally listed to be superseded by this SYSMOD
• All functions previously listed on the VERSION operand of the specified function
function contains both UR11111 and AR11111 on the SUP operand. If a SYSMOD is identified as
associated to an FMID and has a status of ERROR, that PTF is still brought forward and included in
the superseding function.
Once all associated SYSMODs are identified, the ++IF statements are created. All SYSMOD CIFREQ
subentries in the set-to zone are examined. A single ++IF MCS is created for each SYSMOD CIFREQ
subentry that was caused by the specified function or any of the associated SYSMODs to be superseded
by the specified function. The CIFREQ subentries appear within the SYSMOD entry for a function SYSMOD
named on the FMID operand of a ++IF. The subentry contains the required SYSMOD and the causer
SYSMOD. The causer is the SYSMOD that originally supplied the ++IF MCS.
If a module has no LMOD subentries and the module's distribution library is not a totally copied library,
then SMP/E cannot determine the load modules into which the module should be copied or link edited.
This means when the function SYSMOD is applied, SMP/E cannot determine into which target libraries this
module should be installed.
SMP/E looks for the zone entry for each load module in the list of candidates. If the entry is found, the
information from the entry is used when building the JCLIN to define the load module.
If a load module's LMOD entry contains a MODDEL subentry list, SMP/E cannot carry forward any
information in the MCS or JCLIN about modules that were once part of this load module, but have since
been deleted. This is because there is no information about the deleted module, other than its name, to
carry forward.
If a load module contains cross-zone (XZMOD) subentries, SMP/E does not carry forward any information
in the MCS or JCLIN regarding the cross-zone modules.
If the LMOD entry is not found, and the load module is part of a totally copied distribution library, then
the target library information from the DLIB entry is saved for use when building the JCLIN copy steps to
define the load module. If the LMOD entry is not found and the load module is not part of a totally copied
distribution library, processing will continue, but the superseding ++FUNCTION created will be incorrect,
because this load module will not be defined and some modules will not be installed in any target library.
Create JCLIN
Once all of the elements and load modules have been identified as previously described, JCLIN is built to
define these entries:
• load modules, both copied and link edited
• in-line assembler source (ASSEM entries)
• totally copied distribution libraries (DLIB entries)
The intent is not to completely reproduce the JCLIN originally supplied by the subject FMID, but only to
produce the JCLIN necessary to define those entries. For example, COPY steps will not be created for
macros and source because the elements' MCS will contain all the information needed to properly install
the elements; hence JCLIN is not necessary to define these elements. In addition, most DD statements
found in JCLIN steps that identify target and distribution libraries and temporary work data sets are
ignored by JCLIN processing. Therefore, unnecessary DD statements will not be created as part of the
JCLIN for the BUILDMCS command output.
Load modules
For each candidate load module, SMP/E determines all of the modules that make up that load module.
At least one of the component modules is associated with the superseding function (FMID), but others
may not be. This is the case if a load module is composed of modules from multiple products, or FMIDs.
A ++MOD statement will be built only for modules associated with the superseding function, but the
load module is completely defined in the JCLIN with INCLUDE statements for all component modules.
This is necessary because SMP/E cannot accurately determine from the zone information whether the
superseding function or its associated SYSMODs supplied the JCLIN to fully define a load module, or only
added modules to the load module using the LMOD operand on the ++MOD statement.
If a candidate load module's LMOD entry indicates the load module was copied, a JCLIN copy step to
selectively copy the load module into the target libraries is created. Otherwise, a JCLIN link edit step is
created. This JCLIN contains the link edit attributes, link edit control cards, and target library information
from the LMOD entry. An INCLUDE statement is created for all modules defined as a component of
the load module. The module's DISTLIB value is the ddname specified on the INCLUDE statement. The
SYSLIB DD statement concatenation is also created if the LMOD entry contains a CALLLIBS subentry list.
occurs when SMP/E is building a load module and needs to include all modules that compose the load
module, and the assembled ASSEM entry supplies the object deck for a needed module. The MOD entry
created as a result of an assembled ASSEM entry has a DISTLIB of SYSPUNCH and no FMID values. Also,
the SYSMOD that caused the assembly of an ASSEM entry contains no indicator that the ASSEM was used.
Since SYSMOD entries will not identify candidate ASSEM entries, another method is used to determine the
needed ASSEMs. When determining the modules that compose a load module, SMP/E will identify those
modules with a DISTLIB of SYSPUNCH and no FMID values. If an ASSEM entry by the same name exists in
the zone, then a JCLIN assembler step is created to identify the ASSEM entry. A corresponding INCLUDE
statement with a ddname of SYSPUNCH is created in the link edit step for all load modules that contain
the assembled ASSEM entry.
DLIB entries
For each element in the list of candidates, SMP/E determines if the element's distribution library has been
totally copied to a target library. A distribution library has been totally copied if a DLIB entry describing
the distribution library is found in the zone. The SYSLIB subentry of the DLIB entry identifies the target
library. If any totally copied distribution libraries are found, a JCLIN copy step is created that contains one
COPY statement for each DLIB entry.
The CLEANUP command deletes entries from the SMPLTS, SMPMTS, SMPSTS, and SMPSCDS data sets.
This is helpful for:
• APPLY followed by ACCEPT when several target libraries have been created from the same distribution
library: When a SYSMOD is accepted into a distribution zone, the entries associated with the SYSMOD
are automatically deleted from the SMPMTS, SMPSTS, and SMPSCDS for the related target zone.
However, even if the SYSMOD was also applied to other target zones created from the same distribution
zone, these data sets for the other target zones are not cleaned up.
To delete the entries from these data sets, you can accept the SYSMOD and name these other
target zones as the related zone. However, this updates the distribution library each time, which is
time-consuming and can use up space in the distribution library data set. Instead, you can use the
CLEANUP command, which deletes entries from the SMPMTS, SMPSTS, and SMPSCDS without updating
the distribution library.
• ACCEPT followed by APPLY: When a SYSMOD is applied after it has been accepted, the entries
associated with it are not deleted from the SMPMTS, SMPSTS, and SMPSCDS. To delete these entries,
you can use the CLEANUP command.
• UPGRADE: When the UPGRADE command has been run to create an UPGLEVEL subentry for a zone, the
SMPLTS data set for that zone does not need to retain a load module or program object unless it has
both CALLLIBS and XZMOD subentries. You can use the CLEANUP command on the SMPLTS data set
for a newly upgraded zone to delete from it any no longer needed load modules or program objects.
You only need to run the CLEANUP command against an existing SMPLTS once, when its zone is first
upgraded. Thereafter, SMP/E will no longer create unneeded load modules or program objects in it. You
will never need to run the CLEANUP command (for this purpose) for an SMPLTS for a zone newly created
with an UPGLEVEL subentry.
Syntax
CLEANUP Command
CLEANUP
COMPRESS (ALL)
,
( ddname )
•
,
RC( command=rc )
Operands
COMPRESS
indicates the ddnames of the data sets to be compressed after the entries are deleted. The valid data
sets are SMPMTS, SMPSCDS, SMPSTS, and (if the set-to zone has an UPGLEVEL subentry) SMPLTS.
• If you specify ALL, all the valid data sets are compressed.
• If you specify one or more specific ddnames, only the data sets they apply to are compressed.
Note: COMPRESS can also be specified as C.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the CLEANUP command.
Before SMP/E processes the CLEANUP command, it checks whether the return codes for the specified
commands are less than or equal to the values specified on the RC operand. If so, SMP/E can process
the CLEANUP command. Otherwise, the CLEANUP command fails. For more information about the RC
operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the CLEANUP command. Therefore, you must specify every command whose return
code you want SMP/E to check.
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are allocated dynamically by use of the
ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used to
override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always
required for a zone.
Output
Two reports are produced during CLEANUP processing:
• CLEANUP Summary report
• File Allocation report
See Chapter 34, “SMP/E reports,” on page 461 for descriptions of these reports.
Table 6. CLEANUP example: data set members before CLEANUP processing (continued)
Data set Members
SMPMTS MAC01
MAC02
MAC03
MAC04
SMPSTS SRC11
SRC12
SRC13
Table 7 on page 117 shows the information contained in the MVSTGT zone about the MAC and SRC
entries.
Table 8 on page 117 shows the information contained in the related distribution zone about the SYSMODs
associated with those MAC and SRC entries.
You can use the following command to clean up and compress the data sets:
SMP/E deletes the entries shown in Table 9 on page 118 from the data sets:
SMPMTS MAC02
MAC03
SMPSTS SRC11
SRC12
SMP/E then compresses the SMPMTS and writes a CLEANUP Summary report.
Processing
The CLEANUP command deletes entries from the SMPMTS, SMPSTS, and SMPSCDS data sets. If the
set-to zone has an UPGLEVEL subentry, the CLEANUP command deletes unneeded load modules or
program objects from the SMPLTS.
SMP/E opens the specified target zone and its related distribution zone for read access. It also opens
the SMPMTS, SMPSTS, SMPSCDS, and (if the set-to zone has an UPGLEVEL subentry) SMPLTS for update
processing.
• For the SMPMTS, SMP/E checks which macros have MTSMAC entries in that data set and, for each
entry, checks which SYSMODs are specified as the FMID, UMID, and RMID. It deletes the entries (and
associated aliases) whose associated SYSMODs have been accepted into the distribution library or have
been superseded by an accepted SYSMOD.
• For the SMPSTS, SMP/E checks which source elements have STSSRC entries in that data set and, for
each entry, checks which SYSMODs are specified as the FMID, UMID, and RMID. It deletes the entries
whose associated SYSMODs have been accepted into the distribution library or have been superseded
by an accepted SYSMOD.
• For the SMPSCDS, SMP/E checks which SYSMODs have BACKUP entries. It deletes the entries for
each SYSMOD that has been accepted into the distribution library or that has been superseded by an
accepted SYSMOD.
• For the SMPLTS, if the set-to zone has an UPGLEVEL subentry, SMP/E checks if a load module or
program object contains both CALLLIBS and XZMOD subentries. If the load module or program object
contains CALLLIBS, but no XZMOD subentries, it deletes the base version of the load module or program
object from the SMPLTS data set. If the set-to zone does not have an UPGLEVEL subentry, SMP/E will
not delete load modules or program objects from SMPLTS.
SMP/E then generates a report listing all the deleted entries and writes it to the SMPRPT data set. It
compresses any data sets, if requested, and then closes them.
If there are no entries in any of the data sets, SMP/E does no cleanup, but does compress any data sets if
requested. It then closes the data sets and writes a report to SMPRPT.
If SMP/E could not open a data set, or if the target zone has no record of a particular entry in one of the
data sets, SMP/E issues an error message, and CLEANUP processing fails.
Global zone
Read without enqueue.
Target zone
Read without enqueue.
DLIB zone
Read without enqueue.
2. Processing
Target zone
Update with an exclusive enqueue.
DLIB zone
Read without enqueue.
3. Termination
All resources are freed.
With the DEBUG command, you can request diagnostic processing from SMP/E—for example:
• Tracking the source of all SMP/E messages
• Dumping SMP/E control blocks and storage areas
• Dumping VSAM RPL control blocks
• Dumping SMP/E storage whenever specified messages are issued
You can use this command to provide additional documentation when reporting an SMP/E problem or
when working with IBM to solve an SMP/E problem.
Syntax
DEBUG Command
DEBUG
DUMPON( )
,
( dump_id )
, dump_title
,
( dump_id )
SNAP
, ,
DUMPOFF
DUMPMSG
,
( value )
•
MSGMODID( ON ) KEEPDIR( ON )
OFF OFF
Operands
Note: The DEBUG dump operands are for use when working with IBM to solve an SMP/E problem, not
before you report a problem. Therefore, some of the information you need to specify on those operands is
provided through IBM and is not included in this book.
DUMPON
specifies one or more dump points for which associated control blocks and storage areas are to be
dumped. Unless SNAP is specified, the dump is formatted and written to SMPDEBUG. These are the
values you can specify on the DUMPON operand:
dump-id
is a predefined dump point, whose name is provided by IBM. You must specify at least one dump
point.
dump-title
is an optional, user-written title for SMP/E to include on the header page of all formatted dumps
requested by the DUMPON operand and written to SMPDEBUG. The dump title may be up to 100
characters. If it contains parentheses, right and left parentheses must be in matched pairs. If
SNAP is also specified, the dump title is not printed.
SNAP
indicates that the dump is to be written unformatted to the SMPSNAP data set. If SNAP is
specified, any dump title specified is not printed.
DUMPOFF
specifies one or more dump points for which dumps are to be stopped. These are the values you can
specify on the DUMPOFF operand:
blank
stops dumping for all dump points, including DUMPMSG.
DUMPMSG
stops dumping for all messages.
value
stops dumping for the specified dump point or VPLFUNCT value, which was provided by IBM.
This dump point must have been activated by a previous DEBUG DUMPON or DEBUG DUMPRPL
command.
Note: You can combine dump points and VPLFUNCT values on the same DEBUG DUMPOFF
command.
DUMPMSG
indicates that a SNAP dump is to be taken of SMP/E storage when the specified SMP/E messages are
issued. msg-id is the message ID without the severity level, such as GIM44301. You must specify at
least one message ID.
DUMPRPL
indicates that a dump of the VSAM RPL control block and additional RPL information is to be taken.
vplfunct is a VPLFUNCT value supplied by IBM. You must specify at least one VPLFUNCT value. The
RPL dump is written to SMPDEBUG. The heading for the RPL dump contains the VPL function being
performed when the dump was taken. This can be used to separate the dumps if you specify more
than one VPLFUNCT value on the DEBUG command.
KEEPDIR
indicates whether SMP/E should keep temporary work directories created in a UNIX file system.
Typically, these directories are deleted at command completion.
ON
keep temporary work directories at the completion of APPLY and ACCEPT commands.
OFF
do not keep temporary work directories at the completion of APPLY and ACCEPT commands
(delete the directories). This is default processing.
MSGMODID
indicates whether to start or stop tracking which modules are issuing SMP/E messages.
Note: MSGMODID can also be specified as M.
ON
starts message tracking. Each SMP/E message is preceded by the name of the issuing module and
the offset where the message was issued.
OFF
stops message tracking.
Syntax notes
• You must specify at least one operand.
• If you specify DUMPON or DUMPRPL and DUMPOFF on the same DEBUG command, these operands are
processed in the order they occur. If you specify the same dump point on both operands, the last
specification is used.
• DEBUG commands are generally used in pairs. The first one starts DEBUG processing and the second
stops it. However, the second DEBUG command is not required if SMP/E is to do the same DEBUG
processing for all the commands following the DEBUG command.
Output
The File Allocation report is produced during DEBUG processing. For a description of this report, see
Chapter 34, “SMP/E reports,” on page 461.
Examples
The following examples are provided to help you use the DEBUG command.
Because the problem appeared to be in SMP/E and not in the USERMOD, you decided to report it to IBM.
To help IBM determine the cause of the problem, you should also rerun the job with the message trace on.
You can use the following commands:
When you run this job, SMP/E precedes all messages for the APPLY command with the name and offset of
the issuing module. This stops when the second DEBUG command is processed.
Note: The second DEBUG command is not required if no further SMP/E commands are to be traced. It is
used in this example only to show that the trace can be turned on and off.
After you report the problem to IBM, you may be asked to rerun the job with certain dump points enabled,
for example, dump point 1. This information helps IBM determine the cause of the problem. You may also
want to give the dump a title that describes the problem. You can use the following commands:
When you run this job, SMP/E formats and dumps the control blocks and storage areas associated with
dump point 1, then writes the dump to SMPDEBUG.
After you report the problem to IBM, you may be asked to rerun the job and request a dump of the VSAM
RPL control block. You can use the following commands:
When you run this job, a dump of the VSAM RPL control block, plus additional RPL information, is written
to SMPDEBUG. The heading for the RPL dump contains the VPL function being performed when the dump
is taken (in this case, VPLEXT).
After you report the problem to IBM, you may be asked to rerun the job and have SMP/E dump its storage
whenever message GIM38201E is issued. You can use the following commands:
FORFMID(HBT1201) /* */
GROUP /* */.
DEBUG DUMPOFF(DUMPMSG) /* Debug dump off. */.
When you run this job, SMP/E dumps its storage and work areas to the SMPSNAP data set.
Processing
When SMP/E encounters the DEBUG command, it first checks whether the SMPDEBUG and SMPSNAP
data sets exist. These are opened when the dump is about to be written. It then scans the command for
valid operands.
• If you specified DUMPON, SMP/E checks whether the dump points are valid. Unless SNAP is specified, the
control blocks and storage areas are formatted and written to SMPDEBUG. Otherwise, they are written
unformatted to SMPSNAP.
• If you specified DUMPRPL, a dump of the VSAM RPL control block plus additional RPL information is
written to SMPDEBUG when the specified VPL function is performed.
• If you specified DUMPMSG, a SNAP dump of SMP/E storage is written when the specified messages are
issued.
• If you specified DUMPOFF, dumps are stopped for the specified dump points, or for all dump points if
none are specified.
• If you specified MSGMODID(ON), all messages are prefixed with the following string:
@module+X'offset'
where:
module
is the name of the SMP/E module (without the GIM prefix) that issued the message.
offset
is the hexadecimal offset into the module where the message was issued.
• If you specified MSGMODID(OFF), messages are no longer prefixed with the module name and offset.
When SMP/E finishes processing the command following DEBUG, the SMPDEBUG and SMPSNAP data sets
are closed.
DEBUG processing fails if a DUMPON dump point is incorrect, a required DD statement is missing, an
incorrect VPLFUNCT value is specified with DUMPRPL, or a DUMPOFF dump point was not already active.
With the GENERATE command, you can create a job stream that builds a set of target libraries from a set
of distribution libraries. In that way, it is similar to system generation. However, the GENERATE command
offers several advantages over system generation:
• GENERATE helps you reinstall products without SYSGEN support.
System generation creates jobs to install only products that are included by the system generation
macros. Products without this SYSGEN support are not included. As a result, when SYSGEN is used to
create or replace a system, a number of products have to be reinstalled outside the SYSGEN process.
GENERATE can create jobs to install all the products defined in a target zone, regardless of whether the
products have SYSGEN support. As a result, when GENERATE is used to create or replace a system, no
products have to be reinstalled outside the generation process.
• GENERATE creates job streams that are processed more efficiently.
The format of the system generation job stream depends on how the system generation macros are
coded. For example, the number of products being installed and any changes in the system generation
process may cause utilities to be called inefficiently.
The format of the GENERATE job stream is based on an analysis of the target zone. One job is created
for each target library. This reduces the number of utility calls for each data set and improves SMP/E
performance by allowing the various utilities to run concurrently.
Syntax
GENERATE Command
,JOBCARD
GENERATE JOBCARD( ddname )
, member_name
, REPLACE
FORFMID( name )
•
,
RC( command=rc )
Operands
FORFMID
specifies the names of the FMIDs or FMIDSETs for which a job stream is to be generated. FORFMID
should be used only if you want to create a job stream for specific products. To create a job stream
describing all the products defined in the target zone, do not specify FORFMID.
Note: The FORFMID operand may include entries that do not have an FMID, such as the ASSEM entry.
For more information, see “Determining whether a module must be assembled” on page 133.
The products you can specify on the FORFMID operand depend on why you are using the GENERATE
command:
• To initialize a new target zone from an old target zone by having the JCLIN command process the
GENERATE output
In this case, you should specify only products without SYSGEN support for which JCLIN was not
processed at ACCEPT time.
Do not specify any products for which you have done a stage 1 system generation. The stage 1
output should be processed by the JCLIN command to initialize the target zone.
Note: You do not need to specify any products for which you have processed inline JCLIN at ACCEPT
time. Instead of using the GENERATE command to initialize the new target zone for these products,
you should use the ZONECOPY or ZONEMERGE command to copy the distribution zone into the new
target zone.
• To create installation job streams
In this case, you can specify any of the products defined in the target zone. This includes
products with SYSGEN support, products without SYSGEN support, and products for which you
have processed inline JCLIN at ACCEPT time.
JOBCARD
indicates where SMP/E is to get the job card for the generated jobs. ddname is the ddname for the
partitioned data set containing the job card member. member-name is the name of the member within
that data set containing the job card. If member-name is not specified, the default is JOBCARD.
The JOBCARD operand is required.
REPLACE
indicates that the JCL created should allow:
• Existing members in a data set to be replaced when the copy utility is invoked
• Existing load modules to be replaced when the link-edit utility is invoked
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the GENERATE command.
Before SMP/E processes the GENERATE command, it checks whether the return codes for the
specified commands are less than or equal to the values specified on the RC operand. If so, SMP/E can
process the GENERATE command. Otherwise, the GENERATE command fails. For more information
about the RC operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the GENERATE command. Therefore, you must specify every command whose
return code you want SMP/E to check.
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are allocated dynamically by use of the
ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used to
override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always
required for a zone.
Besides checking the element entries in the CSI data set, SMP/E also uses information from the sources
shown in Table 10 on page 129 to create the output JCL for the GENERATE command. This information
must, therefore, be defined before the GENERATE command is run.
Note: SMPJHOME is an optional DDDEF entry used to specify the path needed to find the Java runtime.
SMP/E uses the SMPJHOME DDDEF entry to create an SMPJHOME DD statement in the HFSINST job,
if a UNIX shell script is invoked during the installation of a file system element. When processing the
HFSINST job, the GIMIAP service uses the SMPJHOME DD statement, if the UNIX shell script invokes a
Java command.
Usage notes
Before using the GENERATE command, you must:
• Accept or restore all SYSMODs that have been successfully applied.
• Initialize the new target zone with the appropriate JCLIN.
• Define a target zone DDDEF entry for each distribution library and target library.
• Define the SMPPUNCH, SYSOUT, and temporary data sets required. You can use either DDDEF entries or
GIMDDALC control statements in SMPPARM member GIMDDALC.
• Define SMPOUT and SMPRPT. You either can use DDDEF entries or DD statements. If you have only
SMPOUT defined, the messages and reports are mixed together and are hard to read.
Output
GENERATE output is written to the SMPPUNCH data set.
Two reports are produced during GENERATE processing:
Examples
The following examples are provided to help you use the GENERATE command.
This creates jobs to install all the products defined in the target zone.
13. Submit the jobs created by the GENERATE command.
This creates jobs to install all the products defined in the target zone.
13. Run the GENERATE jobs to build the system.
Processing
The GENERATE command has three processing phases:
1. Target zone analysis: SMP/E analyzes the target zone to determine which modules, macros, source,
load modules, data elements, hierarchical file system elements, and program elements must be
created.
2. JCL creation: SMP/E constructs the JCL statements used to create the jobs to build the target
libraries.
3. Job generation: SMP/E constructs the jobs necessary to create the target libraries.
Note:
1. Because of how SMP/E determines SYSLIB values, if the DLIB entry specifies more than one SYSLIB
subentry, the value used for the source might not be for the correct target library.
2. Source not residing in any SYSLIB is stored in the SMPSTS during APPLY and deleted during ACCEPT.
However, GENERATE does not create any steps to copy this source to the SMPSTS, because when
GENERATE is used, SYSMODs are not applied and then accepted. Rather, as in system generation,
the SYSMODs are accepted, and then the elements are installed in the target libraries. As a result,
the SMPSTS has no members.
• The FMID that owns the source matches an FMID specified on the FORFMID operand. This is not
checked if FORFMID was not specified.
Note: If FORFMID was not specified and SMP/E cannot determine which FMID owns the element, the
source is still selected. If the source is not found in the distribution library, however, an error may result.
SMP/E creates JCL to copy the source from the distribution library into the target library.
Note: For more information about processing assembled modules, see the next section.
• If there is no ASSEM entry, SMP/E checks for an SRC entry with the same name as the module. If one
exists, the source can be used to assemble the module.
• If there are no ASSEM or SRC entries for the module, it cannot be assembled, nor can it be link-edited
into any load modules.
If FORFMID was specified and the module being assembled does not have an FMID, it may still be eligible.
If an ASSEM entry can be used to assemble the module, SMP/E checks whether that assembly uses
macros owned by any of the specified FMIDs. If so, the module is included in the installation job stream.
Otherwise, SMP/E assumes that the assembly is not needed for any of the selected FMIDs, and the
module is not included in the installation job stream.
Note: To determine whether the ASSEM uses any selected macros, SMP/E checks all the MAC entries to
see if any of them specify that ASSEM entry in the MAC GENASM list.
Because SYSPUNCH is used as a DISTLIB value for modules in the SMPOBJ data set, SMP/E also checks
for a DD statement or DDDEF entry for SMPOBJ. This data set contains preassembled modules that can
be used to avoid re-assembling the modules. If SMPOBJ is found, SMP/E checks whether it contains a
member with the same name as the module that must be assembled. If so, the SMPOBJ version of the
module can be used with no need to reassemble the module. Otherwise, the module must be assembled.
• INCLUDE statements are built for all modules in the distribution libraries that are explicitly included
in the load module.
• Of all the other link-edit control statements defined for the load module, the only ones specified are
CHANGE and REPLACE. No other link-edit control statements are processed.
• All link-edit options defined in the LMOD entry are specified, except for ALIASES(ALL) and
DYNAM(DLL). NCAL is always passed.
2. Building the executable load module in the target libraries
• INCLUDE statements are built for all modules in the distribution libraries that are explicitly included
in the load module. INCLUDE statements are built for the utility input members included in the load
module.
• All other link-edit control statements in the LMOD entry are specified. CALL is always passed.
• All link-edit options defined in the LMOD entry are specified.
• A SYSLIB allocation, as defined by the CALLLIBS subentry list, is specified.
• A SYSDEFSD allocation is specified as defined by the SIDEDECKLIB subentry. If the SIDEDECKLIB
subentry is SMPDUMMY, the SYSDEFSD allocation will be specified as a DUMMY data set.
JCL creation
After analyzing the target zone, SMP/E builds the following JCL statements for generating the jobs to
install the elements:
• JOB card
• EXEC statement
• Distribution library and target library DD statements
• Utility work file DD statements
• Utility print output DD statements
• Other DD statements
JOB card
The JOB card is obtained from the library and member specified on the JOBCARD operand of the
GENERATE command. If the member name is not specified, “JOBCARD” is taken as the default member
name. If the job card member is not found, message GIM64001E is issued.
The job card member can contain any number of records. However, the first record in the member must
be the job card, and there must be room for an 8-character job name. This is because SMP/E does not
check the format of the job card when generating jobs. The generated job name is stored in columns 3
through 10 of the first card read from the job card member.
The following example shows the expected format of the job card:
EXEC statement
The GENERATE command creates assembly, copy, and link-edit steps. The information used to construct
the EXEC statement for each of these steps is obtained from the OPTIONS entry for the target zone. The
OPTIONS entry points to a UTILITY entry for each utility that SMP/E can call. Each UTILITY entry contains:
• The name of the program to call.
• The parameters to pass that program. (Based on information in the target zone, SMP/E may add more
parameters.)
Although you can specify up to 100 characters of data in the PARM field of a UTILITY entry, JCL restricts
the length of the PARM field to a total of 100 characters. Therefore, only the first 50 characters of the
UTILITY PARM field are used for the GENERATE command. The other 50 characters are reserved for
SMP/E-generated parameters.
Note:
1. The limitation on the length of the EXEC PARM field does not apply to invocations of the hierarchical
file system copy utility. The parameters for this utility are specified on the EPARM operand of the
generated SELECT statement instead of on the EXEC statement. However, the maximum total length
of the parameters to be passed on the EPARM operand is X'FFFF' bytes. If the length exceeds this
number, SMP/E truncates the parameters at the limit and passes this value to the hierarchical file
system copy utility.
2. If the DFP level of the driving system on which SMP/E is running supports the binder, SMP/E supports
PARM options exceeding 100 characters. In this case, SMP/E uses OPTIONS instead of PARM on the
EXEC statement. GENOPTS is specified as the ddname, and a DD statement is created for GENOPTS.
SMP/E then adds all other options after the GENOPTS DD statement. In this way, the PARM string
limit of 100 characters can be exceeded for the binder link-edit step. SMP/E does not verify whether
the DFP level of the system on which the GENERATE output is executed supports the binder.
3. Before using the GENERATE command to create JCL that will update files in a UNIX file system, you
may want to add UID(0) to the UTILITY entry PARM value so that the JCL created by GENERATE will
include UID(0) in the execution parameter string for the link-edit utility. Consider specifying UID(0) if
all the following are true:
a. UID 0 authority is needed to update files in a UNIX file system.
b. Your UID is not 0 but you are authorized to the BPX.SUPERUSER facility class profile. The UID(0)
option, in this case, causes the binder to set an effective UID of 0 for its execution.
c. The binder to be invoked by the generated JCL is at the proper level to understand the UID option.
If you do specify UID(0) for GENERATE, you must remove it after GENERATE has run, so that it is not
used for other SMP/E commands (such as APPLY, which handles setting the effective UID itself prior
to invoking the binder).
If no OPTIONS entry is available, or if no UTILITY entries have been defined, the SMP/E default values are
used. For a summary of these default values, see the UTILITY Entry (Global Zone) section in z/OS SMP/E
Reference.
Job generation
The final phase of GENERATE processing is the actual building of the installation jobs. These jobs are
written to the SMPPUNCH data set. Jobs are created for these candidates:
• Elements to be copied
• Target libraries for link-edited load modules
• Load modules installed in libraries specified in a SYSLIB allocation
• Elements to be installed in a UNIX file system
• Totally copied libraries
Elements to be copied
Two jobs, COPYJOB and DEIINST, are produced for all copied elements. COPYJOB handles all element
types, except for data elements, which are handled by DEIINST.
Within COPYJOB, there is a separate COPY statement (or COPYMOD for program elements or copied
modules) for each unique combination of distribution library, target library, and element type. The COPY
(or COPYMOD) and SELECT statements generated in this step are arranged by output library ddname, and
by distribution library module name under each output library ddname.
Within DEIINST, one job step is generated for each target library. The name of each job step matches
the ddname of the associated target library. Each job step installs multiple data elements from multiple
distribution libraries into a single target library. This is done by invoking SMP/E program GIMIAP, which
calls the appropriate copy utility to do the actual installation. COPY and SELECT statements are arranged
by distribution library ddname and by element name under each distribution library ddname. For more
information about the control statements passed to GIMIAP, see the GIMIAP section in z/OS SMP/E
Reference.
Note:
1. If you specified REPLACE on the GENERATE command, each applicable statement (COPYMOD for
program elements or copied modules, INVOKE for data elements, or COPY for other element types)
indicates that replacement is allowed.
2. GENERATE determines whether to list the names of copied members based on the value of the LIST
subentry in the copy UTILITY entry in effect for the set-to target zone. For more information about the
LIST subentry, see the UTILITY Entry (Global Zone) section in z/OS SMP/E Reference.
where:
xxxxxxxx
is the name that would have been generated on the JCL statement.
yyyyyyyy
is the name of the DDDEF entry, SYSOUT table entry, or temporary table entry that should have been
used to generate this JCL statement.
If SMP/E determines that no elements should be installed, it issues message GIM64901E or GIM64902E.
Note: When SMP/E detects the //*SMPLTS comment during JCLIN processing, it skips all the steps in the
SMPLTS job. For this reason, the //*SMPLTS comment should never be modified.
• LKSYSLIB is the final link-edit job. It is generated to link-edit the executable version of the load module
into the target libraries. SMP/E inserts a JCL comment statement (//*CALLLIBS=YES) immediately after
the LKSYSLIB job to ensure that when the JCLIN command processes the GENERATE output, the
SYSLIB DD statements in the output are processed and not ignored.
If there are no link-edits for load modules specifying a SYSLIB allocation, SMP/E does not create either of
these jobs.
where:
xxxxxxxx
is the name of the DDDEF entry that should contain a PATH subentry for the hierarchical file system
element's target library.
Multiprogramming considerations
The GENERATE command produces several jobs. The first, COPYJOB, does all the copies. You should run
COPYJOB first so the subsequent jobs can run concurrently. This not only constructs all the macro and
source libraries the other steps use, but prevents the subsequent jobs from using the data sets when
COPYJOB needs them.
Note: If an LKSYSLIB job is generated, the link-edit jobs created by GENERATE might not be able to run
concurrently. This can occur when the SYSLMOD data set specified in one of the steps in the LKSYSLIB job
is the same as a SYSLMOD data set specified in another link-edit job.
The GZONEMERGE command copies information from one SMP/E global zone to another. Possible uses of
the GZONEMERGE command include:
• Copying data for specific FMIDs from one existing global zone to another existing global zone.
• Priming a new global zone with data from an existing global zone before you build a new system.
Syntax
GZONEMERGE Command
CONTENT DEFINITION
GZONEMERGE FROMCSI( dsn )
GZMRG CONTENT
DEFINITION
•
,
FORFMID( name )
Operands
FROMCSI
specifies the global zone CSI data set name from which the data to be merged is to be obtained (the
originating zone). The data set name (dsn) must be from 1 to 44 characters long, and cannot be split
across input lines. This operand is required.
CONTENT
indicates that SYSMOD and HOLDDATA entries should be merged. Associated will also be copied from
the originating SMPPTS to the destination SMPPTS data set. This operand is optional.
Note: CONTENT can also be specified as CON.
DEFINITION
indicates that definition entries from the originating global zone should be merged. The following
entries are considered definition entries in the originating global zone:
• DDDEF
• FMIDSET
• GLOBALZONE
• OPTIONS
• ORDER
• UTILITY
• ZONESET
This operand is optional.
Note:
Note:
1. All of these data sets are for the destination global zone.
2. fromcsi is the data set name specified in the FROMCSI operand. The data set pointed to by this
operand is the originating global zone CSI data set name.
3. frompts is the SMPPTS data set associated with the originating global zone CSI data set name.
Usage notes
The GZONEMERGE command is intended to simplify the process of migrating information from one
global zone into another. It does not eliminate the need for you to decide how to configure the SMP/E
environment to support the products to be used.
If either the CONTENT or FORFMID operand is specified or assumed by default, SMPPTS data sets are
required for both the originating global zone and the destination global zone. These two SMPPTS data sets
must have different names.
Output
Two reports are produced during GZONEMERGE processing:
• File Allocation report
• GZONEMERGE report
These reports are described in “GZONEMERGE report” on page 489
Examples
The following examples are provided to help you use the GZONEMERGE command:
• “Example 1: Merge definition entries” on page 143
• “Example 2: Merge content entries” on page 143
Processing
With the GZONEMERGE command, you can merge a specified global zone into another specified global
zone. After the merge operation is complete, the originating global zone still exists in the CSI data set.
Note: Trying to merge a target zone or a distribution zone with the GZONEMERGE command causes an
error. Use the ZONEMERGE command to merge target zones or distribution zones.
The syntax refers to two types of zone entries: CONTENT and DEFINITION. CONTENT entries are created
by SMP/E; DEFINITION entries are set up by the user. If neither CONTENT nor DEFINITION is specified,
the default is to merge both the CONTENT and the DEFINITION entries. The following lists show how the
various entries are categorized:
• CONTENT type entries
– FEATURE entries
– HOLDDATA entries
– PRODUCT entries
– SYSMOD entries
• DEFINITION type entries
– DDDEF entries
– FMIDSET entries
– GLOBALZONE entries
– OPTIONS entries
– ORDER entries
– UTILITY entries
– ZONESET entries
The GZONEMERGE command operates on the two types of entries as follows:
• For content entries, SMP/E will:
– Merge the entries from the originating global zone into the destination global zone.
– Copy the from the originating SMPPTS to the destination SMPPTS.
• For definition entries, SMP/E will:
– Merge the entries from the originating global zone into the destination global zone.
The GZONEMERGE command does not create a new global zone. Both global zones must have been
previously defined.
FMID applicability
SMP/E determines whether each value specified on the FORFMID operand is an FMID or FMIDSET, and
expands the FMIDSETs into FMIDs. SMP/E then ensures that each of these FMIDs is listed in the FMID
subentry of the GLOBALZONE entry of the originating global zone.
If a FUNCTION SYSMOD name specified on the FORFMID operand is valid, but the actual SYSMOD is
not received in the global zone, then SMP/E goes on to determine if there are any associated FEATURE,
HOLDDATA, PRODUCT, or SYSMOD entries for that FMID.
Yes Yes Yes Only content entries for the specified All definition entries are merge
FMIDs are merge candidates candidates
Yes Yes No Only content entries for the specified Only the GZONE SREL and FMID
FMIDs are merge candidates subentries are updated based on the
FMIDs specified
Yes No No Only content entries for the specified Only the GZONE SREL and FMID
FMIDs are merge candidates subentries are updated based on the
FMIDs specified
Yes No Yes Only content entries for the specified All definition entries are merge
FMIDs are merge candidates candidates
No No No All content entries are merge candidates All definition entries are merge
candidates
No Yes Yes All content entries are merge candidates All definition entries are merge
candidates
No No Yes No content entries are merge candidates All definition entries are merge
candidates
No Yes No All content entries are merge candidates Only the GZONE SREL and FMID
subentries are updated
When either CONTENT or FORFMID is specified, SMP/E may update the FMID and SREL subentries in the
GZONE entry for the destination global zone:
• If CONTENT is specified, then:
– SMP/E copies each FMID and SREL subentry in the original global zone's GZONE entry to the
destination global zone's GZONE entry, unless that subentry already exists in the destination GZONE
entry.
• If FORFMID is specified, then:
– For each selected FMID that has an FMID subentry in the GZONE entry for the original global zone,
SMP/E copies that FMID subentry to the GZONE entry for the destination global zone, unless that
subentry already exists in the destination GZONE entry.
– For each SREL assigned to the selected FMIDs, SMP/E copies its SREL subentry in the original global
zone's GZONE entry to the destination global zone's GZONE entry, unless that subentry already exists
in the destination GZONE entry.
SYSMOD in the destination global zone, then that SYSMOD is considered to be at a higher level in the
originating global zone and would be merged.
• If a SYSMOD entry in the originating global zone has a SOURCEID subentry that matches the name
of the ORDER entry from which it originated, and that ORDER entry is being renamed because a like-
named entry already exists in the destination global zone, then SMP/E ensures that the SOURCEID value
matches the new name for the ORDER entry. To accomplish this it is necessary to process DEFINITION
entries before CONTENT entries.
destination global zone contains a higher level of the FEATURE entry, then processing continues to the
next entry.
SMP/E uses the REWORK subentry of the global zone FEATURE entry to determine if the FEATURE entry
in the originating global zone is at a higher level than the same FEATURE entry in the destination zone.
If the rework date of the FEATURE entry in the originating global zone is more recent than the REWORK
date of the FEATURE entry in the destination global zone, then that FEATURE entry is considered to be
at a higher level in the originating global zone and would be merged.
If a FEATURE entry is to be merged into the destination global zone, SMP/E will ensure the SYSMODs
identified in the FEATURE entry's FMID subentry are associated to the FEATURE in the destination global
zone. Specifically, for each SYSMOD identified by a FEATURE:
• If a SYSMOD entry exists in the destination global zone, then SMP/E will simply update the SYSMOD
entry to add a FEATURE subentry for the FEATURE being merged.
• If a SYSMOD entry does not exist in the destination global zone, then SMP/E will create an entry for it,
containing only a FEATURE subentry for the FEATURE being merged.
• For the GLOBALZONE entry, processing continues to determine which subentries within the
GLOBALZONE entry to merge.
The GZONEMERGE command does not overlay any existing zone indices in the destination global zone.
If no ZONEINDEX subentry exists in the destination global zone, then the ZONEINDEX subentry from the
originating global zone is added to the destination global zone.
2. Processing
Destination Global zone
Update with exclusive enqueue.
Destination SMPPTS
Update with exclusive enqueue.
Originating Global zone
Read with shared enqueue.
Originating SMPPTS
Read with shared enqueue.
3. Termination
All resources are freed.
JCLIN processing initializes entries in the target or distribution zone with the data required to install
elements into the target libraries. SMP/E derives this data by scanning a job stream containing assembly,
copy, and link-edit job steps. JCLIN processing is called by either the JCLIN command or as part of
installing a SYSMOD containing ++JCLIN statements.
Note that SMP/E does not execute the JCLIN. It does not call the utilities specified in the job stream, and
it does not update, modify, or look at any of the target libraries. Rather, JCLIN is a vehicle to describe the
structure of the target libraries (and, ultimately, the structure of the load modules in those libraries). It is
element statements (such as ++MOD) that cause SMP/E to actually invoke the utilities.
The purpose of this chapter is to describe JCLIN processing and the requirements SMP/E has on the input,
so that you can better understand how to construct JCLIN for your own use.
Note:
1. JCLIN processes only information about elements such as macros, modules, and source. It does not
process information about data elements, except for totally copied libraries. Information about data
elements is added to the zone when the data elements are installed in the libraries or when the
distribution zone is copied into the target zone.
2. JCLIN processing does not cause SMP/E to update the target or distribution libraries; only the entries
in the target and distribution zones are updated. These libraries are updated when SMP/E processes
the elements in a SYSMOD. The element statements in a SYSMOD determine which elements should
be installed.
The following terms are used in this chapter:
JCLIN input
A job stream of assembly, link-edit, and copy job steps. This input is pointed to by the SMPJCLIN DD
statement.
Inline JCLIN
JCLIN data pointed to by a ++JCLIN MCS. The actual JCLIN data can be packaged inline, following the
++JCLIN MCS, or it can be packaged in a RELFILE or TXLIB data set.
The description of the JCLIN command used here applies to processing both the JCLIN command and to
inline JCLIN processed at APPLY or ACCEPT time. The utility and OPCODE operands that can be specified
on the JCLIN command are also valid as operands on the ++JCLIN statement.
Reminder
The input for JCLIN must be free of JCL errors and must conform to the SMP/E restrictions. Incorrect
input can cause unpredictable errors, or even cause the installation of SYSMODs that depend on the
JCLIN to fail.
Syntax
JCLIN Command
JCLIN
ASM( PGM= asmpgm ) CALLLIBS
asmproc
JCLINREPORT
copyproc
lkedproc
updproc
•
,
RC( command=rc )
Operands
ASM
specifies an assembler program, asmpgm, or procedure, asmproc, in addition to those recognized
by SMP/E. SMP/E recognizes programs ASMBLR, ASMA90, IEUASM, IEV90, and IFOX00, as well as
procedure ASMS.
CALLLIBS
specifies that SMP/E is to process SYSLIB DD statements in JCLIN link-edit steps. If the CALLLIBS
operand is not specified on either the JCLIN command or the ++JCLIN statement, SMP/E JCLIN
processing ignores any SYSLIB DD statements it encounters.
COPY
specifies a copy program, copypgm, or procedure, copyproc, in addition to those recognized by SMP/E.
SMP/E recognizes only the IEBCOPY program.
JCLINREPORT
specifies that SMP/E is to write the JCLIN reports. This is the default.
Note: JCLINREPORT can also be specified as JCLR.
LKED
specifies a link-edit utility program, lkedpgm, or procedure, lkedproc, in addition to those recognized
by SMP/E. SMP/E recognizes programs IEWBLINK, IEWL, HEWL, HEWLH096, HEWLKED, and
LINKEDIT, as well as procedure LINKS.
NOJCLINREPORT
specifies that SMP/E is not to write any JCLIN reports.
Note: NOJCLINREPORT can also be specified as NOJCLR.
OPCODE
identifies an OPCODE member (which must be defined in the SMPPARM data set) containing control
cards identifying character strings to be treated as operation codes or macros.
SMP/E contains a default set of OPCODE definitions for your use. If you do not want to use this default
set, you can define your own by using the sample GIMOPCDE member supplied to you.
For more information about OPCODE members and how SMP/E determines whether an assembler
instruction is an OPCODE or a macro, see “Building MAC entries” on page 173 and the OPCODE
control statements section in z/OS SMP/E Reference.
PGM
specifies a program name (instead of a procedure name) for a utility.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the JCLIN command.
Before SMP/E processes the JCLIN command, it checks whether the return codes for the specified
commands are less than or equal to the values specified on the RC operand. If so, SMP/E can
process the JCLIN command. Otherwise, the JCLIN command fails. For more information about the
RC operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the JCLIN command. Therefore, if you use the RC operand, you must specify every
command whose return code you want SMP/E to check.
UPDATE
specifies an update program, updpgm, or procedure, updproc, in addition to those recognized by
SMP/E. SMP/E recognizes only program IEBUPDTE.
Note: Although JCLIN does not actually derive any target zone initialization data from update job
steps, update job steps are recognized so that the update step SYSIN data (which may itself contain
JCL) is not processed.
Note:
1. The SMPPARM DD statement is required only if the JCLIN input contains assembly steps and if you
want to create OPCODE members to override or amend the default set of OPCODE definitions.
2. zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are allocated dynamically by use of
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be
used to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
Usage notes
This section provides usage notes for the JCLIN command.
JCLIN input
The SMPE-ELSE comment statement must immediately follow the SMPE-END comment statement that
ends the DO/END group of the associated SMPE-IF clause. If an SMPE-ELSE comment statement is
encountered that does not immediately follow the SMPE-END comment statement that ends the DO/END
group of the associated SMPE-IF clause, SMP/E terminates JCLIN processing (along with the containing
SYSMOD for APPLY and ACCEPT processing).
The ELSE part of this comment statement must immediately follow the //*SMPE- on the JCL comment
with no intervening blanks. One or more blanks must separate the DO portion of this comment statement
from the ELSE. The whole SMPE-ELSE comment statement must be on a single record and cannot extend
past column 71.
The SMPE-END comment statement ends a DO group started on either an SMPE-IF comment statement
or an SMPE-ELSE comment statement. The SMPE-END comment statement is not optional; it must be
used to end the DO group.
The END portion of this control statement must immediately follow the //*SMPE- on the JCL comment
with no intervening blanks.
If an SMPE-END comment statement is encountered that does not close an open DO from an SMPE-IF or
SMPE-ELSE comment statement, SMP/E terminates JCLIN processing (along with the containing SYSMOD
for APPLY and ACCEPT processing).
Note that a DO/END group may be empty. This means that there might be no records in the JCLIN input
stream between the SMPE-IF or SMPE-ELSE comment statement that starts the DO/END group and the
SMPE-END comment statement that ends the DO/END group.
Once SMP/E has parsed one of the conditional JCLIN comment statements, SMP/E ignores the remainder
of the record that contains the JCLIN comment statement. This means that users can follow the JCLIN
comment statement with one or more blanks and then use the remainder of the record for their own
comments.
JCLIN processing works its way through the JCLIN input stream from the first record in the stream to the
last record in the stream. Once a record has been processed, it cannot be processed again.
While skipping records in the JCLIN input stream, JCLIN processing still syntax checks the conditional
JCLIN comment statements that may exist in the skipped section of the JCLIN input stream. Additionally,
DO/END groups and IF THEN/ELSE clauses are matched up in the skipped section of the JCLIN input
stream. If an error is detected when doing this syntax checking and matching, SMP/E terminates JCLIN
processing. Once a record being skipped is found not to contain one of the SMP/E comment statements,
the record is not processed any further.
If SMP/E does not find an SMPE-END comment statement to close an open DO/END group before end-of-
file is reached on the JCLIN input stream, SMP/E terminates JCLIN processing.
• A point release for this level of the BCP is shipped and has FMID JBB2901. This feature adds one new
module to LMOD001 (PART004) that makes the load module serially reusable, instead of reentrant, as
it was before. The other modules in LMOD001 (PART001, PART002, and PART003) are still owned by
HBB2900. JBB2901's JCLIN for LMOD001 is as follows:
• After JBB2901 has been released to the field, service is shipped that affects module PART002 such
that the module has to be split into two modules, PART002 and PART002B. A PTF against the base,
HBB2900, must be shipped that includes these two modules and a redefinition of LMOD001.
Using conditional JCLIN comment statements, the definition of LMOD001 can be altered to take into
account the splitting of module PART002 such that both definitions (base and feature) can be packaged
in the same base PTF. The MCS and inline JCLIN for LMOD001 in the base PTF would look something
like this:
++PTF(PTFB001).
++VER(Z038) FMID(HBB2900) SUP(…) PRE(…).
++IF FMID(JBB2901) THEN REQ(PTFF001).
++MOD(PART002) DISTLIB(DLIB1).
-- inline object for PART002 --
++MOD(PART002B) DISTLIB(DLIB1).
-- inline object for PART002B --
++JCLIN.
//ANYNAME JOB
//*SMPE-IF SYSMOD(JBB2901) THEN DO -- JBB2901 FLAVOR OF LMOD001
//LINK1 EXEC PGM=IEWBLINK,PARM='LIST,REUS'
//*
//* JBB2901 LEVEL FOR BIND OF LMOD001
//*
//DLIB1 DD DSN=SYS1.DLIB1,DISP=SHR
//DLIB2 DD DSN=SYS1.DLIB2,DISP=SHR
//SYSLMOD DD DSN=SYS1.LINKLIB,DISP=SHR
//SYSLIN DD *
ORDER PART001,PART002,PART002B,PART003,PART004
INCLUDE DLIB1(PART001)
INCLUDE DLIB1(PART002)
INCLUDE DLIB1(PART002B)
INCLUDE DLIB1(PART003)
INCLUDE DLIB2(PART004)
ENTRY PART001
NAME LMOD001(R)
//*SMPE-END
//*SMPE-ELSE DO -- HBB2900 FLAVOR OF LMOD001
//LINK1 EXEC PGM=IEWBLINK,PARM='LIST,RENT'
//*
//* HBB2900 LEVEL FOR BIND OF LMOD001
//*
//DLIB1 DD DSN=SYS1.DLIB1,DISP=SHR
//SYSLMOD DD DSN=SYS1.LINKLIB,DISP=SHR
//SYSLIN DD *
ORDER PART001,PART002,PART002B,PART003
INCLUDE DLIB1(PART001)
INCLUDE DLIB1(PART002)
INCLUDE DLIB1(PART002B)
INCLUDE DLIB1(PART003)
ENTRY PART001
NAME LMOD001(R)
//*SMPE-END
SMP/E is able to process this JCLIN input for the environment that has just HBB2900 installed and for
the environment that has both HBB2900 and JBB2901 installed such that the definition for load module
LMOD001 is appropriate for each environment.
When the base PTF, PTFB001, is shipped, a corresponding PTF must be shipped for the feature that
contains the updated JCLIN for the feature's definition of LMOD001. The feature PTF is needed so
that, if the feature is installed after the base PTF has been installed, the definition of LMOD001 is not
downleveled by the installation of the feature, because the feature PTF will be required to be installed
along with the feature.
The requisite PTF for the feature, PTFF001, would look something like the following example::
++PTF(PTFF001).
++VER(Z038) FMID(JBB2901) SUP(…) PRE(PTFB001, … ).
++JCLIN.
//ANYNAME JOB
//LINK1 EXEC PGM=IEWBLINK,PARM='LIST,REUS'
//*
//* JBB2901 LEVEL FOR BIND OF LMOD001
//*
//DLIB1 DD DSN=SYS1.DLIB1,DISP=SHR
//DLIB2 DD DSN=SYS1.DLIB2,DISP=SHR
//SYSLMOD DD DSN=SYS1.LINKLIB,DISP=SHR
//SYSLIN DD *
ORDER PART001,PART002,PART002B,PART003,PART004
INCLUDE DLIB1(PART001)
INCLUDE DLIB1(PART002)
INCLUDE DLIB1(PART002B)
INCLUDE DLIB1(PART003)
INCLUDE DLIB2(PART004)
ENTRY PART001
NAME LMOD001(R)
++USERMOD(USR0001).
++VER(Z038) FMID(USRFUNC).
++JCLIN.
//…
//…
//… JCLIN input
//…
//…
When you use this method, any target zone entries that are changed as a result of the new JCLIN are first
saved on the SMPSCDS data set. The SYSMOD, USR0001, can then be restored if you want to remove the
JCLIN.
Note: After doing a full system generation, you must:
• Delete your old target zone and define a new one.
• Use ZONECOPY to copy the distribution zone to the new target zone.
• Scratch and reallocate your SMPMTS and SMPSTS data sets.
If you do not start your new system with an empty SMPMTS and SMPSTS, you may inadvertently regress
your new system when service is applied.
Cross-zone relationships
If SMP/E creates an LMOD entry during JCLIN processing and there is already a copy of that entry
containing only cross-zone subentries (a stub entry), SMP/E issues messages indicating that the cross-
zone relationship defined by cross-zone subentries might no longer be valid. SMP/E then deletes the
cross-zone subentries from the LMOD entry. If there is no longer a TIEDTO relationship between the
cross-zone and the set-to zone, SMP/E also deletes the TIEDTO value for the cross-zone from the
zone definition entry for the set-to zone. It does not, however, update related cross-zone modules to
indicate that they are no longer part of the load module in the set-to zone or the cross-zone's TIEDTO
subentry. You need to determine whether the cross-zone relationship is still valid. If it is valid, use the
LINK MODULE command to reestablish it. For more information, see Chapter 11, “The LINK MODULE
command,” on page 197 .
Output
The following reports are produced during JCLIN processing:
• File Allocation report
• JCLIN Cross-Reference report
• JCLIN Summary report
For descriptions of these reports, see Chapter 34, “SMP/E reports,” on page 461.
Examples
The following examples are provided to help you use the JCLIN command.
SMP/E processes it but does not recognize MYCOPY as a valid program name; therefore, it creates no
entries.
But given the following JCLIN command:
SMP/E now recognizes the step as a copy step and builds a DLIB entry for XYZDLIB.
To process this correctly and have SMP/E recognize that LOOP and ENDLOOP are opcodes, you should set
up the following OPCODE member (in this case, named SMPPRM01):
KEY=LOOP TYPE=OPCODE.
KEY=ENDLOOP TYPE=OPCODE.
When SMP/E processes this input, it recognizes that MYASM is an assembler program, and that LOOP and
ENDLOOP are operation codes.
INCLUDE AOS12(MOD00004,MOD00005)
ENTRY MOD00004
SETCODE AC(1)
NAME LMOD04(R)
/*
Copy step C1
This copy step informs SMP/E that an entire distribution library has been copied to an operating system
library. From the INDD operand, SMP/E determines the ddname of the distribution library and creates a
target zone DLIB entry named AMACLIB. From the OUTDD operand, SMP/E determines the ddname of the
operating system library and adds a SYSLIB subentry, MACLIB, to the DLIB entry. SMP/E uses this entry
to determine the operating system library for subsequent modifications that specify an element's DISTLIB
as AMACLIB.
Copy step C2
This copy step illustrates a selective copy of elements from a distribution library to an operating system
library.
When a selective copy step is encountered, SMP/E assumes that the elements involved are modules
and creates a target zone MOD entry for each of them. The module name is derived from the SELECT
MEMBER statement; the distribution library for such modules is determined from the operand of the copy
INDD statement; the load module name is simply the module name. In step C2, a MOD entry named
LOADMODC is created; the distribution library is determined to be AOS14, and the LMOD is LOADMODC.
Finally, a target zone LMOD entry is created to represent the operating system library to which the
module is copied. The load module name (and the target zone LMOD entry name) is the module name,
LOADMODC. The operating system library (saved as a SYSLIB subentry) is determined from the operand
of the copy OUTDD operand—in this case, LINKLIB. LMOD entries created from copy job steps do not have
any link-edit attributes. Rather, an indicator (COPY) is set in the entry to inform SMP/E that the link-edit
attributes must be obtained by examining the operating system library when the module must first be
link-edited.
Assembly step A1
SMP/E creates an ASSEM entry with the name TESTMOD1, derived from the member name on the
SYSPUNCH DD statement. This entry contains the assembler SYSIN data set.
A MAC entry named TESTMAC1 is created, because SMP/E detects the invocation of the macro in the
assembler SYSIN. The macro entry created contains the name of the assembly as a GENASM subentry
(for use by SMP/E in determining that this assembly should be performed if and when TESTMAC1 is
updated).
Link-edit step L1
This step shows the link-edit of the previous assembly. From the link-edit INCLUDE statement, SMP/E
derives the data required to create a target zone MOD entry representing the module, TESTMOD1.
The module name is determined from the member name operand on the INCLUDE statement, and the
distribution library, SYSPUNCH, is determined from the INCLUDE statement's ddname.
Further, the link-edit defines the operating system library for a load module, LOADMOD1. A target zone
LMOD entry is created from the link-edit NAME statement. It contains the ddname of the operating
system library, derived from the link-edit SYSLMOD DD statement. In this case, the LMOD entry name is
LOADMOD1, the load module's highest acceptable link edit return code value is set to 4, and the system
library (saved as a SYSLIB subentry) is determined to be LPALIB. The load module attribute, RENT, is
saved in the LMOD entry for use in subsequent link-edits of this load module; the parameters LET and
LIST are not saved.
Link-edit step L2
The second link-edit step defines two modules and one load module to SMP/E.
Modules TESTMOD2 and TESTMOD3 are defined by the link-edit INCLUDE statements; the distribution
library for each of these is determined to be AOS12. A target zone MOD entry is created for each of these
modules with a LMOD subentry naming the load module, LOADMODX, and a DLIB subentry, AOS12.
The operating system load module, LOADMODX, is represented by a target zone LMOD entry. This LMOD
entry, as created, contains the operating system library, LINKLIB, as a SYSLIB subentry. No link-edit
attributes are specified in this step; therefore, the STD indicator is set in the LMOD entry.
Link-edit step L3
The third link-edit step shows an example of using the OPTIONS option. The OPTNAME DD statement
allows SMP/E to process the PARM string, even though the options exceed the 100-character limit.
Link-edit step L4
The fourth link-edit step shows an example containing a SYSLIB allocation. If CALLLIBS was specified
on the JCLIN command or the ++JCLIN MCS, the low-level qualifiers of the data sets named in the
SYSLIB allocation, PLIBASE and APPBASE, are saved as part of the CALLLIBS subentry list in LMOD entry
LMOD04.
Example 6: JCLIN for using the link-edit automatic library call function
SMP/E provides support for load modules that need to use the link-edit automatic library call function,
which enables the load modules to contain modules from multiple products without explicitly specifying
those modules on INCLUDE statements in link-edit steps. SMP/E's support for load modules that use the
link-edit automatic library call function is called CALLLIBS support.
++JCLIN … CALLLIBS.
Note: If CALLLIBS is not specified, the SYSLIB allocation in the link-edit step is ignored and the NCAL
parameter is used when invoking the link-edit utility.
2. Provide link-edit JCLIN that defines the SYSLIB allocation for the libraries containing the modules to
be implicitly included by the link-edit automatic library call function.
SMP/E will save the low-level qualifiers of the data sets in the SYSLIB allocation as a CALLLIBS
subentry list in the LMOD entry for the load module.
Here is an example of link-edit JCLIN that defines a SYSLIB allocation for a load module that needs to
use the link-edit automatic library call function.
++FUNCTION(HXY1100) FILES(3).
++VER(Z038).
1 ++JCLIN CALLLIBS.
…
//STEP1 EXEC PGM=IEWBLINK,PARM='RENT,REUS'
//SYSLMOD DD DSN=SYS1.APPLOAD,DISP=OLD
//AOS12 DD DSN=SYS1.AOS12,DISP=SHR
2 //SYSLIB DD DSN=SYS1.V2R2M0.PLIBASE,DISP=SHR
// DD DSN=SYS1.V2R2M0.APPBASE,DISP=SHR
//SYSLIN DD *
INCLUDE AOS12(MOD00001,MOD00002)
ENTRY MOD00001
SETCODE AC(1)
NAME LMOD01(R)
/*
…
++MOD(MOD00001) RELFILE(2) DISTLIB(AOS12).
++MOD(MOD00002) RELFILE(2) DISTLIB(AOS12).
…
The user needs to define DDDEF entries for the data sets specified in the SYSLIB allocation (PLIBASE and
APPBASE) and the SMPLTS data set, which SMP/E will use to link-edit the load module. (For details on
the SMPLTS data set, see “Use of the SMPLTS library” on page 69 and the SMPLTS section in z/OS SMP/E
Reference.) Here are examples of defining the DDDEF entries, assuming that the function will be applied to
target zone TGT1.
1
Because the SYSLMOD statement specifies a PATH operand, SMP/E expects the next statement to be
a LIBRARYDD comment statement.
2
Using the ddname on the LIBRARYDD comment statement, SMP/E updates the LMOD entry for
LMOD01 to specify a SYSLIB value of BPXLOAD1. The user needs to provide a DDDEF entry for
BPXLOAD1, specifying the appropriate pathname.
3
The SYSLIB DD statement is a concatenation of two DD statements that specify the PATH operand.
4
Using the ddnames on the LIBRARYDD comment statements and the low-level qualifier of the data
set specified on the DSN operand, SMP/E updates the LMOD entry for LMOD03 to specify a CALLLIBS
subentry list with the values BPXCALL3, and BPXCALL4. The user needs to provide DDDEF entries for
BPXCALL3 and BPXCALL4, specifying the appropriate pathnames.
contain a definition side deck of IMPORT control statements. The IMPORT control statements are created
by the link edit utility when the load module is link-edited. If the library identifies a partitioned data set
(PDS or PDSE), the definition side deck created is a member in that data set. If the library identifies a
directory in a UNIX file system, the definition side deck created is a file in that directory.
The following is an example JCLIN link-edit step to define load modules using a definition side deck
library:
Note:
1. SGOSSD would be associated with either a partitioned data set or a directory in the UNIX file system.
2. SGOSDR would be associated with a directory in the UNIX file system.
Processing
This section discusses these topics:
• Summary of JCLIN processing
• General JCLIN coding conventions
• Processing assembler steps
• Processing copy steps
•
• Processing update steps
• Processing other utility steps
Summary
When the JCLIN function of SMP/E is called, SMP/E begins to read the JCLIN input. It scans the JCL for job
steps (that is, EXEC PGM=xxx or EXEC procname) containing information that SMP/E may need. The target
or distribution zone is updated in the order in which the job steps are found in the JCLIN input.
Reminder
The input for JCLIN must be free from all JCL errors and must conform to the SMP/E restrictions.
Incorrect input can cause unpredictable errors.
SMP/E looks for certain program and procedure names that it recognizes as valid assembler, copy,
link-edit, and update steps. It issues a warning message for other program and procedure names if it is
not sure how to process them. For more information about programs and procedures not processed by
JCLIN, see “Processing other utility steps” on page 189.
If the JCLIN input contains program or procedure names that SMP/E does not recognize, these names can
be passed to SMP/E by use of operands on the JCLIN control statement or ++JCLIN statement, as follows:
• ASM(PGM=asmpgm) or ASM(asmproc)
• COPY(PGM=copypgm) or COPY(copyproc)
• LKED(PGM=lkedpgm) or LKED(lkedproc)
• UPDATE(PGM=updpgm) or UPDATE(updproc)
Note: Only one additional program or procedure name can be specified for each utility. These names are
in addition to the standard names built into SMP/E, and are lower in the search order than the built-in
names. Therefore, if you specify JCLIN UPDATE(PGM=ASMBLR), SMP/E still treats a job step specifying
PGM=ASMBLR as an assembler.
The following sections describe JCLIN processing and coding conventions for each of the job steps SMP/E
treats as significant. Remember that:
• Inline JCLIN processed at ACCEPT time updates the distribution zone.
• Inline JCLIN processed at APPLY time updates the target zone.
• The JCLIN command updates the target zone.
If the ddname and the lowest-level qualifier DSN are kept the same, correlating these names may be
easier for you. For example, the DD statement for SYS1.LINKLIB can be specified as:
//LINKLIB DD DSN=SYS1.LINKLIB,DISP=SHR
This convention for correlating ddnames and data set names is used by IBM when it distributes
functions or PTFs. Therefore, you should avoid changing the ddnames of libraries used for elements
provided by IBM. If you change these ddnames in the element entries, the ddnames for these elements
in subsequent SYSMODs may not match the ddnames in the entries, and SMP/E may not be able to
process the SYSMODs.
• Concatenated data sets must not be used for input. For example, a link-edit step has an INCLUDE
statement in its input that says:
INCLUDE DD1(MODA,MODB,MODC)
//DD1 DD DSN=SYS1.USRDLIB1,DISP=SHR
// DD DSN=SYS1.USRDLIB2,DISP=SHR
// DD DSN=SYS1.USRDLIB3,DISP=SHR
In this case, SMP/E is able to process the JCL, but the updates to the zone being processed are not
sufficient to enable service to be installed. There are two problems with this example:
– The ddnames are not the same as the lowest-level qualifier of the DSN.
– The data sets are concatenated.
The following examples show the correct format for the INCLUDE statements and DD statements:
INCLUDE USRDLIB1(MODA)
INCLUDE USRDLIB2(MODB)
INCLUDE USRDLIB3(MODC)
and
//USRDLIB1 DD DSN=SYS1.USRDLIB1,DISP=SHR
//USRDLIB2 DD DSN=SYS1.USRDLIB2,DISP=SHR
//USRDLIB3 DD DSN=SYS1.USRDLIB3,DISP=SHR
• A continued utility control statement should be used only when absolutely necessary. Although SMP/E
attempts to support all existing formats of the utility control statements, it cannot completely duplicate
the syntax checking of the utility. The safe method is to use the simplest format of the utility control
statement.
For example, rather than code:
INCLUDE AOS12(GIMMPDRV,GIMMPDR1,GIMMPDR2, X
GIMMPDC1,GIMMPDC2)
INCLUDE AOS12(GIMMPDRV,GIMMPDR1,GIMMPDR2)
INCLUDE AOS12(GIMMPDC1,GIMMPDC2)
The link-edit utility accepts both formats, but the second example is the safe format.
Note: Generally, SMP/E does not require a continuation character in column 72. However, if a link-edit
control statement is to be continued to the next statement, a nonblank continuation character must
be placed in column 72. This is necessary to avoid syntax errors or incorrect results during SMP/E
processing.
• The DD statement identifying the input control statements for a utility must be the last DD statement in
that job step.
For example:
For each step encountered, SMP/E saves all the JCLIN records in a work area until the first non-JCL
(that is, first statement after the SYSIN DD statement or the SYSLIN DD statement) is found. The saved
records are then searched for any information that must be obtained from the JCL. If a JCL statement
follows the utility input DD statement, that JCL statement will not be in the work area when the search
performed, and SMP/E might not be able to capture the necessary data.
• Conditional JCLIN comment statements cannot appear within the utility control card section of a JCLIN
job step. See “Conditional JCLIN comment statements” on page 156 for information on conditional
JCLIN comment statements.
Note: SMP/E has no column limitations for operands beyond the normal JCL rules.
The name of the ASSEM entry is determined by looking at the JCL for the assembly step. If the step is of
the EXEC PGM=name type, SMP/E looks for any of the following statements to find the member name for
the DSN or DSNAME library:
//SYSPUNCH DD DSN=…
or
//SYSGO DD DSN=…
or
//SYSLIN DD DSN=…
//SYSPUNCH DD DSN=high.next.low(member)
or
//SYSPUNCH DD DSNAME=high.next.low(member)
The SYSPUNCH, SYSGO, or SYSLIN DD statement must point to a PDS, and the member must be
specified.
If the step is of the EXEC asmproc type, SMP/E looks for the MOD=name operand of the PROC statement.
If it is found, that name is used as the ASSEM entry name. If not, one of three DD statements (SYSPUNCH,
SYSGO, or SYSLIN DD) must be present and the ASSEM entry name is obtained from the DD statement.
If any ASSEM entry previously existed, the current set of assembler input completely replaces the
previously saved assembler input.
If SMPPARM is found and there is a user-defined OPCODE member specified on the JCLIN statement
or in the ++JCLIN MCS, then SMP/E searches for the specified member in SMPPARM. If it finds that
member, it will look first in that member for a definition of the character string.
• If the user-defined OPCODE member specified is not found, SMP/E searches SMPPARM for the
GIMOPCDE member. If it finds the GIMOPCDE member, it will look only in that member for a definition
of the character string. (The GIMOPCDE member, if it exists in SMPPARM, will completely override
SMP/E's default set of OPCODE definitions.)
• If the GIMOPCODE member is not found, SMP/E uses the default set of OPCODE definitions.
• If the character string is not defined in either the SMPPARM data set or the default set, SMP/E considers
it to be a macro.
For a description of the format of the OPCODE member control cards, see the "SMP/E OPCODE Member
Control Statements" section in z/OS SMP/E Reference.
For each macro found in the assembly input, SMP/E takes these actions:
• Locates the MAC entry in the zone being processed. If the entry is found, it is modified. If the entry is
not found, a new entry is created.
• Updates the MAC entry by adding the name of the assembly module (as previously described) as a
GENASM subentry. This now means that each macro used during the assembly includes a reference to
the target zone ASSEM entry. Therefore, when a SYSMOD is processed that modifies that macro, SMP/E
knows what target zone ASSEM entries should be reassembled in order to include the new macro.
Note: After JCLIN processing that creates a new MAC entry, the only data present in the MAC entry is
the set of GENASM subentries. Additional data, such as the distribution library, is added to the MAC entry
during the installation of the SYSMOD supplying the actual macro.
When scanning the copy input, SMP/E assumes the ddnames of the statement are the same as the
lowest-level qualifier of the data set referred to. If the COPY or COPYMOD statement is set up without this
convention, SMP/E generates incorrect DLIB and SYSLIB names in the MOD and LMOD entries.
By scanning the IEBCOPY control statements, SMP/E knows which members of the DLIB are being copied
(from the IEBCOPY SELECT MEMBER statements), from which DLIB they are being copied (the IEBCOPY
INDD ddname), and to which target libraries they are going (the IEBCOPY OUTDD ddname).
The members can be macros, modules, source elements, or data elements. SMP/E has no way of
determining the type from the standard IEBCOPY control statements. To find this information, SMP/E
looks for the TYPE comment on the COPY (or COPYMOD) INDD=ddname,OUTDD=ddname control
statement. The format of the TYPE comment on the COPY or COPYMOD statement is:
where:
copystmt
is COPYMOD (for copied modules or program elements) or COPY (for all other elements)
type
indicates the type of element in the distribution library. It can be specified as:
DATA
for data elements. If DATA is specified, SMP/E skips to the next COPY or COPYMOD control
statement without creating any entries for the data elements.
MAC
for macros.
MOD
for modules.
PROGRAM
for program elements.
SRC
for source elements.
If the TYPE=type parameter is not specified, the default is TYPE=MOD.
There must be at least one blank between the COPY or COPYMOD statement and the comment.
TYPE=type must be the first character string in the comment, and no blanks must precede or follow the
“=” sign. This information is used only if a SELECT statement follows the COPY or COPYMOD statement.
The SELECT statement can name either the member to be copied or an alias name for a member. The
format of these SELECT statements is:
SELECT MEMBER=member
SELECT MEMBER=alias ALIAS OF member
The first SELECT statement identifies a member to be copied. The second identifies an alias and names
the associated member in the comment portion of the statement.
Note: A SELECT statement identifying an alias can specify only one name on the MEMBER operand and
cannot specify RENAME.
• For ++MAC, ++MACUPD, ++SRC, ++SRCUPD, and data element message control statements, SMP/E can
determine that the element is part of a totally copied library, and can then fill in the SYSLIB field in the
appropriate element entry with the SYSLIB ddname saved in the DLIB entry. If there are two SYSLIB
ddnames in the DLIB entry, SMP/E uses the second value.
Note: SMP/E treats copies with exclude as total copies. It does not retain information about which
elements were excluded during the creation of the initial library.
Note: These statements may be processed by the link-edit utility after they are saved in the LMOD entry
by the command being run. For example, if the JCLIN data is being processed by the APPLY command,
these statements may be processed by the link-edit utility as part of installing the module. On the other
hand, if the JCLIN data is being processed by the JCLIN command, these statements are saved in the
LMOD entry and are passed to the link-edit utility only when the module is link-edited again at some
future date.
For more information about link-edit utility rules, see z/OS MVS Program Management: User's Guide and
Reference.
Table 13 on page 178 and Table 14 on page 178 show a summary of this information. They are followed
by more detailed guides.
Reminder
JCLIN by itself does not force SMP/E to link-edit a load module. The JCLIN only causes SMP/E to
update the CSI entries with the information in the JCLIN. To force a link-edit, you must also supply the
appropriate element statements (++MOD).
For example, to add an alias to a load module, you must supply JCLIN and a ++MOD statement for a
module contained in the load module. The JCLIN updates the LMOD entry with the new link-edit control
statements, and the ++MOD statement tells SMP/E to perform the link-edit.
Note:
1. A SYSLIB DD statement is processed only if CALLLIBS was specified on the JCLIN command or the
++JCLIN MCS.
2. The SYSDEFSD DD statement may be specified as SMPDUMMY, allowing it to be allocated as a
DUMMY data set.
Table 14. Summary of how link-edit control statements are processed as JCLIN data
Statement Processed to create Saved only as + Should not be specified
entries +LMODIN data in the in JCLIN data
LMOD entry
ENTRY Yes
EXPAND Do not specify in JCLIN
data
IDENTIFY Do not specify in JCLIN
data
INCLUDE Yes
INSERT and OVERLAY Yes
LIBRARY Do not specify in JCLIN
data (See note)
NAME Yes
Table 14. Summary of how link-edit control statements are processed as JCLIN data (continued)
Statement Processed to create Saved only as + Should not be specified
entries +LMODIN data in the in JCLIN data
LMOD entry
ORDER Yes
SETSSI Do not specify in JCLIN
data
All other statements Yes
except comments
Note: Do not use LIBRARY statements to specify additional automatic call libraries.
ALIAS statement
To ensure that SMP/E can process your link-edit ALIAS control statements, you must address the
following considerations:
• General considerations
– An ALIAS control statement can span any number of 80-byte records.
Note:
1. If you assign a load module residing in a PDSE an alias value greater than eight characters, you
cannot later use the ++DELETE statement to delete that alias value (and not the associated
load module). To delete such an alias value without deleting the load module, you need to
resupply JCLIN to define the load module without providing an ALIAS statement for the alias
value to be deleted. Make sure to also include a ++MOD statement for a module in the load
module to force SMP/E to relink the load module.
2. If the set of alias values (or symbolic links) for an existing load module changes, SMP/E does
not remove the original set of alias values (or symbolic links) from a PDS target library or a
UNIX file system. If it is important that these original values be removed, you can delete them
by either:
a. Using the ++DELETE MCS to remove the specific alias value or symbolic link that is not
needed, or
b. Using the ++DELETE MCS to remove the entire load module, using JCLIN to redefine the
load module with the correct set of alias values and symbolic links, and then rebuilding the
load module by supplying all of its modules.
– Column 1 of all 80-byte records composing an ALIAS control statement must contain a blank
(X'40').
– The data for the first 80-byte record of an ALIAS control statement must start in column 2 or later
and end anywhere up to and including column 71.
– The control statement type (ALIAS) must be followed by at least 1 blank (X'40').
– The control statement type (ALIAS) must be in uppercase.
– Columns 73 through 80 of an 80-byte record are ignored.
– An alias value can be from one to 1023 characters.
– An alias value can be composed of characters in the range X'41' through X'FE'.
Note: Although the binder also accepts characters X'0E' (shift-out character) and X'0F' (shift-in
character), SMP/E does not accept them.
– An alias value can be enclosed in single apostrophes. It must be enclosed in single apostrophes
when:
- It contains a comma. For example:
ALIAS 'If_the_alias_contains_a_comma,_enclose_it_in_apostrophes.'
ALIAS 'A_left_parenthesis_-(-_means_enclose_it_in_apostrophes.'
ALIAS 'A_right_parenthesis_-)-_means_enclose_it_in_apostrophes.'
– If an apostrophe is part of the alias value (not a delimiter), two apostrophes need to be specified
in the appropriate location in the alias value. These two apostrophes count as two characters in
the 1023-character limit for an alias value. Here is an example:
ALIAS 'It''s_the_quote_that_makes_apostrophes_necessary.'
– The single apostrophes used to enclose an alias value do not count as part of the 1023-character
limit for an alias value. For example, the alias value in the following example contains 10
characters:
ALIAS 'Only_ten!!'
– SMP/E uses the alias value exactly as is. SMP/E does not try to enforce any rules the binder may
be using as a result of the CASE execution parameter.
• Continuation records
– Column 72 of a given 80-byte record must be a nonblank character if the control statement is
continued onto the next 80-byte record. The character in column 72 denotes only continuation
and is never part of an alias value.
– The data for continuation records (80-byte records 2 through n of an ALIAS control statement)
can start in column 2 or later and end anywhere up to and including column 71 (for example, if
multiple aliases are being specified).
The data for a continuation record must start in column 2 if it is part of an alias value that is being
continued from the previous 80-byte record. An alias value that is continued from one 80-byte
record to another 80-byte record must meet these requirements:
- Extend through column 71 of the first 80-byte record
- Start in column 2 of the next 80-byte record
- Have a nonblank continuation character in column 72
An example:
1 2 3 4 5 6 7 8
----+----0----+----0----+----0----+----0----+----0----+----0----+----0----+----0
ALIAS This_is_a_very_long_value_that_is_continued_to_the_next*
_card!
• Entry points
One format of the ALIAS statement supported for the binder allows an alternative entry point to be
specified into a load module. If this format is used, each alias name with an associated entry point
must be specified on its own 80-byte record, with a separate ALIAS statement; no other aliases
should be specified on that statement. If multiple alias values of this format are specified on a single
ALIAS control statement, only the first is recognized; the rest are ignored.
Note: When this form of the ALIAS control statement is used, the maximum length for an alias value
is 61 characters.
Suppose that a load module has the following aliases: ALA1, ALA2, ALA3, and ALA4. ALA1 and ALA2
are associated with entry point names ENTRYPT1 and ENTRYPT2, respectively.
– Here are examples of how the aliases should be specified:
ALIAS ALA1(ENTRYPT1)
ALIAS ALA2(ENTRYPT2)
ALIAS ALA3
ALIAS ALA4
or
ALIAS ALA3,ALA4
ALIAS ALA1(ENTRYPT1),ALA2(ENTRYPT2),ALA3,ALA4
or
ALIAS ALA1(ENTRYPT1),ALA3
ALIAS ALA2(ENTRYPT2),ALA4
• Multiple aliases
– Multiple alias values can be specified on a single ALIAS control statement as long as they are not
in the form alias(entrypoint) Multiple alias values must be separated by commas. For example:
ALIAS ALIAS1,ALIAS2,ALIAS3,ALIAS4
– Multiple alias values can span multiple 80-byte records. When this occurs, there must be a
nonblank character in column 72 and one of the following must be true:
- The last alias value on the 80-byte record that is being continued must be followed by a comma
and one or more blanks (", …"). Here is an example:
1 2 3 4 5 6 7 8
----+----0----+----0----+----0----+----0----+----0----+----0----+----0----+----0
ALIAS ALIAS1,ALIAS2, *
ALIAS3,ALIAS4
- The last alias value on the 80-byte record that is being continued must be followed by a comma
in column 71. For example:
1 2 3 4 5 6 7 8
----+----0----+----0----+----0----+----0----+----0----+----0----+----0----+----0
ALIAS ALIAS1,ALIAS2,A_relatively_long_ALIAS_but_not_1023_chars.,*
ALIAS4,ALIAS5
- The last alias value on the 80-byte record that is being continued can be coded such that part
of the alias value appears on the current 80-byte record and part appears on the next 80-byte
record (see the rules for continuation records). Here is an example:
1 2 3 4 5 6 7 8
----+----0----+----0----+----0----+----0----+----0----+----0----+----0----+----0
ALIAS ALIAS1,ALIAS2,A_relatively_long_ALIAS.,ALIAS4,Not_too_long_but*
_wraps.,ALIAS5,ALIAS6
– If a blank (X'40') follows an alias value, SMP/E assumes there are no more alias values for the
current ALIAS control statement.
• Symbolic links
One format of the ALIAS control statement supported for the binder allows the definition of
symbolic links for a load module in a UNIX file system. Symbolic links are defined with the
(SYMLINK,symlink) and (SYMPATH,sympath) operands of the ALIAS link-edit control statement.
Note: To replace or delete the symbolic links specified by an ALIAS control statement, you must first
use the ++DELETE MCS to delete the entire load module. You can then redefine the load module
with a new set of symbolic links (if any) with inline JCLIN and rebuild the load module by supplying
its modules.
The syntax rules used by SMP/E for (SYMLINK,symlink) and (SYMPATH,sympath) operands on
an ALIAS link-edit control statement are the same as those listed in the previous "General
Considerations" and "Continuation Records" bullets, with the following additions:
– The SYMLINK and SYMPATH keywords must be in uppercase.
– Each SYMLINK or SYMPATH keyword must be immediately preceded by an opening parenthesis,
followed by a comma and the appropriate value, and terminated by a closing parenthesis.
– Every SYMLINK must have an associated SYMPATH.
– The SYMLINK must precede the SYMPATH with which it is to be associated. See the description of
the SYMLINK and SYMPATH operands in z/OS SMP/E Reference for a more detailed description of
the rules for associating SYMPATH and SYMLINK operands to form symbolic links.
– A symlink or sympath value may be from 1 to 1023 characters.
– The rules for enclosing symlink or sympath values in single apostrophes are the same as those for
alias values.
– The rules for including an apostrophe, comma, or right or left parenthesis as part of the symlink or
sympath value (not a delimiter) are the same as those for alias values.
– SMP/E does not enforce any rules the binder may be using as a result of the CASE(MIXED|UPPER)
execution parameter.
The following example shows an ALIAS statement that defines an alias and a symbolic link:
ALIAS alias_1,(SYMLINK,symbolic_link_1),(SYMPATH,symbolic_path_1)
CHANGE statement
CHANGE statements are saved in the LMOD entry and are associated with the DLIB module name
found on the next INCLUDE statement in the JCL. If the same INCLUDE statement is processed
later by JCLIN, CHANGE statements in the LMOD entry associated with this INCLUDE statement
are deleted and then replaced by any associated CHANGE statements in the latest job. CHANGE
statements are passed to the linkage editor only when the associated DLIB module is to be replaced
in the load module.
A function SYSMOD must not contain a CHANGE statement in a link-edit step, unless PTFs can be built
without an IDENTIFY statement for the changed CSECT.
Note: RESTORE processing is limited for a SYSMOD that uses the CHANGE statement in inline JCLIN.
When such a SYSMOD is applied, the existing LMOD entry (if any) is first backed up on the SMPSCDS
and is updated with the inline JCLIN containing the CHANGE statement. When that SYSMOD is
restored, the backup copy of the LMOD entry (which does not have the updates from the CHANGE
statement) replaces the target zone LMOD entry, and the information from the CHANGE statement is
lost. Modules whose names were changed by the inline JCLIN remain in the load module under their
changed names.
ENTRY statement
Each load module consisting of more than one distribution library module must have an ENTRY
statement; otherwise, the entry point of the load module changes each time the load module is
relinked by SMP/E.
EXPAND statement
EXPAND statements should not be used in JCLIN data, because they would be saved in the LMOD
entry and would cause the load module to be expanded each time it is link-edited. This is not always
desirable. However, the EXPAND statement is allowed as input for the ++ZAP MCS. See z/OS SMP/E
Reference for more information.
IDENTIFY statement
IDENTIFY statements should not be used in JCLIN data. They are produced as part of servicing a
module. If found in the JCLIN, they are stored in the LMOD entry and can result in incorrect data being
stored during the application of service.
• Processing modules
The INCLUDE statement is used to identify a module to be included in a load module as follows:
INCLUDE ddname(name,name,…)
where name identifies the module name, and ddname identifies the library ddname where the
module resides.
A module name must be 1 to 8 uppercase alphabetic (A-Z), numeric (0-9), national (@, #, $), or
X'C0' characters. The module is expected to be a member of a data set.
The member names are assumed to be modules existing in distribution library ddname. SMP/E
builds MOD entries for each member name specified and sets the DISTLIB value in each MOD entry
to ddname. (An exception to this is when the ddname is SYSLMOD. In that case, no MOD entry is
built for the INCLUDE statement.) SMP/E does not refer to the ddname DD statement to determine
the actual library referred to. Therefore, all ddnames specified on INCLUDE statements must be the
actual ddnames assigned to the products.
The INCLUDE statements are not saved in the LMOD entry, because they are not necessary when
the load module is link-edited. All link-edits requested by SMP/E are CSECT-replaces; the load
module is built from the new version of the updated CSECT and the existing load module from the
target library.
The ddnames SYSPUNCH and SMPOBJ are reserved for inclusions of object decks produced by
assembly steps that are not to be link-edited to a distribution library during ACCEPT processing. In
both cases, the name stored in the MOD entry's DISTLIB subentry is SYSPUNCH.
• Processing utility input
The INCLUDE control statement can also be used to identify utility input to be included when
link-editing a load module. This utility input may be a definition side deck file containing IMPORT
control statements, or any other file to be included during the link-edit. A comment on the control
statement indicates to SMP/E the INCLUDE statement identifies a utility input file, not a module.
In this case, name identifies the utility input file name and ddname identifies the ddname of the
library where the file resides.
Each utility input file found on INCLUDE statements is saved in the UTILITY INPUT subentry list
of an LMOD entry. The name and ddname determine the uniqueness of a subentry and only one
subentry value for a given name and ddname combination is saved in the UTILITY INPUT subentry
list.
A utility input file can be either a member of a partitioned data set or a file in the UNIX file
system. When you identify a member of a partitioned data set, the name must be 1 to 8 uppercase
alphabetic (A-Z), numeric (0-9), national (@,#,$), or X'C0' characters. When you identify a file in the
UNIX file system,
– The name can be 1 to 1023 characters in length.
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
INCLUDE SGOSSD(GOSLMOD1,GOSLMOD2,GOSLMOD3,GOSLMOD4, x
GOSLMOD5,GOSLMOD6)
INCLUDE SGOSDR('IBM/gos/goslmod3_shipped_as_''element''_MCS_which_spanx
s_lines_looks_like_this') TYPE=UTIN
– If any part of the TYPE=UTIN comment extends past column 71, the entire comment must
be moved to the next line and a nonblank character placed in column 72 to indicate that the
INCLUDE statement is being continued.
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
INCLUDE SGOSDR(IBM/gos/goslmod1,IBM/gos/goslmod2,GOSLMD7,GOSLMD8) x
TYPE=UTIN
A LIBRARY statement should be used only if a SYSLIB DD statement is also used. It should not be
used to specify additional automatic call libraries; the SYSLIB DD statement should be used instead.
NAME lmodname(R) statement
When SMP/E encounters either the NAME control statement or the end of input with no NAME
statement, SMP/E builds an LMOD entry. How SMP/E determines the name of the LMOD depends on
the JCL being scanned:
• If the NAME statement is found, SMP/E gets the LMOD name from the lmodname field of the NAME
statement.
• If no NAME statement is found and a SYSLMOD DD statement is present, SMP/E gets the LMOD
name from the member name of the data set specified. If no member name is specified, SMP/E
issues an error message identifying the JOBNAME and STEPNAME and the reason for the error.
• If no NAME and SYSLMOD DD statements are found, SMP/E searches for the MOD=name operand in
the JCL and uses that name as the LMOD name. If no MOD=name operand is found, SMP/E issues an
error message.
The NAME statement can also be used to specify a load module's highest acceptable link edit return
code value. A comment on the control statement is used to specify the return code value as follows:
The RC=rc comment must be separated from the control statement operands by one or more blanks,
and the comment must not extend beyond column 71 (a nonblank character in column 72 indicates
statement continuation). Also, no blanks may precede or follow the equal (=) sign.
If, while scanning the link edit control statements for a load module, SMP/E finds the RC=rc comment
on the NAME statement, SMP/E saves the specified value in the LMOD entry as the RETURN CODE
subentry, creating the subentry if it does not exist or replacing any existing RETURN CODE subentry. If
SMP/E finds no RC=rc comment, SMP/E will neither create nor change the RETURN CODE subentry in
the LMOD entry.
The RETURN CODE subentry cannot be removed from an LMOD entry using JCLIN. To do this, either
the load module must be deleted and then redefined without the subentry, or the subentry must be
deleted using UCLIN.
The RC=rc comment on the NAME statement is the only method available to define a RETURN
CODE subentry value within JCLIN. Therefore, if you wish to define a RETURN CODE subentry value
within JCLIN, you must also define the load module's name using the NAME control statement. Load
modules whose names are defined using the member name of the SYSLMOD DD statement, the
MOD=name operand of the LINKS procedure specification, or in a COPY step, cannot also define a
RETURN CODE subentry value within their JCLIN.
ORDER statement
If a specific order of CSECTs within a load module is necessary, ORDER statements are required to
define the load module structure. Simply ordering the INCLUDE statements is not sufficient, because
SMP/E does CSECT replacements when relinking the load module and, therefore, changes the order of
the CSECTs.
REPLACE statement
REPLACE statements are saved in the LMOD entry and are associated with the DLIB module name
found on the next INCLUDE statement in the JCL. If the same INCLUDE statement is processed
later by JCLIN, REPLACE statements already in the LMOD entry associated with this INCLUDE
statement are deleted and replaced by any associated REPLACE statements in the latest job.
REPLACE statements are passed to the linkage editor only when the associated DLIB module is to
be replaced in the load module.
SETSSI statement
SETSSI statements should not be used in JCLIN data. They are produced as part of servicing a
module. If found in the JCLIN, they are stored in the LMOD entry and can result in incorrect data being
stored during the application of service.
SYSDEFSD DD statement
SMP/E uses the SYSDEFSD DD statement to determine the side deck library for a DLL load module.
SMP/E determines the ddname for the side deck library by using the lowest-level qualifier of the data
set name specified in the SYSDEFSD DD statement. This ddname is saved as the SIDE DECK LIBRARY
subentry in the LMOD entry.
The definition side deck for a DLL load module contains IMPORT statements for exported symbols
and is saved in the side deck library by the link-edit utility during bind operations. The link-edit utility
requires a SYSDEFSD data set during link edit operations whenever symbols are to be exported.
In some cases, you might not need to retain the IMPORT statements and therefore you might not
want to save the definition side deck. To meet the requirements of the link-edit utility without saving
the definition side deck, define SYSDEFSD as DD DUMMY. You can define a dummy side deck library
by specifying the SYSDEFSD DD statement in the JCLIN input stream in any of the following ways:
//SYSDEFSD DD DSN=SMPDUMMY,DISP=xxx
-or-
//SYSDEFSD DD DSN=NULLFILE
-or-
//SYSDEFSD DD DUMMY
In each case, the SIDE DECK LIBRARY subentry for the load module will be set to SMPDUMMY. The
value SMPDUMMY is treated as a special case by SMP/E and is always allocated as a dummy data set
when preparing for link edit operations.
For an example, see “Example 8: JCLIN for SIDEDECKLIB subentries” on page 168.
SYSLIB DD statement
Typically, SYSLIB DD statements should not be used in JCLIN data. However, they can be used for
load modules needing to implicitly include modules from other products. Such load modules are
commonly used by products that:
• Are written in a high-level language and, as a result, include modules from libraries (such as
compiler libraries) that are owned by a different product
• Make use of a callable-services interface provided by another product
• Need to include stub routines or interface modules from different products that may reside in other
zones
For such load modules, the SYSLIB DD statement should specify all the automatic call libraries SMP/E
is to use when linking the load module. (These libraries should be target libraries.) The low-level
qualifier of each data set specified in the SYSLIB concatenation is saved as a CALLLIBS subentry for
the associated load module. For SMP/E to link implicitly-included modules from these libraries, the
user must provide DDDEF entries for the libraries in the zone containing the LMOD entry.
SYSLIB DD statements are processed only if the CALLLIBS operand is specified on the JCLIN
command or ++JCLIN MCS, or if //*CALLLIBS=YES is encountered after a job card preceding a link-edit
step. If the CALLLIBS operand or the CALLLIBS comment is not specified, SMP/E ignores any SYSLIB
DD statements it encounters.
Including Pathnames in a SYSLIB Concatenation: A DD statement in a SYSLIB concatenation can
include the PATH operand to specify a pathname as an automatic call library. A LIBRARYDD comment
statement must immediately follow this DD statement and specify the ddname to be associated with
that pathname. SMP/E saves the ddname specified on the LIBRARYDD comment statement as part of
the CALLLIBS list in the LMOD entry being updated or created. For an example, see “Example 7: JCLIN
for load modules residing in a UNIX file system” on page 168.
Note:
1. If a DD statement in the concatenation comes between the DD statement specifying the PATH
operand and the LIBRARYDD comment statement, the misplaced DD statement is ignored.
2. If the DD statement specifying the PATH operand is followed by a JCL statement other than a
LIBRARYDD comment statement or a continuation DD statement for the SYSLIB concatenation, the
LMOD entry is not updated or created. In addition, if the JCLIN was specified in a SYSMOD (instead
of being processed by the JCLIN command), processing for that SYSMOD fails.
SYSLMOD DD statement
SMP/E uses either the SYSLMOD DD statement or the NAME statement to determine the target library
for the load module, as follows:
• If a SYSLMOD DD statement is present, SMP/E determines the target library ddname by using the
lowest-level qualifier of the data set name specified in the SYSLMOD DD statement.
• If no SYSLMOD DD statement is present, SMP/E determines the name by looking at the
NAME=dsname option on the procedure statement. The ddname used is the lowest-level qualifier of
the data set name specified in the NAME option.
• If no SYSLMOD DD statement or NAME=dsname value is found, SMP/E issues an error message.
The ddname of the target library is saved as the SYSLIB value in the LMOD entry for the load module.
A SYSLMOD DD statement can include the PATH operand to specify a pathname for installing a load
module in a UNIX file system. A LIBRARYDD comment statement must immediately follow this DD
statement and specify the ddname to be associated with that pathname. SMP/E saves the ddname
specified on the LIBRARYDD comment statement as a SYSLIB subentry in the LMOD entry being
updated or created. For an example, see “Example 7: JCLIN for load modules residing in a UNIX file
system” on page 168.
Note:
1. If the DD statement specifying the PATH operand is followed by a JCL statement other than a
LIBRARYDD comment statement, the LMOD entry is not updated or created. In addition, if the
JCLIN was specified in a SYSMOD (instead of being processed by the JCLIN command), processing
for that SYSMOD fails.
2. An LMOD entry can have at most two SYSLIB subentries. If the LMOD entry already contains two
SYSLIB subentries, SMP/E replaces the second SYSLIB ddname with the ddname found on the
SYSLMOD DD statement, the NAME=dsname option, or the LIBRARYDD comment statement.
All other statements found in link-edit input
All other link-edit control statements found are saved in the LMOD entry in the order they are
encountered, and are passed to the linkage editor whenever SMP/E needs to relink this load module.
SMP/E then scans the link-edit JCL for the link-edit attributes used to link this load module.
These are the link-edit attributes SMP/E recognizes in the PARM field and saves for future processing:
AMOD(24)
AMODE(31)
AMOD(31)
AMODE(64)
AMOD(64)
AMODE(ANY)
AMOD(ANY)
AMODE(MIN)
AMOD(MIN)
CASE(UPPER) COMPAT(PM1)
COMPAT(PM2)
COMPAT(PM3)
COMPAT(PM4)
NOPACK NOPRIME
NCAL
REUS(NONE)
RMOD(24) UPCASE(NO)
RMODE(31)
RMOD(31)
RMODE(ANY)
RMOD(ANY)
RMODE(SPLIT)
RMOD(SPLIT)
RMODE(64)
RMOD(64)
RMODEX(64TRUE)
RMODEX(NO)
When none of the previously listed attributes are found, the STD indicator is set in the LMOD entry to
indicate that the load module should be link-edited without any particular attributes.
Note:
1. RMODE(31) is a synonym for RMODE(ANY).
2. The OPTIONS attribute is recognized and processed, but it is not saved as part of the LMOD entry or
the MOD entry being processed. It is used as a pointer to an imbedded file containing additional option
specifications, allowing the PARM string to exceed the 100-character limit.
3. All LEPARM attributes may also be specified in the format ‘attribute=value’. For example, FILL(nn) may
also be specified as FILL=nn.
4. For more information on the previously listed attributes, see z/OS SMP/E Reference.
5. For more information on which attributes you can use with a specific link-edit utility, see z/OS MVS
Program Management: User's Guide and Reference.
The LMOD entry constructed in this way contains the load module name, the libraries it resides in, the
link-edit attributes, and the link-edit control statements required to relink the load module.
If SMP/E is creating an LMOD entry and finds an existing LMOD entry for the same load module containing
only cross-zone subentries (a stub entry):
• SMP/E issues messages indicating that the cross-zone relationship might no longer be valid, and then
deletes the cross-zone subentries from the LMOD entry.
• If deleting these cross-zone entries eliminates a TIEDTO relationship with a cross-zone, SMP/E deletes
the associated TIEDTO value from the TARGETZONE entry for the set-to zone.
• Entries for related cross-zone modules are not updated to indicate that they are no longer part of the
load module in the set-to zone, and the cross-zone's TIEDTO values are not updated.
2. JCLIN processing
Target zone
Update with exclusive enqueue.
3. Termination
All resources are freed.
The LINK LMODS command helps you relink load modules when implicitly-included modules in a
particular library are updated. The LINK LMODS command will relink load modules that have a CALLLIBS
subentry list in their LMOD entry (and therefore use the automatic library call option to implicitly include
modules from a specified library).
The LINK LMODS command may also be used to relink specific load modules that do not contain
CALLLIBS, rebuilding them from scratch, if necessary.
For information on the rebuilding of load modules and the effects of CALLLIBS on this process, see
Appendix C, “Building load modules,” on page 551.
Syntax
LINK LMODS Command
LINK
LMODS CALLLIBS
,
( name )
,
LMODS ( lmod )
CALLLIBS
,
( name )
RETRY(YES)
•
CHECK RETRY(NO) ,
RC( command=rc )
Operands
LMODS
specify the load modules that should be relinked. Load modules specified on the LMODS operand are
relinked in addition to any that matched the criteria of the CALLLIBS operand.
If you want to relink a particular set of load modules, specify their names on the LMODS operand.
If you want to relink all load modules whose LMOD entries contain a CALLLIBS subentry list, do not
specify any names on the LMODS operand.
LMODS is a required operand for the LINK LMODS command, and it is mutually exclusive with
MODULE, FROMZONE and INTOLMOD.
CALLLIBS
requests relinks for load modules whose LMOD entries contain a CALLLIBS subentry list. The specified
name is a DDDEF named in an LMOD entry's CALLLIBS subentry list.
Load modules that match the criteria of the CALLLIBS operand are relinked in addition to any load
modules specified on the LMODS operand.
If you want to relink only those load modules with particular CALLLIBS subentries, specify CALLLIBS
and the specific names. If you want to relink all load modules with CALLLIBS subentries, specify
CALLLIBS without any names.
CALLLIBS is mutually exclusive with MODULE, FROMZONE and INTOLMOD. CALLLIBS is a required
operand for the LINK LMODS command when the LMODS operand is specified without a list of load
module names. If a list of load module names is specified on the LMODS operand, then the CALLLIBS
operand is not required.
CHECK
indicates that SMP/E should not relink any load modules. Instead, it should just take these actions:
• Test for errors other than those that occur when the load modules are actually relinked.
• Report on which load modules were relinked.
CHECK is mutually exclusive with MODULE, FROMZONE and INTOLMOD.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the LINK LMODS command.
Before SMP/E processes the LINK LMODS command, it checks whether the return codes for the
specified commands are less than or equal to the values specified on the RC operand. If so, SMP/E
can process the LINK LMODS command. Otherwise, the LINK LMODS command fails. For more
information about the RC operand, see Appendix A, “Processing the SMP/E RC operand,” on page
545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the LINK LMODS command. Therefore, if you use the RC operand, you must specify
every command whose return code you want SMP/E to check.
RETRY
indicates whether SMP/E should try to recover from out-of-space errors for utilities it calls.
YES
indicates that SMP/E should try to recover and retry the utility if a RETRYDDN list is available in the
OPTIONS entry that is in effect. RETRY(YES) is the default.
If the retry attempt fails, the resulting x37 abend is treated as an unacceptable utility return
code. In this case, processing continues for updates to other libraries, but processing fails for
unprocessed updates for the out-of-space library.
If there is no RETRYDDN list, SMP/E does not try to recover from out-of-space errors, even if YES
is specified.
NO
indicates that SMP/E should not try to recover from the error.
Note:
1. The SMPLTS data set is required only when a load module with CALLLIBS is being processed.
2. The SMPMTS, SYSLIB concatenation, and SMPSTS data sets are needed only when assemblies must
be done for a module so that it can be included in a load module.
3. SMPPARM is required only if exit routines have been defined in SMPPARM member GIMEXITS.
4. zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according to
the ZONEINDEX information in the GLOBALZONE entry.
Output
The File Allocation report and the LINK LMODS Summary report are produced during LINK LMODS
processing. These reports are described in Chapter 34, “SMP/E reports,” on page 461.
Processing
To process the LINK LMODS command, SMP/E checks to ensure that the syntax used for the LINK
LMODS command is valid. SMP/E first checks for mutually exclusive operands. The following operands are
mutually exclusive, and will cause the command to fail when specified together:
• LMODS
• CALLLIBS
• CHECK
with
• MODULE
• FROMZONE
• INTOLMOD
The next check done is for required operands. When CHECK is specified, LMODS is required. When
CALLLIBS is specified, LMODS is required. The CALLLIBS operand is only required if the LMODS operand
was specified without any values.
LMOD applicability
After the LINK LMODS command has been successfully syntax checked, SMP/E builds a candidate list of
load modules to be relinked.
If specific load modules are listed on the LMODS operand, SMP/E will start with those load modules. If
the CALLLIBS operand was specified, SMP/E will add those LMODs that meet the CALLLIBS specification.
SMP/E will search the zone for all load modules containing CALLLIBS subentries. These load modules are
added to the candidate list of load modules to be relinked if either of the following is true:
• No values were specified on the CALLLIBS operand on the LINK command.
• Values were specified, and at least one value that was specified on the CALLLIBS operand for the LINK
LMODS command matches a value in the load module's CALLLIBS subentry list.
Once the list of candidate LMODS has been built, SMP/E will verify that the list is not empty.
There are two special cases that can occur when SMP/E determines the scheduling of link-edits that
require a CALLLIBS allocation:
1. Two load modules both specify a CALLLIBS allocation. Assume the names of the two load modules are
A and B. Load module A specifies in its CALLLIBS allocation load module B's SYSLMOD data set (target
library). In this case, SMP/E schedules the link-edit for load module B first.
2. Two load modules both specify a CALLLIBS allocation. Assume the names of the two load modules are
C and D. Load module C specifies in its CALLLIBS allocation load module D's SYSLMOD data set. Load
module D specifies in its CALLLIBS allocation load module C's SYSLMOD data set. In this case, SMP/E
can not determine which link-edit should be performed first. SMP/E arbitrarily chooses to link-edit one
of the load modules first.
Products sometimes contain modules from other products. For example, a product may need to:
• Include another product's modules in its load modules.
In this case, as long as the two products are in the same zone, SMP/E can automatically include the
required modules in the load modules that need them (if the modules reside in the target library as
single-CSECT load modules). SMP/E also tracks the inclusion of these cross-product modules in the
load modules.
• Update another product's load module with one of its modules.
In this case, as long as the two products are in the same zone, SMP/E can automatically relink the
load module and include the supplied module. SMP/E also tracks the inclusion of the modules in the
cross-product load module.
When such products reside in different zones, however, SMP/E cannot automatically perform the cross-
zone link-edits. Instead, you can use the LINK MODULE command to perform these cross-zone link-edits
as postinstallation steps within SMP/E control. The LINK MODULE command causes the required load
modules in one zone to be linked with modules residing in another zone, and tracks this inclusion so
subsequent APPLY and RESTORE processing can automatically maintain the affected load modules.
Note:
1. The zones used by the LINK MODULE command must be defined in the same global zone.
2. When SMP/E processes the LINK MODULE command, it assumes that adding the desired modules to
the load modules does not require any changes to the load module definition (that is, the link-edit
utility control statements or link-edit utility attributes). If any such changes are needed, make them
through JCLIN before using the LINK MODULE command.
3. There are times when the LINK MODULE command is not appropriate to use—generally, for products
written in a high-level language and, as a result, include modules from libraries (such as compiler
libraries) owned by a different product. Your options for installing such a product depend on how the
product was packaged.
• SYSLIB DD statements are used in link-edit steps to implicitly include the necessary modules.
In this case, when you install the product, the implicitly-included modules are automatically linked
into the load modules. If the libraries containing those modules are updated, you can use the LINK
LMODS command to rebuild the affected load modules. For more information, see the Chapter 10,
“The LINK LMODS command,” on page 191.
• No SYSLIB DD statements are used in link-edit steps in order to implicitly include the necessary
modules. In this case, you must use postinstallation link-edit steps outside of SMP/E.
Syntax
LINK MODULE Command
,
,
RETRY(YES)
INTOLMOD( lmod )
RETRY(NO)
•
,
RC( command=rc )
Operands
FROMZONE
specifies the zone containing the modules specified on the MODULE operand. The specified zone must
be a target zone and must not be the same as the zone specified on the preceding SET command.
Note:
1. FROMZONE is a required operand for the LINK MODULE command.
2. The zone specified on FROMZONE must be defined in the same global zone as the zone specified
on the preceding SET command.
INTOLMOD
specifies the load modules that should be link-edited to include the modules specified on the
MODULE operand. These load modules must be defined in the zone specified on the preceding SET
command.
Note:
1. INTOLMOD is a required operand for the LINK MODULE command.
2. Do not specify a copied (single-CSECT) load module. You cannot use the LINK MODULE command
to add modules to a single-CSECT load module; such load modules do not have any link-edit utility
control statements that allow for the proper management of a multiple-module load module.
MODULE
specifies the modules that should be linked into the load modules specified on the INTOLMOD
operand.
Note:
1. MODULE is a required operand for the LINK MODULE command.
2. Do not specify a module having the same name as a module installed in the set-to zone that is
already part of the load module being updated.
3. You can specify a module that is from a totally copied library or that is a single-CSECT load module.
However, you cannot specify a module that needs to be assembled.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the LINK MODULE command.
Before SMP/E processes the LINK MODULE command, it checks whether the return codes for the
specified commands are less than or equal to the values specified on the RC operand. If so, SMP/E
can process the LINK MODULE command. Otherwise, the LINK MODULE command fails. For more
information about the RC operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the LINK MODULE command. Therefore, if you use the RC operand, you must
specify every command whose return code you want SMP/E to check.
RETRY
indicates whether SMP/E should try to recover from out-of-space errors for utilities it calls.
YES
indicates that SMP/E should try to recover and retry the utility if a RETRYDDN list is available in the
OPTIONS entry that is in effect. RETRY(YES) is the default.
If the retry attempt fails, the resulting x37 abend is treated as an unacceptable utility return code.
In this case, processing continues for SYSMODs containing eligible updates to other libraries, but
processing fails for SYSMODs containing unprocessed elements for the out-of-space library (and
it fails for any SYSMODs that are dependent on the failed SYSMODs). For guidance on setting up
the desired retry processing,see z/OS SMP/E User's Guide. For more information about OPTIONS
entries, see z/OS SMP/E Reference.
If there is no RETRYDDN list, SMP/E does not try to recover from out-of-space errors, even if YES
is specified.
NO
indicates that SMP/E should not try to recover from the error.
Note:
1. The SMPLTS data set is required only if a load module with CALLLIBS subentries is specified on the
INTOLMOD operand of the LINK MODULE command.
2. Distribution library represents the DD statements required for each distribution library required to
provide modules for the link-edits.
3. Target library represents the DD statements required for each target library required to provide
modules or load modules for the link-edits.
4. zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated using the
ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used
to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
5. SMPPARM is required only if exit routines have been defined in SMPPARM member GIMEXITS.
Output
The File Allocation report is produced during LINK MODULE command processing. This report is
described in Chapter 34, “SMP/E reports,” on page 461.
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:
• 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:
• 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.
• 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.
Processing
To process the LINK MODULE command, SMP/E first ensures that the syntax used for the LINK MODULE
command is valid. Next, SMP/E checks whether both the zone specified on the FROMZONE operand and
the zone specified on the preceding SET command are target zones. If they are, SMP/E obtains the CSIs
containing the zones for update processing with an exclusive enqueue. Once SMP/E has obtained access
to the CSI data sets, it opens the zones for update mode.
If SMP/E encounters any of the following errors, the LINK MODULE command fails:
• The LINK MODULE command contains syntax errors.
• Either the zone specified on the FROMZONE operand or the zone specified on the SET command (or
both) is not a target zone.
• Errors were encountered while SMP/E was acquiring the CSIs or opening the zones.
SMP/E also performs a required operand check for the LINK MODULE command. If FROMZONE
is specified, MODULE and INTOLMOD are both required. If MODULE is specified, FROMZONE and
INTOLMOD are both required. Finally, if INTOLMOD is specified, FROMZONE and MODULE are both
required.
When all checks are satisfied, SMP/E prepares to link the load modules and invokes the link-edit utility to
do so.
how SMP/E builds load modules and on the rebuilding of load modules with CALLLIBS, see Appendix C,
“Building load modules,” on page 551.
The SMP/E data sets contain a great deal of information—the global zone, target zones, distribution zones,
SMPPTS, SMPLOG, and SMPSCDS—that you may find useful when installing a new function, preparing
a user modification, or debugging a problem. You can use the SMP/E LIST command to display that
information.
SMP/E can display all the entries of a specified type (such as MOD, MAC, SYSMOD, and so on), or it can
display information for selected entries. In addition, for SYSMOD entries, SMP/E provides some additional
operands you can specify to list groups of SYSMODs that meet certain criteria.
Syntax
This section shows the LIST command syntax for the following zones and data sets:
• Distribution and target zones
• Global zone
• SMPLOG
• SMPSCDS
LIST Command
LIST
ALLZONES ASSEM
,
( name )
DDDEF
,
( name )
DLIB DLIBZONE
,
TARGETZONE
( name )
element
,
( name )
FORFMID ( name )
hfs_element
,
( name )
JAR
,
( name )
LMOD
,
( name )
MAC
,
( name )
MCS
,
( sysmod_id )
MOD
,
( name )
PROGRAM
,
( name )
SRC
,
( name )
•
XZMODP
SYSMOD Options
( sysmod_id )
EXSRCID( source_id )
, SUP
NOSUP
SOURCEID( source_id )
Note:
1. The SYSMODS operand is optional if you specify any of the following operands:
APARS
BYPASS
DELETE
ERROR
EXSRCID
FUNCTIONS
MCS
NOACCEPT
NOAPPLY
NOSUP
PTFS
RESTORE
SOURCEID
SUP
USERMODS
2. The XZLMODP and XZMODP operands are valid only for target zone entries.
See the operand descriptions for details on all the operands.
( name )
FEATURE FMIDSET
, ,
( name ) ( name )
FORFMID ( name )
MCS OPTIONS
, ,
( sysmod_id ) ( name )
ORDER
,
( name )
PRODUCT
,
( prodid )
( prodid , vv.rr.mm )
SYSMODS UTILITY
SYSMOD options ,
( name )
•
ZONESET
,
( name )
HOLD options
SYSMOD options
( sysmod_id )
USERMODS ERROR ,
EXSRCID( source_id )
NOAPPLY( zone_name ) ,
SOURCEID( source_id )
Note: The SYSMODS operand is optional if you specify any of the following operands:
APARS
ERROR
EXSRCID
FUNCTIONS
HOLDERROR
HOLDSYSTEM
HOLDUSER
NOACCEPT
NOAPPLY
PTFS
SOURCEID
USERMODS
SMPLOG syntax
LIST command
LIST LOG •
( mm dd yy , mm dd yy )
SMPSCDS syntax
LIST command
LIST BACKUP •
,
( sysmod_id )
Operands
ALLZONES
indicates that SMP/E should list information from the global zone and all the target and distribution
zones defined by ZONEINDEX subentries.
Note:
lists SYSMOD entry UZ12345 in each zone to which it has been applied or accepted.
3. ALLZONES is allowed when the SET command specifies the global zone, a target zone, or a
distribution zone.
The entries listed are the same, regardless of the type of zone you specify, because the output is
determined by the additional operands on the LIST command and by the entry types valid within
each zone to be listed. For example, the following lists module X in all target and distribution
zones:
The global zone is skipped, because there are no modules in the global zone.
APARS
indicates that SMP/E should list APAR SYSMODs.
Note:
1. APARS can also be specified as APAR.
2. When APARS is used with FUNCTIONS, PTFS, or USERMODS, SMP/E lists any SYSMOD whose type
matches any one of those specified.
3. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD was also specified, even if it was not.
ASSEM
indicates that SMP/E should list all ASSEM entries or the specified ASSEM entries.
Note: ASSEM is allowed when the SET command specifies a target zone or distribution zone.
BACKUP
indicates that SMP/E should list all BACKUP entries or the specified BACKUP entries.
Note:
1. BACKUP is mutually exclusive with all other LIST operands.
2. BACKUP is allowed when the SET command specifies a target zone.
BYPASS
indicates that SMP/E should list entries for SYSMODs installed using the BYPASS operand.
Note:
1. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD was also specified, even if it was not.
2. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
DDDEF
indicates that SMP/E should list all DDDEF entries or the specified DDDEF entries.
DELETE
indicates that SMP/E should list entries for function SYSMODs that have been explicitly deleted from
the target zone or distribution zone by other function SYSMODs.
Note:
1. DELETE is allowed when the SET command specifies a target zone or distribution zone.
2. DELETE can also be specified as DEL.
3. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD was also specified, even if it was not.
DLIB
indicates that SMP/E should list all DLIB entries or the specified DLIB entries.
Note: DLIB is allowed when the SET command specifies a target zone or distribution zone.
DLIBZONE
indicates that SMP/E should list the DLIBZONE entry.
Note:
1. DLIBZONE is allowed when the SET command specifies a distribution zone.
2. DLIBZONE can also be specified as DZONE.
element
is used to list a particular type of data element entry. element indicates that SMP/E should list all data
element entries of that type or the specified data element entries.
Note:
1. element is allowed when the SET command specifies a target zone or distribution zone.
2. "Data Element MCS" in the "SMP/E Modification Control Statements" chapter in z/OS SMP/E
Reference shows the types of data elements that can be specified for the element operand.
3. Some types of elements, such as panels, messages, or text, may have been translated into several
languages. In these cases, the element operand contains xxx, which represents the language used
for the element. (If an element was not translated, the element operand does not contain a xxx
value.) The "SMP/E Modification Control Statements" chapter in z/OS SMP/E Reference contains a
table that shows the xxx values and the languages they represent.
ERROR
indicates that SMP/E should list SYSMOD entries in which the ERROR indicator is set.
Note:
1. ERROR is allowed when the SET command specifies a target zone or distribution zone.
2. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD was also specified, even if it was not.
3. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
EXSRCID
indicates that SYSMODs associated with the specified source IDs should not be listed.
Note:
1. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD was also specified, even if it was not.
2. There are two ways to specify source IDs:
• Explicitly, by fully specifying a particular source ID (for example, RSU0711). In this case, all
SYSMODs that contain the identified source ID are excluded.
• Implicitly, by partially specifying a source ID value using asterisks (*) as global characters and
percent signs (%) as placeholders.
– A single asterisk indicates that zero or more characters can occupy that position. Here are
some examples:
- For RSU*, all SYSMODs that contain a source ID that begins with the character string RSU*
are excluded.
- For *0711, all SYSMODs that contain a source ID that ends with the character string 0711
are excluded.
- For RSU*1, all SYSMODs that contain a source ID that begins with the character string RSU
and ends with the character string 1 are excluded.
– A single percent sign indicates that any one single character can occupy that position. For
RSU0%11, for example, SYSMODs that contain any of these source IDs are excluded: RSU0711,
RSU0211, and RSU0311. SYSMODs that contain source ID RSU00711 are not excluded.
Any number of asterisks and percent signs can be used within a single partially specified source ID.
The following examples are valid source ID specifications:
RSU0709
RSU*
IBM.Device.20%4
IBM.Device.*.zAAP
3. A given source ID can be explicitly specified only once on the EXSRCID operand.
4. The same source ID cannot be explicitly specified on both the EXSRCID and SOURCEID operands.
5. If a source ID is specified, implicitly or explicitly, on the EXSRCID operand and on the SOURCEID
operand, all SYSMODs with that source ID are excluded from processing.
6. If a given SYSMOD has multiple source IDs and at least one of those source IDs is specified
implicitly or explicitly on the source ID operand, the SYSMOD is excluded from processing if
another one of its source IDs is specified implicitly or explicitly on the EXSRCID operand.
For example, assume PTF UZ12345 has been assigned source IDs SMCREC and PUT0703. If you
specify SOURCEID(SMC*) and EXSRCID(PUT0703), the SYSMOD is excluded from processing.
7. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
8. A source ID value might contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified source ID value. For example, a specified source ID
value of ABCDEF matches a value of abcdef.
FEATURE
indicates SMP/E should list all FEATURE entries or the specified FEATURE entries.
Note:
1. FEATURE is allowed when ALLZONES is specified or the SET command specifies the global zone.
2. FEATURE with the FORFMID operand lists only FEATUREs with the specified FMIDs.
FMIDSET
indicates that SMP/E should list all FMIDSET entries or the specified FMIDSET entries.
Note:
1. FMIDSET is allowed when the SET command specifies the global zone.
2. FMIDSET can also be specified as FMSET.
3. To list element and SYSMOD entries owned by an FMID defined in a particular FMIDSET entry, use
the FORFMID operand, not FMIDSET. The FMIDSET operand provides a listing only of the specified
FMIDSET entries, not a listing of the entries owned by FMIDs defined in the specified FMIDSET
entries.
FORFMID
indicates that SMP/E should list only entries currently owned by one of the specified FMIDs or by an
FMID defined in one of the specified FMIDSET entries.
Note:
1. You can specify FMIDs, FMIDSET entries, or both.
2. Only element and SYSMOD entries are listed by the FORFMID operand.
3. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD was also specified, even if it was not, unless an element type operand was also specified.
In that case, FORFMID limits the element entries that are listed.
4. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
5. FORFMID with the HOLDDATA operand lists only SYSMODs with the specified FMID that have been
received.
FUNCTIONS
indicates that SMP/E should list function SYSMODs.
Note:
1. FUNCTIONS can also be specified as FUNCTION.
2. When FUNCTIONS is used with APARS, PTFS, or USERMODS, SMP/E lists any SYSMOD whose type
matches any one of those specified.
3. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD was also specified, even if it was not.
GLOBALZONE
indicates that SMP/E should list the GLOBALZONE entry.
Note:
1. GLOBALZONE is allowed when the SET command specifies the global zone.
2. GLOBALZONE can also be specified as GZONE.
hfs_element
is used to list a particular type of hierarchical file system element entry. hfs_element indicates that
SMP/E should list all hierarchical file system element entries of that type or the specified hierarchical
file system element entries.
Note:
1. hfs_element is allowed when the SET command specifies a target zone or distribution zone.
2. "Hierarchical File System Element MCS" in the "SMP/E Modification Control Statements" chapter in
z/OS SMP/E Reference shows the types of hierarchical file system elements that can be specified
for the hfs_element operand.
3. To list UNIX shell scripts for the zone, enter the LIST command for the hfs_element type of
SHELLSCR. To list all shell scripts for the zone, specify SHELLSCR by itself. To list only specific
shell scripts, include the names of the shell script files with the SHELLSCR operand. An example is
shown in “Example 5: List entries for specific UNIX shell scripts” on page 224.
4. Some types of hierarchical file system elements, such as panels, messages, or text, may have been
translated into several languages. In these cases, the hfs_element operand contains xxx, which
represents the language used for the element. (If an element was not translated, the hfs_element
operand does not contain any xxx value.) The "SMP/E Modification Control Statements" chapter in
z/OS SMP/E Reference contains a table that shows the xxx values and the languages they represent.
HOLDDATA
indicates that SMP/E should list HOLDDATA. How the HOLDDATA is listed depends on whether you
specify the SYSMOD operand with the HOLDDATA operand.
• When specified with the SYSMOD operand, HOLDDATA indicates that SMP/E should list only
SYSMODs that are held, and should include the ++HOLD modification control statements
(HOLDDATA) associated with the SYSMOD entries that are listed. No separate HOLDDATA entries
are listed.
• When specified without the SYSMOD operand, HOLDDATA indicates that SMP/E should list all
HOLDDATA entries. No SYSMOD entries are listed.
You can limit which HOLDDATA entries are listed by coding one or more of the following operands:
HOLDERROR
HOLDFIXCAT
HOLDSYSTEM
HOLDUSER
If you specify more than one type of hold, SMP/E lists only entries containing holds for all
the specified types. For example, the following commands list all HOLDDATA entries with both
HOLDERROR and HOLDSYSTEM reason IDs:
Note:
1. HOLDDATA is allowed when the SET command specifies the global zone.
2. HOLDDATA with the FORFMID operand lists only SYSMODs with the specified FMID that have been
received.
3. Table 15 on page 214 summarizes the LIST results for various combinations of the HOLDDATA
operand with other related operands.
Table 15. Information listed for HOLDDATA combined with other operands
HOLD-related operands Information listed when the Information listed when the
SYSMOD operand is specified SYSMOD operand is not specified
HOLDDATA (without HOLDERROR, SYSMOD entries plus all associated All ++HOLD statements of all types.
HOLDFIXCAT, HOLDSYSTEM, or ++HOLD statements.
HOLDUSER)
HOLDDATA (with HOLDERROR, SYSMOD entries for SYSMODs All ++HOLD statements of the
HOLDFIXCAT, HOLDSYSTEM, or that have the specified HOLDDATA specified types.
HOLDUSER) types, plus all associated ++HOLD
statements for those SYSMODs.
HOLDERROR, HOLDFIXCAT, SYSMOD entries for SYSMODs SYSMOD entries for SYSMODs
HOLDSYSTEM, or HOLDUSER that have the specified HOLDDATA that have the specified HOLDDATA
(without HOLDDATA) types. No ++HOLD statements types. No ++HOLD statements are
included with the SYSMOD entries. included with the SYSMOD entries.
HOLDERROR
When specified without the HOLDDATA operand (and either with or without the SYSMOD operand),
HOLDERROR indicates that SMP/E should list only SYSMODs associated with error hold reason IDs.
The associated ++HOLD modification control statements are not listed.
Note: If the reason IDs are bypassed or resolved, these SYSMODs might not actually be held during
APPLY or ACCEPT processing.
When specified with the HOLDDATA operand but without the SYSMOD operand, HOLDERROR
indicates that HOLDDATA entries for error hold reason IDs should be listed. No SYSMOD entries are
listed.
Note:
1. HOLDERROR is allowed when the SET command specifies the global zone.
2. HOLDERROR can also be specified as HOLDERR.
HOLDFIXCAT
When specified without the HOLDDATA operand (and either with or without the SYSMOD operand),
HOLDFIXCAT indicates that SMP/E should list only SYSMODs associated with the fix category hold
reason IDs. The associated ++HOLD modification control statements are not listed.
When specified with the HOLDDATA operand but without the SYSMOD operand, HOLDFIXCAT
indicates that HOLDDATA entries for fix category hold reason IDs should be listed. No SYSMOD entries
are listed.
When specified with the HOLDDATA and the SYSMOD operands, HOLDFIXCAT indicates that
HOLDDATA entries for fix category hold reason IDs should be listed, and the SYSMOD entries for
those held SYSMODs should be listed.
Note:
1. HOLDFIXCAT is allowed only when the SET command specifies the global zone.
2. HOLDFIXCAT and ALLZONES are mutually exclusive.
HOLDSYSTEM
When specified without the HOLDDATA operand (and either with or without the SYSMOD operand),
HOLDSYSTEM indicates that SMP/E should list only SYSMODs associated with system hold reason IDs.
The associated ++HOLD modification control statements are not listed.
Note: If the reason IDs are bypassed or resolved, these SYSMODs might not actually be held during
APPLY or ACCEPT processing.
When specified with the HOLDDATA operand but without the SYSMOD operand, HOLDSYSTEM
indicates that SMP/E should list HOLDDATA entries for system hold reason IDs. No SYSMOD entries
are listed.
Note:
1. HOLDSYSTEM is allowed when the SET command specifies the global zone.
2. HOLDSYSTEM can also be specified as HOLDSYS.
HOLDUSER
When specified without the HOLDDATA operand (and either with or without the SYSMOD operand),
HOLDUSER indicates that SMP/E should list only SYSMODs associated with user hold reason IDs. The
associated ++HOLD modification control statements are not listed.
Note: If the reason IDs are bypassed or resolved, these SYSMODs might not actually be held during
APPLY or ACCEPT processing.
When specified with the HOLDDATA operand but without the SYSMOD operand, HOLDUSER indicates
that HOLDDATA entries for user hold reason IDs should be listed. No SYSMOD entries are listed.
Note: HOLDUSER is allowed when the SET command specifies the global zone.
JAR
indicates that SMP/E should list all Java Archive (JAR) file entries or the specified JAR entries.
LMOD
indicates that SMP/E should list all LMOD entries or the specified LMOD entries.
Note: LMOD is allowed when the SET command specifies a target zone or distribution zone.
LOG
indicates that SMP/E should list either the total contents of the LOG or the contents within a selected
date range.
(mm dd yy, mm dd yy) specifies a range of dates within the data set to be listed. If no date range is
specified, the contents of the entire LOG data set are listed.
The dates are specified as mm dd yy, where mm is the month (01 to 12), dd is the day (01 to 31), and
yy is the year (00 to 99). Blanks separate the month, day, and year.
The following commands list the data in the LOG for June 8 through June 11, 2008:
These commands list the data in the LOG for one day, June 9, 2008:
Note:
1. LOG is mutually exclusive with all other LIST operands.
2. To determine which LOG data set to list, SMP/E checks the SMPLOG DDDEF entry in the zone
specified on the SET command.
3. SMP/E views its LOG data set as one "logical" data set, even though there might actually be two
separate physical data sets: SMPLOG and SMPLOGA. So, if an SMPLOGA DDDEF is defined in the
zone and data has spilled over from the SMPLOG data set into the SMPLOGA data set, LIST LOG
also lists the contents of the SMPLOGA data set. You can also specify a date range that spans the
SMPLOG and SMPLOGA data sets, or a date range that is only in the SMPLOGA data set, because
SMP/E views the two data sets as a single "logical" data set.
MAC
indicates that SMP/E should list all MAC entries or the specified MAC entries.
MCS
specifies that SMP/E should list all or the specified. LIST MCS can be used to print PTF cover letters.
• If no SYSMOD IDs are specified, SMP/E lists the modification control statements associated with all
the SYSMOD entries in the current zone.
• If SYSMOD IDs are specified, SMP/E lists only the modification control statements for the specified
SYSMOD entries. For example, the following commands list only the modification control statements
for AZ12345:
MOD
indicates that SMP/E should list all MOD entries or the specified MOD entries.
NOACCEPT
indicates that SMP/E should list SYSMOD entries from the current zone that are not accepted into a
particular distribution zone. You can use NOACCEPT to:
• See which SYSMODs have been received but have not yet been accepted into the specified
distribution zone.
To do this, specify the global zone on the SET command and the distribution zone you want to check
on the NOACCEPT operand.
• See which SYSMODs have been applied in a particular target zone but have not yet been accepted
into one of these zones:
– Its related distribution zone
– The distribution zone specified on NOACCEPT
To do this, specify the desired target zone on the SET command and take one of these actions:
– To check for SYSMODs that have not been accepted into the related distribution zone, specify
NOACCEPT without a zone name.
– To check for SYSMODs that have not been accepted into a particular distribution zone, specify
NOACCEPT with the appropriate distribution zone name.
• Compare which SYSMODs are accepted in two distribution zones.
To do this, specify one distribution zone on the SET command and the other on the NOACCEPT
operand. SMP/E lists the SYSMODs that have been accepted into the set-to zone, but not into the
NOACCEPT zone.
For examples, see “Examples” on page 223.
Note:
1. NOACCEPT can also be specified as NOACC.
2. If you specify either the global zone or a distribution zone on the SET command, you must specify
a distribution zone on NOACCEPT.
3. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
4. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
5. You can also use the REPORT SYSMODS command to compare zones and to generate the
commands needed to install SYSMODs in the zone where they are not installed. See Chapter 20,
“The REPORT SYSMODS command,” on page 329 for more information.
NOAPPLY
indicates that SMP/E should list SYSMOD entries from the current zone that are not applied to a
particular target zone. You can use NOAPPLY to:
• See which SYSMODs have been received but have not yet been applied to the specified target zone.
To do this, specify the global zone on the SET command and the target zone you want to check on
the NOAPPLY operand.
• See which SYSMODs have been accepted into a particular distribution zone but have not yet been
applied to one of these zones:
– Its related target zone
– The target zone specified on NOAPPLY
To do this, specify the desired distribution zone on the SET command and take one of these actions:
– To check for SYSMODs that have not been applied to the related target zone, specify NOAPPLY
without a zone name.
– To check for SYSMODs that have not been applied to a particular target zone, specify NOAPPLY
with the appropriate target zone name.
• Compare which SYSMODs are applied to two target zones.
To do this, specify one target zone on the SET command and the other on the NOAPPLY operand.
SMP/E lists the SYSMODs that have been applied to the set-to zone but not to the NOAPPLY zone.
For more information, see “Examples” on page 223.
Note:
1. NOAPPLY can also be specified as NOAPP.
2. If you specify either the global zone or a target zone on the SET command, you must specify a
target zone on NOAPPLY.
3. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD was also specified, even if it was not.
4. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
5. You can also use the REPORT SYSMODS command to compare zones and to generate the
commands needed to install SYSMODs in the zone where they are not installed. See Chapter 20,
“The REPORT SYSMODS command,” on page 329 for more information.
NOSUP
indicates that SMP/E should list entries for SYSMODs that have not been superseded.
Note:
1. NOSUP is mutually exclusive with SUP.
2. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
3. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
OPTIONS
indicates that SMP/E should list all OPTIONS entries or the specified OPTIONS entries.
Note: OPTIONS is allowed when the SET command specifies the global zone.
ORDER
indicates that SMP/E should list all ORDER entries in the global zone or the specified ORDER entries.
Note: ORDER is allowed when ALLZONES is specified or the SET command specifies the global zone.
PRODUCT
indicates SMP/E should list all PRODUCT entries or the specified PRODUCT entries.
Note: PRODUCT is allowed when ALLZONES is specified or the SET command specifies the global
zone.
PROGRAM
indicates that SMP/E should list all program element entries or the specified program element entries.
PTFS
indicates that SMP/E should list PTF SYSMODs.
Note:
1. PTFS can also be specified as PTF.
2. When PTFS is used with APARS, FUNCTIONS, or USERMODS, SMP/E lists any SYSMOD whose type
matches any one of those specified.
3. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD has also been specified, even if it has not.
RESTORE
indicates that SMP/E should list SYSMOD entries in which the RESTORE indicator is set. These
SYSMODs have been incompletely restored and are in error.
Note:
1. RESTORE is allowed when the SET command specifies a target zone.
2. RESTORE can also be specified as RES.
3. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
4. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
SOURCEID
indicates that SMP/E should list only SYSMOD entries associated with one of the specified SOURCEID
values.
Note:
1. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
2. There are two ways to specify source IDs:
• Explicitly, by fully specifying a particular source ID (for example, RSU0711). In this case, all
SYSMODs that contain the identified source ID are selected.
• Implicitly, by partially specifying a source ID value using asterisks (*) as global characters and
percent signs (%) as placeholders.
– A single asterisk indicates that zero or more characters can occupy that position. Here are
some examples:
- For RSU*, all SYSMODs that contain a source ID that begins with the character string RSU are
selected.
- For *0711, all SYSMODs that contain a source ID that ends with the character string 0711
are selected.
- For RSU*1, all SYSMODs that contain a source ID that begins with the character string RSU
and ends with the character string 1 are selected.
– A single percent sign indicates that any one single character can occupy that position. For
RSU0%11, for example, SYSMODs that contain any of these source IDs are selected: RSU0711,
RSU0211, and RSU0311. SYSMODs that contain source ID RSU00711 are not selected.
Any number of asterisks and percent signs can be used within a single partially specified source ID.
The following examples are valid source IDs:
RSU0709
RSU*
IBM.Device.20%4
IBM.Device.*.zAAP
3. A given source ID can be explicitly specified only once on the source ID operand.
4. The same source ID cannot be explicitly specified on both the EXSRCID and SOURCEID operands.
5. If a source ID is specified, implicitly or explicitly, on the SOURCEID operand and also on the
EXSRCID operand, all SYSMODs with that source ID are excluded from processing.
6. If a given SYSMOD has multiple source IDs of which at least one is specified either implicitly or
explicitly on the SOURCEID operand and another is specified either implicitly or explicitly on the
EXSRCID operand, the SYSMOD is excluded from processing.
For example, assume PTF UZ12345 has been assigned source IDs SMCREC and PUT0703. If you
specify SOURCEID(SMC*) and EXSRCID(PUT0703), the SYSMOD is excluded from processing.
7. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
8. A source ID value might contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified source ID value. For example, a specified source ID
value of ABCDEF matches a value of abcdef.
SRC
indicates that SMP/E should list all SRC entries or the specified SRC entries.
SUP
indicates that SMP/E should list entries for SYSMODs that have been superseded.
Note:
1. SUP is mutually exclusive with NOSUP.
2. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD was also specified, even if it was not.
3. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
4. To list "dummy" entries for superseded SYSMODs (entries for SYSMODs that were superseded but
not installed), do not specify a SYSMOD type operand. No SYSMOD type is associated with such
entries.
SYSMODS
indicates that SMP/E should list all SYSMOD entries or the specified SYSMOD entries.
You can limit which SYSMOD entries are listed by coding one or more of the following SYSMOD
qualifier operands:
APARS, FUNCTIONS, PTFS, or USERMODS
BYPASS
DELETE
ERROR
EXSRCID
FORFMID
HOLDERROR, HOLDFIXCAT, HOLDSYSTEM, or HOLDUSER
NOACCEPT
NOAPPLY
NOSUP or SUP
RESTORE
SOURCEID
For the operands shown on separate lines, SMP/E lists only SYSMOD entries that meet all the
specified criteria. For the operands shown on the same line, SMP/E lists SYSMOD entries that meet
any one of the specified criteria. For example, the following commands list all APAR SYSMODs that
were previously installed and subsequently have been superseded:
On the other hand, these commands list APAR or function SYSMODs that were previously installed
and subsequently have been superseded:
You can expand the information listed for SYSMOD entries by coding one or more of the following
operands:
HOLDDATA
MCS
Note:
1. SYSMODS can also be specified as SYSMOD.
2. If any of the SYSMOD qualifier operands (other than HOLDDATA or MCS) are specified without
the SYSMOD operand, SMP/E assumes that you want the SYSMOD entries listed and, therefore,
processes as if SYSMOD was also specified.
3. When either MCS or HOLDDATA is specified without a name list on the same LIST command as the
SYSMOD operand, SMP/E assumes you want the or HOLDDATA only for those SYSMOD entries that
are listed, not all the MCS and HOLDDATA entries. If you want to list all the MCS or HOLDDATA
entries, use the LIST command with the MCS or HOLDDATA operand, but without the SYSMOD
operand and without any of the previously identified SYSMOD qualifier operands.
TARGETZONE
indicates that SMP/E should list the TARGETZONE entry.
Note:
1. TARGETZONE is allowed when the SET command specifies a target zone.
2. TARGETZONE can also be specified as TZONE.
3. The XZLINK(DEFERRED) value is displayed only when the TARGETZONE entry contains TIEDTO
records.
USERMODS
indicates that SMP/E should list USERMOD SYSMODs.
Note:
1. USERMODS can also be specified as USERMOD.
2. When USERMODS is used with APARS, FUNCTIONS, or PTFS, SMP/E lists any SYSMOD whose type
matches any one of those specified.
3. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
UTILITY
indicates that SMP/E should list all UTILITY entries or the specified UTILITY entries.
Note: UTILITY is allowed when the SET command specifies the global zone.
XREF
generates cross-reference information appropriate to the entry type being listed. Table 16 on page
221 shows the information included for each entry type:
Note: SMP/E uses extra time and more storage to generate the additional data requested by the XREF
operand.
XZLMODP
indicates that SMP/E should list MOD entries for all modules that have been linked into load
modules controlled by a different target zone. (The MOD entries for these modules contain XZLMODP
subentries.)
Note:
1. XZLMODP is allowed only when the SET command specifies a target zone.
2. The appropriate MOD entries are listed, regardless of whether the MOD operand was specified on
the LIST command.
3. If both MOD and XZLMODP are specified, only MODs with cross-zone subentries are listed. If a
list of MODs and XZLMODP is specified, all the specified MODs, as well as all the MODs with
cross-zone subentries, are listed.
XZMODP
indicates that SMP/E should list LMOD entries for all load modules containing modules from a
different target zone. (The LMOD entries for these load modules contain XZMODP subentries.)
Note:
1. XZMODP is allowed only when the SET command specifies a target zone.
2. The appropriate LMOD entries are listed regardless of whether the LMOD operand was specified on
the LIST command.
3. If both LMOD and XZMODP are specified, only LMODs with cross-zone subentries are listed. If a
list of LMODs and XZMODP is specified, all the specified LMODs, as well as all the LMODs with
cross-zone subentries, are listed.
ZONESET
indicates that SMP/E should list all ZONESET entries or the specified ZONESET entries.
Note: ZONESET is allowed when the SET command specifies the global zone.
For additional information about listing a specific entry type, see the section for that entry in the "SMP/E
data set entries" chapter in z/OS SMP/E Reference. The description of the data in the entry, as well as
examples for using the LIST command, are contained there.
Syntax notes
1. Except where noted, you can specify multiple operands on a single LIST command. In comparison with
specifying the operands on separate LIST commands, the overall performance of SMP/E is improved.
2. The order in which the entries are listed depends on their order in the SMP/E data set being used, not
on the order specified on the LIST command.
3. You can mix mass-mode and select-mode requests on the same LIST command. For example:
4. If a given SYSMOD is specified on the SYSMODS operand, the SYSMOD is listed, regardless of whether
it would be included or excluded by other operands.
Note:
1. SMPPTS is required only if the MCS operand is specified.
2. SMPSCDS is required only if the BACKUP operand is specified.
3. zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, SMP/E dynamically allocates the data sets using
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be
used to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
Usage notes
1. When the ALLZONES operand is specified, SMP/E displays the GLOBALZONE entry first, followed by all
the entries within the global zone. Then, each zone defined by a ZONEINDEX subentry is processed in
alphanumeric sequence by zone name. If SMP/E is unable to allocate the VSAM data set containing a
particular zone, no further processing is done for that zone. Processing continues with the next zone.
2. Because SMP/E always opens the global zone for all processing, if there is an error during an attempt
to open the global zone, you cannot process any SMP/E commands. Therefore, you cannot obtain a list
of error messages form the SMPLOG data set.
If you want to list the SMPLOG, and the CSI is damaged so that it cannot be opened, define a
temporary CSI data set and use it to list the SMPLOG.
3. For more information about each entry type, see the "SMP/E Data Set Entries" chapter in z/OS SMP/E
Reference.
Output
The LIST command output for each entry type is illustrated in the relevant section of the "SMP/E Data Set
Entries" chapter in z/OS SMP/E Reference.
The following reports are produced during LIST processing:
• File Allocation report
• LIST Summary report
For descriptions of these reports, see Chapter 34, “SMP/E reports,” on page 461.
Examples
The following examples are provided to help you use the LIST command.
For examples of LIST commands and related output for each entry type, see the "SMP/E Data Set Entries"
chapter in z/OS SMP/E Reference.
If you want to check all the DDDEF entries defined in the global zone and all the zones defined to that
global zone, add the ALLZONES operand to the previously shown LIST command. (The global zone or any
zone defined to it can be specified on the SET command.)
If you want to check for that SYSMOD in the all the zones defined to the global zone, add the ALLZONES
operand to the previously shown LIST command. (The global zone or any zone defined to it can be
specified on the SET command.)
To see which of the SYSMODs you have received have not yet been installed in distribution zone DLIB1,
use the LIST command with the NOACCEPT operand and the zone name, as shown:
To see whether any SYSMODs have been installed in DLIB1 but not in TGT1, use the LIST command with
the NOAPPLY operand, as shown:
Note: You can also use the REPORT SYSMODS command to compare zones. Besides telling you which
SYSMODs are installed in one zone but not in another, 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 20, “The REPORT SYSMODS
command,” on page 329.
Example 8: Compare the SYSMODs installed in two zones of the same type
Suppose you need to compare the service level of your production system and your test system, and you
want to see which of the SYSMODs on the test system are not yet installed on the production system.
To compare the target zones of the two systems, use the LIST command with the NOAPPLY operand, as
shown:
To compare the distribution zones of the two systems, use the LIST command with the NOACCEPT
operand and the test system zone name, as shown:
The following example output from the LIST SYSMODS HOLDDATA shows the actions
LIST SYSMODS HOLDDATA.
GLOBAL SYSMOD ENTRIES
NAME
HBB7730 TYPE = FUNCTION
STATUS = REC
DATE/TIME REC = 06.300 12:39:49
SOURCEID = SRC2006
SREL VER(001) = Z038
MAC = MACRO3
HOLDERROR = IR12345 ++HOLD(HBB7730) ERROR FMID(HBB7730) REASON(IR12345) CLASS(CLASS01)
DATE(84200) COMMENT(SMRTDATA(CHGDTE(022206) SYMP(IPL))).
HOLDFIXCAT = AK18603 ++HOLD(HBB7730) FMID(HBB7730) REASON(AK18603) FIXCAT DATE(06230)
CLASS(PSP)RESOLVER(UK14916)
CATEGORY(IBM.Coexistence.z/OS.V1R8).
HOLDFIXCAT = AO23456 ++HOLD(HBB7730) FMID(HBB7730) REASON(AO23456) FIXCAT DATE(06230)
CLASS(PSP)RESOLVER(UO17895)
CATEGORY(IBM.Device.zIIP).
HOLDSYSTEM(EXT) = DOC ++HOLD(HBB7730) SYSTEM FMID(HBB7730) REASON(DOC) DATE(96023)
COMMENT(TEST EXTERNAL HOLD FOR FUNCTION SYSMOD.).
HOLDSYSTEM(INT) = DOC ++HOLD(HBB7730) FMID(HBB7730) SYS REASON(DOC) DATE(96023)
COMMENT( ---------- COMMENT LINE 1 HBB7730 FOR DOC -------
---------- COMMENT LINE 2 HBB7730 FOR DOC -------
---------- COMMENT LINE 3 HBB7730 FOR DOC ------- ) .
HOLDSYSTEM(INT) = UCLIN ++HOLD(HBB7730) FMID(HBB7730) SYS REASON(UCLIN) DATE(96023)
COMMENT( ---------- COMMENT LINE 1 HBB7730 FOR UCLIN -------
---------- COMMENT LINE 2 HBB7730 FOR UCLIN -------
---------- COMMENT LINE 3 HBB7730 FOR UCLIN ------- ) .
HOLDUSER = US56789 ++HOLD(HBB7730) USER FMID(HBB7730) REASON(US56789) CLASS(ABCDEFG)
DATE(84200) COMMENT(TESTING USER HOLD FOR A FUNCTION SYSMOD.).
Processing
Before SMP/E lists any entries, it first determines what type of LIST processing has been requested:
• If no entry names or entry types have been specified, SMP/E does mass-mode processing (for example,
if LIST. or LIST ALLZONES. is specified). See “Mass-mode processing” on page 226 for a description
of mass-mode processing.
If entry types without entry names are specified, SMP/E does mass-mode processing (for example, if
LIST MAC MOD. is specified to list all the MAC and MOD entries in a target zone).
• If entry names are specified (for example, if LIST MAC(MACA,MACB) MOD(MODA,MODB). is specified
to list specific MAC and MOD entries in a target zone), SMP/E does select-mode processing. See
“Select-mode processing” on page 226 for a description of select-mode processing.
Note: A single LIST command may combine mass-mode and select-mode processing.
Mass-mode processing
In mass-mode processing, SMP/E checks whether any entry types have been specified. If so, SMP/E lists
all entries of each specified type it finds in the set-to zone. SMP/E reads sequentially through the set-to
zone. For each entry it finds, it checks whether the entry is of the specified type and whether the entry
meets any other criteria specified (such as SYSMOD, MCS, FORFMID, and HOLDDATA). If the entry meets
all the requirements, SMP/E formats and prints the data.
If no entry types are specified, SMP/E lists all the entries in the set-to zone. SMP/E reads sequentially
through the set-to zone. For each entry it finds, it formats and prints the data.
Select-mode processing
In select-mode processing, SMP/E lists all the explicitly specified entries that were found in the set-to
zone. SMP/E goes directly to each specified entry and locates the data for the entry. For each entry it
finds, it formats and prints the data.
1. Initialization
Global zone
Read without enqueue.
Target zone
Read without enqueue.
DLIB zone
Read without enqueue.
Note: Either the target zone or the distribution zone is used during initialization, according to the zone
type specified in the previous SET command.
2. LIST processing
Global zone
Read with shared enqueue.
SMPPTS
Read with shared enqueue.
Target zone
Read with shared enqueue.
DLIB zone
Read with shared enqueue.
Note: The zones used depend on the LIST command operands and the zone type specified in the
previous SET command.
3. Termination
All resources are freed.
During SMP/E processing, messages recording what has occurred are written to SMPOUT. Critical
messages are also written to the SMPLOG data set to provide a permanent record of processing. Still
other messages are written to SMPLOG to record internal processing, such as updating a SYSMOD entry
or deleting an MTSMAC entry. In addition to the messages written by SMP/E, you may want to store
messages in the SMPLOG, such as why a SYSMOD is being installed and who is installing it. You can do
this using the LOG command.
Syntax
LOG Command
LOG ( text ) •
Operands
text
represents the text that is to be written to the SMPLOG.
• LOG text may be in single-byte characters (such as English alphanumeric characters) or double-byte
characters (such as Kanji).
• You can enter up to 250 bytes of data on a single LOG command, including blanks. For double-byte
data, the 250-byte maximum includes all shift-in and shift-out characters as well as the double-byte
characters. If you enter more than 250 bytes of data on one LOG command, the text is truncated. If
you need to enter more than the maximum number of characters, use two or more LOG commands.
• SMP/E compresses the text to eliminate consecutive blanks.
• The text may span multiple lines.
• If parentheses are used in the text, they must be matched pairs.
• The format of the text stored in the SMPLOG data set may not be exactly as entered on the LOG
command. For more information, see “Processing” on page 231.
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated by use of the
ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used to
override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always
required for a zone.
Output
The File Allocation report is produced during LOG processing. For a description of this report, see Chapter
34, “SMP/E reports,” on page 461.
Examples
The following examples are provided to help you use the LOG command.
This example assumes you are having SMP/E dynamically allocate the SMPLOG DD statement; that is, no
SMPLOG DD statement was provided in the JCL, and each zone contains a DDDEF entry for the SMPLOG.
As SMP/E processes each SET command, SMP/E dynamically frees the SMPLOG data set currently
allocated, and then dynamically allocates the SMPLOG DD statement, now pointing to the SMPLOG data
set for the appropriate zone. SMP/E then writes the message to that SMPLOG data set.
The LOG command does not have matched parentheses. The string (FUNCTION IS JXX1112) is in
parentheses within the LOG command, but no closing parenthesis is found for the LOG command itself.
SMP/E continues scanning the SMPCNTL input, looking for the closing parenthesis. Because it is not
found, and because (we assume) there are no more commands, SMP/E issues an error message, and the
message is not written to the SMPLOG.
Assume that you had made an additional mistake in the RECEIVE command as follows:
Here, a 9 was mistakenly typed instead of a (. SMP/E finds the matching parenthesis after the SOURCEID
operand, considers it to be the one for the LOG command, and would consider the text closed. Because
no other data is found after the closing parenthesis (other than the period and a valid command
comment) SMP/E writes the RECEIVE command to the SMPLOG as part of the LOG command text.
In addition, parts of the SMPLOG can be listed by specifying a date range, as follows:
For additional information on listing the SMPLOG data set, see Chapter 12, “The LIST command,” on page
205.
Processing
When SMP/E processes the LOG command, the text from the command is placed in an internal buffer,
either until the end of text is encountered or until the buffer is full.
As SMP/E is moving the text from the LOG command to the buffer area, it compresses the text by
removing consecutive blanks. Thus, the format in which the text is entered in the LOG command (such as
spacing or number of lines) is not the same as when you list the LOG (using the LIST LOG command).
After SMP/E has finished scanning the LOG command, the buffer that was built is written to the SMPLOG
data set. As each message is written, the current date and time are added to the message text so you can
later list the SMPLOG for a specified date range.
RECEIVE is the first SMP/E command used to process any SYSMOD or HOLDDATA. When a source of
SYSMODs and HOLDDATA is specified, the RECEIVE command reads the SYSMODs and HOLDDATA and
stages them into the global zone, the SMPPTS, and temporary data sets (SMPTLIBs) for later SMP/E
processing. The following sources can be used:
• SMPPTFIN and SMPHOLD, which can be tape files, DASD data sets, or files in a UNIX file system.
SMPPTFIN contains the modification control statements defining the SYSMODs, as well as any related
++ASSIGN, ++FEATURE, and ++PRODUCT statements. SMPHOLD contains exception SYSMOD data (+
+HOLD and ++RELEASE statements).
• a package on an FTP or HTTP(S) server.
• a package in the SMPNTS directory.
• The RECEIVE command can also be used to submit requests for PTF SYSMODs and HOLDDATA to an
IBM server when a particular source is not on hand. The packages of SYSMODs and HOLDDATA can be
automatically downloaded, read, and staged for later processing.
Syntax
RECEIVE Command
RECEIVE
, DELETEPKG
BYPASS( ACCEPTCHECK )
APPLYCHECK
FMID
, ,
HOLDDATA
FROMNTS( package id )
ORDER( ordername )
RC( command=rc )
, SOURCEID( source_id )
SELECT( sysmod_id )
fmidset
SYSMODs
•
ZONEGROUP( ALLZONES )
,
value
FROMNETWORK Options
SERVER ( ddname )
CLIENT( ddname ) TRANSFERONLY
ORDER Options
ORDERSERVER options
NOLIMIT
ORDERSERVER options
ORDERSERVER (ddname) CONTENT ( ALL
,
APARS ( sysmod_id )
CRITICAL
HOLDDATA
,
PTFS ( sysmod_id )
RECOMMENDED
)
,
FORTGTZONES( value )
Operands
BYPASS
You can specify one of these options:
ACCEPTCHECK
APPLYCHECK
FMID
Note:
1. ACCEPTCHECK can also be specified as ACCCHK.
2. APPLYCHECK can also be specified as APPCHK.
3. BYPASS(ACCEPTCHECK APPLYCHECK) is mutually exclusive with ZONEGROUP.
4. BYPASS(FMID) is mutually exclusive with FORFMID.
BYPASS(ACCEPTCHECK)
indicates that selected SYSMODs should be received, even if they have been accepted.
BYPASS(APPLYCHECK)
indicates that selected SYSMODs should be received, even if they have been applied.
BYPASS(FMID)
indicates that all SYSMODs and HOLDDATA should be received, even if the associated FMID is not
yet defined in the global zone.
DELETEPKG
specifies that following a successful completion of a RECEIVE FROMNETWORK, FROMNTS, or ORDER
the package id subdirectory in the SMPNTS directory that was created or used as input for the
command should be deleted.
Note:
1. A "successful RECEIVE" is defined as no warning or error conditions after the package files have
been downloaded, up to the point where the subdirectory is to be deleted.
2. This operand is ignored when FROMNETWORK, FROMNTS, or ORDER is not specified on the
RECEIVE command.
3. DELETEPKG is mutually exclusive with the TRANSFERONLY option of FROMNETWORK and ORDER.
EXCLUDE
specifies one or more SYSMOD IDs that should not be received.
Note: EXCLUDE can also be specified as E.
FORFMID
indicates that only SYSMODs, FEATUREs, and HOLDDATA for the specified FMIDs or FMIDSETs should
be received. Any FMIDSETs specified must already be defined in the global zone.
Note:
1. FORFMID is mutually exclusive with BYPASS(FMID).
2. You cannot use the FORFMID operand as a substitute for UCLIN to add an FMID or FMIDSET to the
global zone.
3. You can use FORFMID to receive a given function SYSMOD, along with other SYSMODs that are
applicable to that function. For example, if function HXY1100 has not yet been received, you can
use FORFMID(HXY1100) to receive that function plus the applicable SYSMODs.
SMP/E adds the FMID of the function to the global zone when it receives the function. As a result:
• Any SYSMODs that are applicable to the function and come before the function in the SMPPTFIN
input stream will not be received, because the FMID of the function is not yet in the global zone.
• Any SYSMODs that are applicable to the function and come after the function in the SMPPTFIN
input stream can be received, because the FMID of the function is now in the global zone.
4. FORFMID does not affect SYSMODs specified on the SELECT operand.
FROMNETWORK
specifies the input for this RECEIVE command is a GIMZIP package on a TCP/IP connected server that
supports downloads using FTP or HTTP(S). FROMNETWORK can also be specified as FROMNET.
SERVER(ddname)
specifies the 1- to 8-character DD or DDDEF name that points to the data set that provides
information about the server that contains input for this RECEIVE command. SERVER is required
if FROMNETWORK is specified. See “Defining data sets and files for RECEIVE FROMNETWORK
and RECEIVE ORDER processing” on page 246 for a description of the SERVER data set and its
contents.
CLIENT(ddname)
specifies the 1- to 8-character DD or DDDEF name that points to the data set where RECEIVE
can get information about the FTP or HTTP(S) client environment on the local machine, such as
how to navigate a local firewall when using FTP. See “Defining data sets and files for RECEIVE
FROMNETWORK and RECEIVE ORDER processing” on page 246 for a description of the CLIENT
data set and its contents.
TRANSFERONLY
specifies that RECEIVE FROMNETWORK processing should stop after the network package has
been transferred into the SMPNTS file structure of a UNIX file system.
Note:
1. TRANSFERONLY is mutually exclusive with DELETEPKG.
2. When TRANSFERONLY is specified, the BYPASS, EXCLUDE, FORFMID, HOLDDATA, LIST,
SELECT, SOURCEID, SYSMODs, and ZONEGROUP operands do not apply and are not processed
if specified.
of Enhanced HOLDDATA for the entire z/OS platform. PTF packages contain the PTFs ordered based
on the specified content criteria and are tailored to the specific SMP/E environment. In addition, the
last 2–years of Enhanced HOLDDATA is included in the PTF packages.
ORDERSERVER
specifies the 1- to 8-character ddname that points to the data set where RECEIVE can get the
necessary information about the IBM order server that fulfills the order requests from SMP/E. See
“Defining data sets and files for RECEIVE FROMNETWORK and RECEIVE ORDER processing” on
page 246 for a description of the ORDERSERVER data set and its contents.
CLIENT
specifies the 1- to 8-character ddname that points to the data set where RECEIVE can get the
necessary information about the local z/OS client, such as information about navigating an FTP
firewall and an HTTP proxy server. See “Defining data sets and files for RECEIVE FROMNETWORK
and RECEIVE ORDER processing” on page 246 for a description of the CLIENT data set and its
contents.
CONTENT
indicates the desired PTF and/or HOLDDATA content for the order. You can specify one of the
following options:
ALL
include all available PTFs that are applicable to the SMP/E environment in the resulting PTF
package.
APARS
include the resolving PTF SYSMODs for one or more specified APARS. The resulting PTF
package is tailored to the SMP/E environment and will contain the requested PTFs, plus any
requisite PTFs that are not already present in the SMP/E environment.
The specified values must be 7-alphanumeric character SYSMOD-ids.
CRITICAL
include all available PTFs that resolve a critical problem and are applicable to the SMP/E
environment in the resulting PTF package. A critical problem is a HIPER (high impact
pervasive) or a PE (PTF in error).
HOLDDATA
include only HOLDDATA in the resulting package. The package will contain the last 2-years
of Enhanced HOLDDATA for the entire z/OS platform. For more information, go to Enhanced
HOLDDATA for z/OS (service.software.ibm.com/holdata/390holddata.html).
PTFS
include one or more specified PTF SYSMODs in the resulting package. The resulting PTF
package is tailored to the SMP/E environment and will contain the requested PTFs, plus any
requisite PTFs that are not already present in the SMP/E environment.
The specified values must be 7-alphanumeric character SYSMOD-ids.
RECOMMENDED
include all available recommended PTFs that are applicable to the SMP/E environment in the
resulting PTF package. A recommended PTF is identified with a Recommended Service Update
SOURCEID (RSUyymm) or resolves a critical problem (HIPER or PE). The resulting PTF package
includes PTFs through and including the most current RSU level.
FORTGTZONES
identifies the specific target zones SMP/E should use to create the software inventory on which
the resulting PTF package will be tailored. The software inventory is used to determine:
• which PTFs are applicable to the SMP/E environment, and
• which PTFs are already present in the SMP/E environment and, therefore, do not need to be
included in the resulting package.
Note: PTFs requested on the CONTENT PTFS operand are included in the resulting package
whether they are already present in the SMP/E environment or not.
Using the FORTGTZONES operand, you can specify target zone names, ZONESET names, or both.
If FORTGTZONES is not specified, SMP/E uses all target zones (defined by a ZONEINDEX subentry
in the current global zone), plus the global zone to create the software inventory.
The specified values must be 1- to 8-alphanumeric characters.
PENDING
specifies the name of an ORDER entry whose package has not yet been downloaded. The
PENDING operand indicates that SMP/E should attempt to download the package for the specified
order. Such an order request is described by an ORDER entry in the global zone that has a status of
PENDING.
WAIT(minutes | NOLIMIT)
where minutes is a decimal number between 0 and 1440. The WAIT operand indicates how long
in minutes SMP/E is to wait until an order is ready for download. This includes the time associated
with connecting to the order server and preparing the order package for download. If the order is
not ready within the specified time limit, then RECEIVE command processing stops.
If WAIT(NOLIMIT) is specified, SMP/E waits for an unlimited time until the order is ready for
downloading. If WAIT(0) is specified for a new ORDER, SMP/E sends the order request to the IBM
server and completes RECEIVE command processing without waiting and without downloading
the resulting package. If WAIT(0) is specified for a pending order, SMP/E processes the order only
if it is ready for downloading immediately.
This operand is optional. If the WAIT operand is not specified, SMP/E waits 120 minutes by
default for orders to be ready for downloading.
TRANSFERONLY
indicates that RECEIVE ORDER processing should stop after the package has been downloaded
into the SMPNTS directory. SMP/E does not read the PTFs and HOLDDATA from the package and
does not store it in either the global zone or the SMPPTS data set.
To receive the PTFs and HOLDDATA from a TRANSFERONLY package, use the RECEIVE FROMNTS
command subsequently to process the package stored in the SMPNTS directory. Specify the
ORDER entry name with the ORDER suboperand on the FROMNTS operand.
HOLDDATA
indicates that applicable data from SMPHOLD should be received.
• If you specify SELECT or FORFMID, HOLDDATA is received only for the SYSMODs included by those
operands. For details, see “Example 4: Receiving selected SYSMODs and HOLDDATA” on page 262.
• If you specify neither SELECT nor FORFMID, HOLDDATA is received for all FMIDs defined in the
global zone.
LIST
indicates that SMP/E should list the modification control statements for each applicable SYSMOD.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the RECEIVE command.
Before SMP/E processes the RECEIVE command, it checks whether the return codes for the specified
commands are less than or equal to the values specified on the RC operand. If so, SMP/E can process
the RECEIVE command. Otherwise, the RECEIVE command fails. For more information about the RC
operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the RECEIVE command. Therefore, if you use the RC operand, you must specify
every command whose return code you want SMP/E to check.
RFPREFIX
specifies the data set prefix used to construct the full data set name for RELFILE data sets when a
SYSMOD packaged in RELFILE format is being processed by the RECEIVE command. This operand
should be used when the name of the RELFILE data set starts with a prefix not identified by the
RFDSNPFX operand on the header MCS of the associated SYSMOD. (For example, you may need
to use RFPREFIX if you have loaded RELFILEs into DASD data sets and have specified your own
high-level qualifier for those data sets.)
Unless SMP/E is informed otherwise, it assumes that the name of a RELFILE data set is sysmod_id.Fn,
where sysmod_id is the ID of the associated SYSMOD and n is the file number of the relative file.
Note: The RFPREFIX can contain from 1 to 26 alphanumeric (uppercase A–Z, 0–9), national ($, #, @),
dash (-), or period (.) characters.
After constructing the RELFILE data set name, SMP/E calculates the length of the full data set name
(including both the RFPREFIX and RFDSNPFX values). If the length of the full data set name exceeds
44 characters, processing stops for the RECEIVE command.
Note:
1. The RFPREFIX operand is ignored unless the FILES operand is specified on the header MCS
statement for the SYSMOD being processed (++APAR, ++FUNCTION, ++PTF, or ++USERMOD MCS).
2. If the RFDSNPFX operand is specified on the header MCS, the RFPREFIX value specified on
the RECEIVE command precedes the value from the RFDSNPFX operand when the name of the
RELFILE data set is constructed.
3. If the RELFILE data sets are on DASD or are on tape and cataloged, the RELFILE data set name
must not match the name to be used for the SMPTLIB data sets. If these data sets have the same
name, the SMPTLIB data sets cannot be allocated. The DSPREFIX value in the OPTIONS entry is
used to specify the high-level qualifier for the SMPTLIB data set names. For a description of the
OPTIONS entry, see z/OS SMP/E Reference.
SELECT
specifies one or more SYSMOD IDs that should be received. Any FEATUREs associated with these
SYSMODs may also be received.
You may specify any combination of individual SYSMOD IDs and FMIDSET names, provided that there
are no duplicate SYSMOD IDs nor any duplicate FMIDSET names. For each FMIDSET specified, all
FMIDs defined in the FMIDSET are processed as if they were explicitly specified in the SELECT list.
Each SYSMOD must be in the SMPPTFIN data set, and the associated FMID must be either defined in
the global zone or received concurrently.
Note:
1. SELECT can also be specified as S.
2. SMP/E does not do APPLYCHECK and ACCEPTCHECK processing for SYSMODs explicitly specified
in the SELECT list.
3. If both SYSMODs and HOLDDATA are being processed and a selected SYSMOD is not received, the
associated HOLDDATA can be received.
4. If you specify HOLDDATA and do not specify SYSMODs, only the HOLDDATA for the selected
SYSMODs is received. The SYSMODs themselves are not received, nor are any associated +
+FEATURE or ++PRODUCT MCS.
5. When using FMIDSETs on the SELECT operand, remember that:
• A value specified in the SELECT list is processed as an FMIDSET if the GLOBAL zone contains an
FMIDSET entry by that name.
• A value specified in the SELECT list is processed as a SYSMOD ID if it is not defined as an
FMIDSET in the GLOBAL zone and it is a valid SYSMOD ID.
• If the value in the SELECT list is valid both as a SYSMOD ID and as an FMIDSET name, it is
processed (for SELECT) as an FMIDSET. If you want to select a SYSMOD that has the same name
as an FMIDSET, you must define that SYSMOD in an FMIDSET and then include that FMIDSET
name in the SELECT list.
If this same value is specified on the EXCLUDE operand, it will be processed as a SYSMOD ID
(because only SYSMOD IDs are valid on EXCLUDE) and will not be rejected as a duplication of the
identical FMIDSET name in the SELECT list.
• Any given value (whether it represents a SYSMOD ID, an FMIDSET, or both) may not appear more
than once in the SELECT list.
• Any given SYSMOD ID may not simultaneously appear in both the SELECT and EXCLUDE lists,
unless it is also a valid FMIDSET name.
• A SYSMOD ID may be explicitly specified in the SELECT list and also included in an FMIDSET that
is also specified in the SELECT list, provided the SYSMOD ID does not have the same name as the
FMIDSET. The duplicate SYSMOD ID is ignored.
SOURCEID
specifies a 1- to 64-character source identifier to be assigned to the SYSMODs being received. The
SOURCEID value can consist of any nonblank character (X'41' through X'FE') except single quotation
marks, asterisks, percent character, comma, left parenthesis and right parenthesis. SMP/E assigns this
the source ID to all the SYSMODs that are processed by this RECEIVE command. SMP/E also assigns
the source ID to any SYSMODs that would have been received, but were not received because they
had already been received.
Note:
1. SMP/E does not check whether the source ID is unique. If the same value is specified on multiple
RECEIVE commands, all SYSMODs processed by both commands have the same source ID.
2. If a source ID was specified for a particular SYSMOD on an ++ASSIGN statement in the input
stream, that inline source ID is added to the source ID assigned to the SYSMOD by the RECEIVE
command.
3. A source ID value is case-sensitive and is stored in the CSI in the form in which it was entered on
the SOURCEID operand.
SYSMODs
indicates that data from SMPPTFIN should be received.
Note: SYSMODs can also be specified as SYSMOD.
ZONEGROUP
identifies a list of zones to be interrogated during APPLYCHECK and ACCEPTCHECK processing for this
RECEIVE command. This list can include zone names, ZONESET names, or both. Each value in the
list must be 1 to 8 alphanumeric or national (@, #, and $) characters. You can specify target zones,
distribution zones, or any combination of the two.
Values specified on the ZONEGROUP operand override any values specified in the RECZGRP and
RECEXZGRP subentries of the OPTIONS entry.
Specifying ZONEGROUP(ALLZONES) indicates that all zones defined by a ZONEINDEX subentry in
the GLOBALZONE entry are eligible. When ALLZONES is specified, any other values specified on
ZONEGROUP are ignored.
Note that the ZONEGROUP operand (and the RECZGRP and RECEXZGRP subentries) have no effect on
SYSMODs specified on the SELECT list, because SMP/E does not do APPLYCHECK and ACCEPTCHECK
processing for SYSMODs explicitly specified in the SELECT list.
Syntax notes
1. The GLOBALZONE entry must contain at least one SREL value in order to receive either SYSMODs or
exception SYSMOD data. If no SREL is defined, RECEIVE processing fails. If this happens, you can use
UCLIN to add an SREL to the global zone, and then rerun the RECEIVE job.
2. When you specify SELECT with FORFMID, you can also specify EXCLUDE to exclude specific SYSMODs
or HOLDDATA for the specified FMIDs.
When you specify SELECT without FORFMID, however, there is no need to specify EXCLUDE.
3. If you specify neither SELECT, EXCLUDE, nor FORFMID, SMP/E considers all the data in SMPPTFIN and
SMPHOLD eligible for processing.
4. SMP/E receives data from both SMPPTFIN and SMPHOLD if you specify either of the following
situations:
• Both SYSMODs and HOLDDATA
• Neither SYSMODs nor HOLDDATA
If you specify only SYSMODs, HOLDDATA is excluded. If you specify only HOLDDATA, SYSMODs are
excluded.
5. When requesting a new order with the RECEIVE ORDER command, the ORDERSERVER data set is
required. When processing a PENDING order with the RECEIVE ORDER command, the ORDERSERVER
data set is not required.
6. If CONTENT(HOLDDATA) is specified when an order is requested with the RECEIVE ORDER command,
the resulting package will contain only HOLDDATA and no PTFs. Therefore, the HOLDDATA selection
operand will be assumed when the resulting package is received.
Note:
1. SMPHRPT is an optional data set. If SMPHRPT is defined, the HOLD reports are directed there.
2. For RECEIVE processing, the SMPCSI DD statement refers to the data set containing the global zone,
which is where SMP/E stores information about those SYSMODs received.
3. SMPNTS and SYSUT4 are required only when FROMNETWORK, FROMNTS, or ORDER are specified.
4. The SMPHOLD DD statement is required only if exception SYSMOD data is to be received from
SMPHOLD.
5. The SMPPTFIN DD statement is required only if SYSMODs or ++ASSIGN statements are to be
received from SMPPTFIN.
6. client represents the DD statement specified on the CLIENT keyword on either RECEIVE
FROMNETWORK or RECEIVE ORDER command. It is required only when CLIENT is specified.
7. server represents the DD statement specified on the SERVER keyword on a RECEIVE FROMNETWORK
command. It is required only when SERVER is specified.
8. orderserver represents the DD statement specified on the ORDERSERVER keyword on a RECEIVE
ORDER command. It is required only when ORDERSERVER is specified.
9. zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, SMP/E dynamically allocates the data sets using
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be
used to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex
is always required for a zone.
10. When TRANSFERONLY is specified, SMPHOLD, SMPPTFIN, SMPPTS, SMPTLIB, SYSUT1, SYSUT2,
SYSUT3, SYSUT4, and zone are not used.
11. SMPWKDIR is an optional DD statement used to specify a directory in a UNIX file system for
the storage of temporary files created during SMP/E processing. If an SMPWKDIR DD statement
or DDDEF entry is not specified, SMP/E will use both the system /tmp directory and the package
directory in the SMPNTS directory for temporary work files.
12. SMPJHOME is an optional DD statement used to specify the path used to locate the Java runtime.
SMP/E requires the Java runtime for RECEIVE ORDER processing, and to calculate SHA-1 hash
values for RECEIVE FROMNETWORK and RECEIVE FROMNTS when ICSF is not active. If the Java
runtime is not specified using an SMPJHOME DD statement or DDDEF entry, then the directory can
be specified on the javahome attribute of the client data set for the RECEIVE ORDER and RECEIVE
FROMNETWORK commands.
13. SMPCPATH is an optional DD statement used to specify the search path for the SMP/E Java
application classes required for RECEIVE ORDER processing. When ICSF is not active, the application
classes are also required to calculate SHA-1 hash values for RECEIVE FROMNETWORK and RECEIVE
FROMNTS. If the classpath is not specified using an SMPCPATH DD statement or DDDEF entry, then
the directory may be specified on the classpath attribute of the CLIENT data set for the RECEIVE
ORDER and RECEIVE FROMNETWORK commands. If classpath is not specified either in the client
data set or by using an SMPCPATH DD statement or DDDEF entry, then a default classpath value of
"/usr/lpp/smp/classes/" is used.
Usage notes
This section provides usage notes for the RECEIVE command.
Note: If the unit for the SMPTLIB data sets is not defined in SYSALLDA, you must use a DDDEF entry
instead of a DD statement to define the data sets. Otherwise, the data sets are not allocated.
Note:
1. If an error occurs when SMP/E is unloading the relative files or allocating SMPTLIBs during RECEIVE
processing, preallocated SMPTLIBs do get deleted.
2. If the SMPTLIBs are not cataloged, SMP/E automatically catalogs them, and uncatalogs the data sets
when it deletes them.
If you want SMP/E to dynamically allocate the SMPTLIBs, you can specify the information it needs on
the SMPTLIB DD statement, in the SMPTLIB DDDEF entry, in the OPTIONS entry used for RECEIVE
processing, or in some combination of these. Table 17 on page 244 shows what information SMP/E needs,
and where it can be specified. (SMP/E checks the sources of information in the order shown.) Do not
specify an initial or final disposition. SMP/E determines the appropriate values for RECEIVE processing.
Note:
1. For recommendations on the space required for a particular product's SMPTLIB data sets, see the
installation documentation for that product. Either allocate the data sets yourself with this space,
or specify it as indicated in Table 17 on page 244 if the SMPTLIB data sets are being dynamically
allocated.
2. If you are not using SMS to manage your storage, then to properly allocate the SMPTLIB data sets, you
need to provide allocation information from the sources listed in Table 17 on page 244.
If you are using SMS to manage your storage, then depending on how SMS is implemented on your
system, you may not need to provide allocation information from the sources listed in Table 17 on page
244. If information required by SVC 99 (the dynamic allocation routine) is not defined to either SMP/E
or SMS (such as information about volumes or space allocation), allocation fails for the SMPTLIB data
sets.
Because the necessary information can be provided outside of SMP/E (through SMS), SMP/E does not
issue error messages if any of this information is not specified.
Defining data sets and files for RECEIVE FROMNETWORK and RECEIVE
ORDER processing
One or more data sets and files may be required for RECEIVE FROMNETWORK command processing:
• A SERVER data set must be defined to provide the necessary information about the FTP or HTTP(S)
server from which a network package is to be received and about the network package itself.
• A CLIENT data set may also be required to provide information about the local host, such as information
about the local firewall requirements.
• A FTP.DATA file may be required to provide information to the z/OS FTP client to permit SMP/E to do
secure transfers and to navigate SOCKS firewalls.
One or more data sets and files may be required for RECEIVE ORDER command processing:
• An ORDERSERVER data set must be defined to provide the necessary information about the IBM order
server which will fulfill an SMP/E HOLDDATA or PTF order request.
• A CLIENT data set may also be required to provide information about the local host, such as information
about navigating an FTP firewall and an HTTP proxy server.
• A FTP.DATA file may be required to provide information to the z/OS FTP client to permit SMP/E to do
secure transfers and to navigate SOCKS firewalls.
SERVER tag
<SERVER host=" host name "
PACKAGE tag
<PACKAGE file=" filename " hash=" hash value " id=" identifier "> </PACKAGE>
<SERVER>
specifies the start of SERVER data. This tag is required.
The attributes for the <SERVER> tag are:
host
identifies the FTP or HTTP(S) server from which a package is to be received. The host attribute
must specify either:
host name
a fully qualified internet host name that can be resolved by the domain name system to an
internet address. A host name is a text string up to 255 characters drawn from the alphabet
(A-Z), digits (0-9), period (.), and minus sign (-). Periods are allowed only as delimiters within
domain style names. No blank or space characters are permitted as part of a name. No
distinction is made between upper and lower case. The first character must be a letter or a
digit. The last character must not be a minus sign or period.
host ip address
an internet address defining the host's location on the internet. The internet address can be
an IPv4 or IPv6 address. An IP address can be up to 255 nonblank characters, excluding the
reserved XML characters, < (X'4C'), > (X'6E'), double quotation mark (X'7F'), and ampersand
(X'50').
One host attribute specifying either a host name or a host IP address is required. The host
attribute value must be enclosed in quotation marks
user
specifies a user ID that will give you access to the host machine. This attribute is a text string up
to 80 characters of any type and must be enclosed in quotation marks. If anonymous logins are
accepted by this host, specify user="anonymous". Although the user attribute is optional for
SMP/E, a user ID might be required by the host server.
account
specifies the account information for the specified user ID. This attribute is a text string up to
80 characters of any type and must be enclosed in quotation marks. The account attribute is
optional.
port
specifies the port number to be used for TCP/IP operations on the specified host. The port number
must be a decimal number in the range 1 through 65535. This attribute value must be enclosed in
quotation marks. The port attribute is optional.
pw
specifies a password value that will give you access to this host. This attribute is a text string up to
80 characters of any type and must be enclosed in quotation marks. Although the pw attribute is
optional for SMP/E, a password might be required by this host.
Note: Use system facilities to restrict access to the data set named on the SERVER operand to
ensure the security of the password value.
</SERVER>
specifies the end of SERVER data. This tag is required.
<PACKAGE>
specifies the start of PACKAGE data. All data about the package to be retrieved from this SERVER
follows this tag and precedes the </PACKAGE> tag. This tag is required. Only one PACKAGE tag may
be specified within the SERVER data.
The attributes for the <PACKAGE> tag are:
file
specifies the full name and path of a package attribute file. This file contains a list of all the files
that are to be transmitted by this RECEIVE command, as well as information about those files.
The path can contain 1 to 266 characters of type X'40' through X'FE'. The file attribute value is
required and must be enclosed in quotation marks.
hash
specifies the 40 character hexadecimal representation of the 20 byte SHA-1 hash value of the
package attribute file. The hash attribute value is required and must be enclosed in quotation
marks.
id
specifies a 1 to 50 character value assigned to identify the package by the SMP/E user. This value
is used to name the subdirectory within the SMPNTS directory where the transferred files are
staged. The value can contain any character from X'41' through X'FE', except a slash ("/"). The id
attribute value is required and must be enclosed in quotation marks.
</PACKAGE>
specifies the end of PACKAGE data. This tag is required.
CLIENT tag
<CLIENT
debug=" YES " retry=" n "
NO
http
https
javatruststore
> <FTPOPTIONS>
signaturekeyring=" keyring_name "
javatruststore
</CLIENT>
HTTP proxy options
<CLIENT
debug=" YES " retry=" n "
NO
http
https
javatruststore
> <FTPOPTIONS>
signaturekeyring=" keyring_name "
javatruststore
</CLIENT>
HTTP proxy options
</FIREWALL>
SERVER options
<SERVER host=" host name "
>
port=" port number " user=" userid " pw=" password "
</SERVER>
> </HTTPPROXY>
user=" userid " pw=" password "
> </HTTPSOCKSPROXY>
user=" userid " pw=" password "
<CLIENT>
specifies the start of the local environment data. This tag is required.
The attributes for the <CLIENT> tag are:
debug
specifies whether SMP/E should invoke the z/OS FTP client using the -d parameter to generate
tracing output. A value of YES indicates that tracing output should be generated. A value of NO is
equivalent to not specifying the debug attribute and indicates that tracing output should not be
generated. The attribute value must be enclosed in quotation marks. The value may be entered in
mixed case, but is folded to uppercase for verification. The debug attribute is optional.
retry
One numeric character (0-9) indicating the number of times to retry the transfer of a file when its
SHA-1 hash value does not match the hash value expected for this file. This tag is optional. If the
retry attribute is not specified, no retries will be attempted. This attribute must be enclosed in
quotation marks.
ftpccc
specifies whether SMP/E should use the z/OS FTP client CCC subcommand. The CCC
subcommand (Clear Command Channel) changes the FTP control connection from encrypted
mode to clear text mode.
A value of YES is the default if ftpccc is not specified. It indicates that after the FTP client
connects to the server, negotiates a secure and encrypted connection, and authenticates using
user and password, SMP/E will send the CCC subcommand to change the control connection
from encrypted to clear text. Subsequent clear text commands and responses on the FTP control
connection can often help solve data connection problems for encrypted connections behind a
Network Address Translation (NAT) firewall router.
A value of NO indicates a secure and encrypted control connection will not be changed to clear
text. A value of NO is sometimes required when a firewall prohibits changing an encrypted FTP
control connection to clear text.
The ftpccc attribute value must be enclosed in quotation marks. Also the value may be entered in
mixed case, but is folded to uppercase for verification.
The ftpccc attribute is optional and its value is ignored if the FTP control connection is not
encrypted.
javahome
specifies the path used to locate the Java runtime. SMP/E requires the Java runtime for several
operations, including RECEIVE ORDER processing, downloading GIMZIP packages using HTTP or
HTTPS, and to calculate SHA-1 hash values for RECEIVE FROMNETWORK when ICSF is not active.
If the Java runtime is not specified using an SMPJHOME DD statement or DDDEF entry, then
the directory can be specified on the javahome attribute. For example, javahome="/usr/lpp/
java/J7.0". If a javahome value is specified, it must be a valid directory. A valid directory is from
1 to 255 characters in length, and must include only characters X'40' through X'FE' excluding the
reserved XML characters, less than (<), greater than (>), double quotation mark (") and ampersand
(&).
Note: The javahome directory can also be specified using the SMPJHOME DD statement or DDDEF
entry. When specified, these values override the javahome attribute value from the client data set.
For more information about setting the javahome directory, see the chapter on "Preparing to use
RECEIVE ORDER processing" in z/OS SMP/E User's Guide.
classpath
specifies the search path for the SMP/E Java application classes. If the classpath is not specified
using an SMPCPATH DD statement or DDDEF entry, then the directory may be specified on the
classpath attribute. For example, classpath="/usr/lpp/smp/classes/". If classpath is not
specified either in the client data set or by using an SMPCPATH DD statement or DDDEF entry, a
default classpath value of "/usr/lpp/smp/classes/" is used. If a classpath value is specified,
it must be a valid directory. A valid directory is from 1 to 255 characters in length, and must
include only characters X'40' through X'FE' excluding the reserved XML characters, less than (<),
greater than (>), double quotation mark (") and ampersand (&).
Note: The classpath directory can also be specified using the SMPCPATH DD statement or DDDEF
entry. When specified, these values override the classpath attribute value from the client data set.
For more information about setting the classpath directory, see the chapter on "Preparing to use
RECEIVE ORDER processing" in z/OS SMP/E User's Guide.
javadebugoptions
specifies a character string, provided to you by IBM, to indicate what debug and trace information
should be produced when invoking the SMP/E java application classes. The debug and trace
information is written to the print file for the HFSCOPY utility (SYSPRINT is SMP/E's default print
file, and is used if no PRINT subentry was specified in the active UTILITY entry for the HFSCOPY
utility).
If a debug options value is specified, it must be from 1 to 300 characters in length, and include
only characters X'40' through X'FE' excluding the reserved XML characters, less than (<), greater
than (>), double quotation mark (") and ampersand (&).
Typical debug options that may be specified are as follows:
-showversion
to indicate the version information for the level of Java being used.
-Dcom.ibm.smp.debug=severe
provides detailed debug and trace information for the SMP/E java classes.
-Djava.security.debug
provides detailed debug information regarding java access control processing.
-Djavax.net.debug
provides detailed debug information for the phases of SSL/TLS processing.
downloadmethod
Identifies the network protocol to use for downloading the package files from the server to the
local z/OS system, and may be a value of ftp, http, or https. If downloadmethod is not
specified, the default is ftp. If https is specified, then certificates are required to perform the
SSL handshake with the HTTPS server and thus to encrypt the network activity. The location of the
necessary certificates is defined on the downloadkeyring attribute.
downloadkeyring
Identifies the location of the certificates required to perform SSL operations with the HTTPS
server where the files to be downloaded reside. The name for a security manager keyring or the
keyword javatruststore may be specified.
keyring-name
Identifies the name for a security manager keyring that contains the certificates required to
perform SSL operations with the HTTPS server. The specified name may be for a real or virtual
keyring. Keyring names are from 1 to 237 characters in length and may include only characters
X'40' through X'FE' excluding the forward slash (/) and the reserved XML characters, less than
(<), greater than (>), double quotation mark ("), and ampersand (&).
If the keyring is associated with a userid other than that used to execute SMP/E, then
the keyring name must be prefixed with the associated userid. Userids are from 1 to 8
alphanumeric characters in length, can consist entirely of numerics and need not begin with
any particular character. The userid is separated from the keyring value by a forward slash
(userid/keyring).
To indicate all of the Certificate Authority (CA) certificates defined in the security manager
may be used to perform SSL operations, use the CERTAUTH virtual keyring by specifying the
userid/keyring value “*AUTH*/*”.
Note: The userid under which SMP/E runs must be properly authorized to the FACILITY class
resource IRR.DIGTCERT.LISTRING or to the RDATALIB class resource keyring-owner.keyring-
name.LST for SMP/E to use the specified keyring. READ access is required for a userid to
use its own keyring or the CERTAUTH virtual keyring. UPDATE access is required to use a
keyring from another user. If the RDATALIB class is used, for any real keyring, READ access
to keyring-owner.keyring-name.LST is required. For CERTAUTH virtual keyring, READ access to
CERTIFAUTH.IRR_VIRTUAL_KEYRING.LST is required.
javatruststore
Indicates all of the certificates in the default Java truststore may be used to perform the
SSL handshake. A Java truststore is a Java keystore file containing the collection of trusted
Certificate Authority (CA) certificates. The default Java truststore is located relative to the Java
home directory, which is specified on the javahome attribute in the <CLIENT> tag, or on the
SMPJHOME DD statement.
For the RECEIVE FROMNETWORK command and the GIMGTPKG service routine, if
downloadmethod=https, then downloadkeyring is required. For the RECEIVE ORDER
command, if downloadmethod=https, then the keyring can be identified either with the
downloadkeyring attribute, or the keyring attribute in the ORDERSERVER data set.
signaturekeyring
Identifies the location of the Certificate Authority (CA) certificate required to validate the digital
signature of the GIMZIP package. The name for a security manager keyring or the keyword
javatruststore may be specified.
keyring-name
Identifies the name for a security manager keyring. The specified name may be for a real
or virtual keyring. Keyring names are from 1 to 237 characters in length and may include
only characters X'40' through X'FE' excluding the forward slash (/) and the reserved XML
characters, less than (<), greater than (>), double quotation mark ("), and ampersand (&).
If the keyring is associated with a userid other than that used to execute SMP/E, then
the keyring name must be prefixed with the associated userid. Userids are from 1 to 8
alphanumeric characters in length, can consist entirely of numerics and need not begin with
any particular character. The userid is separated from the keyring value by a forward slash
(userid/keyring).
To indicate all of the Certificate Authority (CA) certificates defined in the security manager
may be used to perform SSL operations, use the CERTAUTH virtual keyring by specifying the
userid/keyring value “*AUTH*/*”.
Note: The userid under which SMP/E runs must be properly authorized to the FACILITY class
resource IRR.DIGTCERT.LISTRING or to the RDATALIB class resource keyring-owner.keyring-
name.LST for SMP/E to use the specified keyring. READ access is required for a userid to
use its own keyring or the CERTAUTH virtual keyring. UPDATE access is required to use a
keyring from another user. If the RDATALIB class is used, for any real keyring, READ access
allowed only as delimiters within domain style names. No blank or space characters
are permitted as part of a name. No distinction is made between upper and lower case.
The first character must be a letter or a digit. The last character must not be a minus
sign or period.
host ip address
an internet address defining the firewall host's location on the internet. An internet
address can be an IPv4 or IPv6 address. An IP address can be up to 255 nonblank
characters excluding the reserved XML characters, < (X'4C'), > (X'6E'), double
quotation mark (X'7F') and ampersand (X'50').
One host attribute specifying either a host name or a host IP address is required. The
host attribute value must be enclosed in quotation marks
user
id that will give you access to the firewall host machine. This attribute must be enclosed in
quotation marks.
pw
specifies a password value that will give you access to this firewall host. This attribute
must be enclosed in quotation marks.
Note: Users should use existing system facilities to restrict access to the data set named
on the CLIENT operand to ensure the security of the password value.
account
specifies the account information to be used for the specified user ID. This attribute must
be enclosed in quotation marks. This field is a text string up to 80 characters of any type.
The account attribute is optional.
port
specifies the port number to be used for TCP/IP operations on the specified host. The port
number must be a decimal number in the range 1 through 65535. This attribute value
must be enclosed in quotation marks. The port attribute is optional.
</SERVER>
specifies the end of server section of the FTP client environment data. This tag is required if
<SERVER> was specified.
<FIRECMD>
specifies the start of the firewall specific command section of the FTP client environment data.
This tag is required if the <FIREWALL> tag is specified.
firewall specific commands
Enter the sequence of commands necessary to FTP to an outside host through your
firewall. Each command must be on a separate line in the data set. Each command is a text
string of up to 80 characters of any type.
SMP/E allows the following substitution variables within the commands in the <FIRECMD>
section. Each substitution variable begins with the "&" character and ends with a semi-
colon.
&ACCOUNT;
When &ACCOUNT; is encountered within lines in the <FIRECMD> section of the CLIENT
data set, the value specified in the account attribute of the <SERVER> section in the
<FIREWALL> section is substituted into the command string. If the account attribute
is omitted, blanks will be substituted.
&PORT;
When &PORT; is encountered within lines in the <FIRECMD> section of the CLIENT
data set, the value specified in the port attribute of the <SERVER> section in the
<FIREWALL> section in this CLIENT data set, is substituted into the command string. If
no port attribute was specified, a blank will be substituted.
&PW;
When &PW; is encountered within lines in the <FIRECMD> section of the CLIENT data
set, the value specified in the pw attribute of the <SERVER> section in the <FIREWALL>
section of this CLIENT data set is substituted into the command string. If the pw
attribute is omitted, blanks will be substituted.
&REMOTE_ACCOUNT;
When &REMOTE_ACCOUNT; is encountered within lines in the <FIRECMD> section of
the CLIENT data set, the value substituted into the command string depends on the
form of the RECEIVE command being executed. For RECEIVE FROMNETWORK, the
value specified in the account attribute entry of the <SERVER> section in the data set
identified by the SERVER DD is substituted into the command string. If the account
attribute is omitted, blanks will be substituted. For RECEIVE ORDER, the proper value
is provided automatically by the IBM order server.
&REMOTE_HOST;
When &REMOTE_HOST; is encountered within lines in the <FIRECMD> section of the
CLIENT data set, the value substituted into the command string depends on the
form of the RECEIVE command being executed. For RECEIVE FROMNETWORK, the
value specified in the host attribute of the <SERVER> section in the SERVER data
set is substituted into the command string. For RECEIVE ORDER, the proper value is
provided automatically by the IBM order server.
&REMOTE_PORT;
When &REMOTE_PORT; is encountered within lines in the <FIRECMD> section of the
CLIENT data set, the value substituted into the command string depends on the form
of the RECEIVE command being executed. For RECEIVE FROMNETWORK, the value
specified in the port attribute of the <SERVER> section in the SERVER data set is
substituted into the command string. If no port attribute was specified, a blank will
be substituted. For RECEIVE ORDER, the proper value is provided automatically by the
IBM order server.
&REMOTE_PW;
When &REMOTE_PW; is encountered within lines in the <FIRECMD> section of the
CLIENT data set, the value substituted into the command string depends on the
form of the RECEIVE command being executed. For RECEIVE FROMNETWORK, the
value specified in the pw attribute of the <SERVER> section in the data set identified
by the SERVER DD is substituted into the command string. If the pw attribute is
omitted, blanks will be substituted. For RECEIVE ORDER, the proper value is provided
automatically by the IBM order server.
&REMOTE_USER;
When &REMOTE_USER; is encountered within lines in the <FIRECMD> section of the
CLIENT data set, the value substituted into the command string depends on the form
of the RECEIVE command being executed. For RECEIVE FROMNETWORK, the value
specified in the user attribute of the <SERVER> section in the data set identified
by the SERVER DD is substituted into the command string. If the user attribute is
omitted, blanks will be substituted. For RECEIVE ORDER, the proper value is provided
automatically by the IBM order server.
&USER;
When &USER; is encountered within lines in the <FIRECMD> section of the CLIENT
data set, the value specified in the user attribute of the <SERVER> section in the
<FIREWALL> section in this CLIENT data set, is substituted into the command string. If
the user attribute is omitted, blanks will be substituted
</FIRECMD>
specifies the end of the firewall specific command section of the FTP client environment data.
This tag is required if <FIRECMD> was specified.
</FIREWALL>
specifies the end of firewall section of the FTP client environment data. This tag is required if
<FIREWALL> was specified.
<HTTPPROXY>
specifies the start of the HTTP proxy section of the CLIENT data set. Data should be specified
only if your network environment requires that you use a proxy server to perform HTTP
communications with a remote server.
host
identifies the proxy server used for HTTP communications. This attribute value must be either:
hostname
a fully qualified internet host name that can be resolved by the domain name system to an
internet address. Host name values are from 1 to 255 characters, from the set of mixed
case alphanumeric, period (.), and minus sign (-). The first and last character must be
alphanumeric.
ip address
an internet address defining the host's location on the internet. The internet address can
be an IPv4 or IPv6 address. An IP address can be from 1 to 255 nonblank characters
excluding the reserved XML characters, less than (<), greater than (>), double quotation
mark (") and ampersand (&).
port
specifies the port number to be used for TCP/IP operations with the specified proxy server.
The port number must be a decimal number in the range 1 through 65535. The port value is
optional, and SMP/E's default value is 80.
user
specifies a user ID that will allow access to the proxy server. User ID values can be from 1 to
80 characters excluding the reserved XML characters, less than (<), greater than (>), double
quotation mark (") and ampersand (&).
pw
specifies a password value that will allow access to the proxy server. Password values can be
from 1 to 80 characters excluding the reserved XML characters, less than (<), greater than (>),
double quotation mark (") and ampersand (&).
</HTTPPROXY>
specifies the end of the HTTP proxy data.
<HTTPSOCKSPROXY>
specifies the start of the HTTP SOCKS proxy section of the CLIENT data set. Data should be
specified only if your network environment requires that you use a SOCKS proxy server to perform
HTTP communications with a remote server.
host
identifies the SOCKS proxy server used for HTTP communications. This attribute value must
be either:
hostname
a fully qualified internet host name that can be resolved by the domain name system to an
internet address. Host name values are from 1 to 255 characters, from the set of mixed
case alphanumeric, period (.), and minus sign (-). The first and last character must be
alphanumeric.
ip address
an internet address defining the host's location on the internet. The internet address can
be an IPv4 or IPv6 address. An IP address can be from 1 to 255 nonblank characters
excluding the reserved XML characters, less than (<), greater than (>), double quotation
mark (") and ampersand (&).
port
specifies the port number to be used for TCP/IP operations with the specified SOCKS proxy
server. The port number must be a decimal number in the range 1 through 65535. The port
value is optional, and SMP/E's default value is 1080.
user
specifies a userid that will allow access to the SOCKS proxy server. User ID values can be
from 1 to 80 characters excluding the reserved XML characters, less than (<), greater than (>),
double quotation mark (") and ampersand (&).
pw
specifies a password value that will allow access to the SOCKS proxy server. Password values
can be from 1 to 80 characters excluding the reserved XML characters, less than (<), greater
than (>), double quotation mark (") and ampersand (&).
</HTTPSOCKSPROXY>
specifies the end of the HTTP SOCKS proxy data.
</CLIENT>
specifies the end of local client environment data. This tag is required.
<CLIENT>
<FIREWALL>
<SERVER
host="local.firewall.host"
user="USER1" pw="PASSWORD1">
</SERVER>
<FIRECMD>&USER;</FIRECMD>
<FIRECMD>&PW;</FIRECMD>
<FIRECMD>SITE &REMOTE_HOST;</FIRECMD>
</FIREWALL>
</CLIENT>
<FIRECMD>USER &USER;</FIRECMD>
<FIRECMD>PASS &PW;</FIRECMD>
With SMP/E V3R3 and later, if your local firewall or the FTP client prompts for the user ID, then do
not specify the USER subcommand on the <FIRECMD> tag. Only specify the user ID or the appropriate
substitution variable on the <FIRECMD> tag as shown here:
<FIRECMD>&USER;</FIRECMD>
Similarly, if your local firewall or the FTP client prompts for the password, then do not specify the PASS
subcommand on the <FIRECMD> tag. Only specify the password or the appropriate substitution variable
on the <FIRECMD> tag as shown here:
<FIRECMD>&PW;</FIRECMD>
With SMP/E V3R3 and later, you may need to add two additional <FIRECMD> tags if once connected to
your local firewall, you are not yet connected to the remote server. To connect to the remote server, add
the following <FIRECMD> tags:
<FIRECMD>USER &REMOTE_USER;</FIRECMD>
<FIRECMD>&REMOTE_PW;</FIRECMD>
In the end, the commands you specify in the <FIRECMD> tags should be the same as those you use with
the z/OS Communications Server FTP client. Since the behavior of various firewalls differ, the best way to
determine the necessary <FIRECMD> tags is to perform an FTP operation using the FTP client in a JCL job
and then specify the same commands that were needed in that operation in the <FIRECMD> tags in the
CLIENT and/or SMPCLNT data set.
FTP.DATA file
The z/OS Communications Server provides an FTP client program to perform file transfer operations.
SMP/E uses this FTP client program to transfer packages for RECEIVE FROMNETWORK and RECEIVE
ORDER command processing, and the GIMGTPKG service routine. Certain functions of the FTP client
program, such as performing file transfers in a secure mode or properly navigating local SOCKS firewalls,
require the use of a configuration file (FTP.DATA) to the FTP client program. If you run FTP on z/OS V1R8
or higher, you can use the -f FTP parameter to identify a specific FTP.DATA file. You can specify the -f
parameter using the <FTPOPTIONS> tag in the CLIENT data set.
<FTPOPTIONS>-f "//'USER1.FTP.DATA'"</FTPOPTIONS>
Note: Support for the <FTPOPTIONS> tag in the CLIENT data set is added to SMP/E V3R3 and later with
APAR IO05806.
Using the -f parameter overrides the default search order used by the FTP client program to find the
FTP.DATA file. If you do not specify the -f parameter, or if you are using a lower level of the FTP client
program, the default search order for FTP.DATA is as follows:
1. $HOME/ftp.data
2. userid.FTP.DATA
3. /etc/ftp.data
4. SYS1.TCPPARMS(FTPDATA) data set
5. tcpip_hlq.FTP.DATA file
For information about the contents of the FTP.DATA file and the -f parameter, see z/OS Communications
Server: IP User's Guide and Commands. Also, ensure that you have the fix for APAR PK31326 before you
use the -f parameter.
ORDERSERVER Tag
<ORDERSERVER url=" server URL " certificate=" certificate label "
</ORDERSERVER>
<ORDERSERVER>
specifies the start of ORDERSERVER data. This tag is required.
The attributes for the <ORDERSERVER> tag are:
url
specifies the Uniform Resource Locator (URL) for the order server. A URL value can be from 1 to
255 nonblank characters excluding the reserved XML characters, less than (<), greater than (>),
double quotation mark (") and ampersand (&). A URL value is of the form:
protocol://host[:port][/path]
https://eccgw01.boulder.ibm.com/services/projects/ecc/ws/
and
https://eccgw02.rochester.ibm.com/services/projects/ecc/ws/
certificate
specifies the label to identify which certificate to use for access to the server. This certificate
is generated during the registration process on IBM Shopz (www.ibm.com/software/shopzseries/
ShopzSeries_public.wss) and is stored in a security product data base on your z/OS system.
The certificate is used to identify and authenticate the user to the server. Certificate labels are
from 1 to 32 characters in length and may include only characters X'40' through X'FE' excluding
the reserved XML characters, less than (<), greater than (>), double quotation mark ("), and
ampersand (&). See z/OS SMP/E User's Guide for detailed information on using ShopzSeries to
obtain a certificate and how to store the certificate in your security product data base (RACF®).
keyring
specifies the security manager key ring that contains the certificate required for access to the
server. Key ring names are from 1 to 237 characters in length and may include only characters
X'40' through X'FE' excluding the forward slash (/) and the reserved XML characters, less than (<),
greater than (>), double quotation mark ("), and ampersand (&).
If the key ring is associated with a user ID other than that used to execute SMP/E, then the key
ring name must be prefixed with the associated user ID. User IDs are from 1 to 8 alphanumeric
characters in length, can consist entirely of numbers and need not begin with any particular
character. The user ID is separated from the key ring value by a forward slash (userid/keyring).
inventory
specifies which form of the software inventory will be included in the request to the order server.
A value of ibm indicates the software inventory will be produced in the form expected by the
IBM Automated Service Request server. This form of the software inventory identifies all installed
FMIDs and only PTFs whose IDs match the naming convention used by IBM. This is the default
value.
A value of all indicates the software inventory will be produced in a generic form that identifies
all installed FMIDs and PTFs regardless of their naming convention.
</ORDERSERVER>
specifies the end of ORDERSERVER data. This tag is required.
Output
This section describes the listings and reports produced during RECEIVE processing.
Listings
SMP/E does not print the SYSMOD or exception modification control statements during RECEIVE
processing unless you specify the LIST operand on the RECEIVE command. If LIST is specified, the
following occurs:
• If SELECT or EXCLUDE is specified, the message control statements for those SYSMODs either selected
or not specifically excluded are written to SMPOUT.
• If a SYSMOD is not applicable, no modification control statements are listed for that SYSMOD.
Note: For SYSMODs with construction errors, SMP/E lists the modification control statements up to the
point of the error.
• Header modification control statements (that is, ++FUNCTION, ++PTF, ++APAR, ++USERMOD) whose
SYSMOD ID does not appear in the first record are written to SMPOUT, even though the SYSMOD was
not selected or was excluded.
Reports
These reports are produced during RECEIVE processing:
• File Allocation report
• RECEIVE Exception SYSMOD Data report
• RECEIVE Summary report
• RECEIVE Product Summary report
For descriptions of these reports, see Chapter 34, “SMP/E reports,” on page 461.
Examples
The following examples are provided to help you use the RECEIVE command.
Besides receiving SYSMODs and HOLDDATA from the tape, SMP/E assigns a source ID of PDO9824 to
the SYSMODs it has just received. In addition, it assigns the source IDs specified on the ++ASSIGN
statements to SYSMODs that were just received or that had been previously received.
These source IDs can be specified later on the APPLY and ACCEPT commands to limit which SYSMODs
should be installed.
The SOURCEID operand assigns each of the SYSMODs received a SOURCEID value of MYSRCID that you
can use during APPLY or ACCEPT to assist in selecting SYSMODs. SMP/E also assigns this source ID to any
SYSMODs that would have been received, but were not received because they had already been received.
Note: The SYSMODs and HOLDDATA operands can be left off the RECEIVE command; processing is the
same.
Note: An alternative URL for the IBM Automated Delivery Request server is https://
eccgw02.rochester.ibm.com/services/projects/ecc/ws.
In this example, SMP/E determines if the HOLDDATA or PTF order associated with the specified ORDER
entry is ready for downloading and, if so, downloads the ORDER package.
1. Catalog information: SMP/E first tries to allocate the data set through the catalog. Therefore, if the
SMPTLIB data set is preallocated and already cataloged, SMP/E uses that data set instead of allocating
a new one.
2. Volume information: If the data set was not allocated through the catalog, but a volume list was
specified in either the SMPTLIB DD statement or the SMPTLIB DDDEF entry, SMP/E searches the
specified volumes to see whether the data set was preallocated on any of them.
• If so, SMP/E uses the preallocated data set instead of allocating a new one.
• Otherwise, SMP/E tries to dynamically allocate a new data set on each specified volume using the
parameters specified in the SMPTLIB DD statement or the SMPTLIB DDDEF entry (and the DSSPACE
value in the current OPTIONS entry, if specified) until the data set is allocated.
3. No catalog or volume information: If no catalog or volume information is available to allocate the
SMPTLIB data sets, SMP/E tries to dynamically allocate a new data set using the parameters specified
in the SMPTLIB DD statement or the SMPTLIB DDDEF entry (and the DSSPACE value in the current
OPTIONS entry, if specified).
Table 18. Relationship between format of RELFILE data set and DSNTYPE value for SMPTLIB data set
Format of RELFILE data set DSNTYPE value used for SMPTLIB data set
DSNTYPE(PDS) DSNTYPE(PDS)
DSNTYPE(LIBRARY) DSNTYPE(LIBRARY)
Table 18. Relationship between format of RELFILE data set and DSNTYPE value for SMPTLIB data set
(continued)
Format of RELFILE data set DSNTYPE value used for SMPTLIB data set
Unloaded PDS DSNTYPE(PDS)
Unloaded PDSE DSNTYPE(LIBRARY)
2. If SMP/E cannot determine the DSNTYPE value of the RELFILE data set, it uses the DSNTYPE value
specified in the SMPTLIB DDDEF entry.
3. If no DSNTYPE value is specified in the SMPTLIB DDDEF entry, SMP/E does not pass a DSNTYPE value
to dynamic allocation. In this case, the DSNTYPE value is determined by the system default or by the
SMS subsystem.
Note: It is possible that the system on which you are running SMP/E does not support PDSEs:
• It does not support PDSEs at all.
• It does not support PDSE load libraries (program objects).
• SMS is not activated or set up to support PDSEs.
If the system level does not support PDSEs, SMP/E detects this, issues a warning message, and does not
attempt to allocate SMPTLIB data sets as PDSEs when determining the DSNTYPE to use. In the other
cases, attempts to allocate PDSEs fail and error messages are issued indicating the reason for the failure.
Sometimes errors occur while the SMPTLIB data sets are being allocated or the relative files are being
unloaded. In this case, the return code from IEBCOPY may be higher than the SMP/E default value or
the maximum return code value defined in the COPY UTILITY entry that is in effect. If such an error
occurs, SMP/E cannot receive the SYSMOD, and it deletes all the SMPTLIB data sets associated with that
SYSMOD, even if they were preallocated.
Selecting SYSMODs
A SYSMOD is selected if it meets all the following conditions:
1. You have either explicitly or implicitly selected the SYSMOD.
• You explicitly select a SYSMOD by specifying it on the SELECT operand (select-mode).
• You implicitly select a SYSMOD by omitting the SELECT operand (mass-mode) or by specifying the
FORFMID operand with an FMID (or FMIDSET) to which this SYSMOD belongs.
2. The SYSMOD is not specified in the EXCLUDE list.
3. If you have implicitly selected the SYSMOD, the SYSMOD will remain selected only if one of the
following conditions is true:
a. No Receive Zone List was specified on either the ZONEGROUP operand of the RECEIVE command
or in the RECZGRP and RECEXZGRP subentries of the active OPTIONS entry.
b. The SYSMOD has not been applied or accepted into any of the zones defined in the Receive Zone
List.
c. The SYSMOD has been applied or accepted into one or more of the Receive Zone List zones, but
BYPASS(APPLYCHECK) or BYPASS(ACCEPTCHECK) have been specified on the RECEIVE command.
Note: The SYSMOD is deemed applied or accepted as long as the SYSMOD is not in error.
4. Either:
a. The SYSMOD is a base function and is applicable to one of the SRELs (system releases) defined in
the global zone.
b. The SYSMOD is a service SYSMOD or a dependent function and is applicable to one of the SRELs
and one of the FMIDs defined in the global zone.
Note: If BYPASS(FMID) was specified, SMP/E does not check whether the applicable FMID for
service is already defined in the global zone. In this case, SMP/E selects all SYSMODs that are
applicable to an SREL defined in the global zone and to all exception SYSMOD data.
5. An entry does not already exist in both the SMPPTS and the global zone for the SYSMOD.
Note: If an entry exists in either the global zone or the SMPPTS, but not both, SMP/E assumes that
an error occurred during a previous RECEIVE attempt. In this case, it selects the current SYSMOD and
replaces any existing entries for that SYSMOD in the global zone or SMPPTS.
The status of a SYSMOD's requisites has no effect on whether that SYSMOD is selected. These requisites
are checked and resolved later when the SYSMOD is applied and accepted.
Generally, a SYSMOD that has already been successfully received cannot be received again unless it is
first rejected. However, SMP/E may automatically rereceive a SYSMOD if both of these conditions are met:
• The REWORK operand is coded on the ++PTF, ++FUNCTION, ++APAR, or ++USERMOD statement.
Typically, SYSMODs with the REWORK operand have been reworked by IBM for minor changes.
• The REWORK level is higher than the level for the previous version of the SYSMOD.
This saves you from having to reject and receive again the SYSMODs yourself. For more information
about the REWORK operand, see the descriptions of these modification control statements in the "SMP/E
Modification Control Statements" section in z/OS SMP/E Reference.
Note: If a SYSMOD appears more than once in the SMPPTFIN data set, the first occurrence may be
received. However, none of the subsequent versions of the SYSMOD are received, even if their REWORK
level is higher than the one for the first version of the SYSMOD. (Message GIM40001E is issued for each of
the subsequent versions of the SYSMOD.)
Processing SYSMODs
For each SYSMOD selected for RECEIVE processing, SMP/E takes these actions: :
• Saves the complete SYSMOD, unchanged and including any inline changes, as a member in the SMPPTS
data set. This member is called an MCS entry.
• Creates a SYSMOD entry in the global zone. This entry contains information SMP/E needs to determine
SYSMOD applicability during later SMP/E processing. For example, if a source ID was specified on the
RECEIVE command, SMP/E saves that value in the SYSMOD entry.
Note:
1. If a SYSMOD entry already exists, but contains only HOLD reason IDs, those reason IDs are saved in
the SYSMOD entry for the SYSMOD that was received.
2. If a SYSMOD was received again, the existing SYSMOD entry in the global zone is completely
replaced, except for the ACCID and APPID subentries. These are saved in the new SYSMOD entry so
there is still a record of the zones where the SYSMOD has already been installed.
• Adds the FMID of each function SYSMOD received to the global zone. This enables SMP/E to receive
SYSMODs applicable to that function SYSMOD.
modification control statement entries for SYSMODs that were not selected are not saved in the SMPPTS
data set.
within a SYSMOD, unique HOLDDATA can be created for the same reason ID as long as the SYSMOD ID
specified on each ++HOLD is different.
Therefore, uniqueness for a HOLDDATA entry is determined by reason ID and SYSMOD ID specified on
the HOLD. For example, assume SMP/E has already received the following ++HOLD statement:
Later, SMP/E receives another ++HOLD statement for the same SYSMOD, HOLD type, and reason ID, but
the comment is different:
Information from the second ++HOLD statement replaces the information from the first ++HOLD
statement.
• For ++HOLD statements with a hold category of FIXCAT, SMP/E translates fix category values into
SOURCEIDs and assigns them to the resolving (fixing) PTFs identified on the HOLDDATA, if those PTFs
are already received. A PTF must have been previously received, either during a previous RECEIVE
command or the current RECEIVE, in order for the FIXCAT SOURCEID to be assigned.
• For ++RELEASE statements, SMP/E removes the specified reason ID from the global zone SYSMOD
entry and deletes the ++HOLD statement for that reason ID from the global zone.
2. Using the information found in the SERVER and (optional) CLIENT data sets, SMP/E spawns the
appropriate client program based on the specified download method (FTP or HTTP(S)) and logs in to
the FTP or HTTP(S) server that contains the package to be received.
3. SMP/E transfers the package attribute file (GIMPAF.XML) for the package and stores it in the package
directory of the SMPNTS. The package identifier value found in the SERVER data set is used as the
package directory in the SMPNTS.
4. SMP/E computes the SHA-1 hash value for the transferred file. If the computed hash value matches
the hash value found in the SERVER data set information, then the file was transferred properly. If
the hash values do not match, then the file may have been corrupted during its transfer (another
possibility is that the value in the SERVER data set is incorrect). If a nonzero RETRY value was
specified in the CLIENT data set information, SMP/E retries the transfer operation. Otherwise, RECEIVE
processing will fail. See “Restarting RECEIVE FROMNETWORK” on page 245 for information on
restarting after a failure.
5. The package attribute file can be thought of as a "packing list" for the package to be received. It
contains a list of all the files that, combined, make up the entire package. SMP/E reads the package
attribute file (if successfully stored) to determine the files that make up the package. SMP/E then
transfers each file defined in the package attribute file from the FTP or HTTP(S) server and stores it in
the package directory of the SMPNTS.
SMP/E creates subdirectories as needed in the package directory and stores files in the subdirectories
according to their filetype or subdir attributes indicated in the package attribute file. SMPPTFIN
archive files are stored in the /SMPPTFIN subdirectory, SMPHOLD archive files are stored in the /
SMPHOLD subdirectory, and SMPRELF archive files are stored in the /SMPRELF subdirectory. All other
files are stored in the subdirectory specified on the subdir attribute or, if the subdir attribute is not
present, in the package directory with no subdirectory.
6. SMP/E computes the SHA-1 hash value for each file it stores. If the computed hash value matches the
known hash value indicated in the package attribute file, the file was transferred properly. If the hash
values do not match, then the file has been corrupted during its transfer. If a nonzero RETRY value
was specified in the CLIENT data set information, SMP/E retries the transfer operation. Otherwise,
RECEIVE processing will fail. See “Restarting RECEIVE FROMNETWORK” on page 245 for information
on restarting after a failure.
7. SMP/E closes the connection with the FTP or HTTP(S) server after all files of the package have been
transferred successfully or when no further retry operations will be performed.
8. SMP/E processes the package contents (unless TRANSFERONLY has been specified on the RECEIVE
command) as directed by the applicable RECEIVE command operands. If SYSMODs or HOLDDATA
are to be processed, SMP/E transforms the archive files in the /SMPPTFIN, /SMPHOLD, and /SMPRELF
subdirectories of the package directory into images of the original data. SMP/E then processes this
data as if it had been read from the SMPPTFIN and SMPHOLD data sets, as described in “Processing
input from SMPPTFIN and SMPHOLD” on page 264.
If more than one archive file exists in the /SMPPTFIN or /SMPHOLD subdirectories, SMP/E reads
and processes the archives in the sequence in which they are defined in the GIMPAF.XML file.
The GIMPAF.XML file is created by the GIMZIP service routine, and the archives are defined in the
GIMPAF.XML file in the order in which they are specified by the input ARCHDEF tags.
directory into images of the original data. SMP/E then processes this data as if it had been read from the
SMPPTFIN and SMPHOLD data sets, as described in “Processing input from SMPPTFIN and SMPHOLD” on
page 264.
In addition, if the package was identified using an ORDER entry name, as SYSMODs are stored in
the global zone a source ID value corresponding to the ORDER entry name will be added to each
SYSMOD entry. This source ID will be added in addition to a source ID value that may be specified on
the SOURCEID operand of the RECEIVE command, and in addition to any source ID values found on
++ASSIGN statements being processed.
ORDER request
The ORDER Request phase supports the RECEIVE ORDER command. In this phase of processing, SMP/E
deletes expired ORDER entries from the global zone, and then either requests a new ORDER or Processes
a PENDING ORDER.
SMP/E uses the target zone list to generate the software inventory. The format of the software
inventory is the same as that generated by the service routine GIMXSID except that the Feature
records are not included in the inventory file.
SMP/E writes the software inventory to a file within a temporary work directory in the UNIX file system.
The naming convention for this work directory is /smpwkdir/smpedate_tod/ where smpwkdir is
either the directory allocated to SMPWKDIR or the system /tmp directory, and date_tod is a unique
date and time-of-day value of the form YYYYDDDHHMMSSthmiju.
2. SMP/E sends the request to the IBM server using the information specified in the ORDERSERVER
data set. For PTF orders, the request includes the software inventory produced in the previous step.
Communication with the server is performed using the HTTP protocol and SSL (Secure Sockets Layer),
also referred to as HTTPS.
3. If the IBM server accepts the request, it returns a unique order identifier to SMP/E. SMP/E then creates
an ORDER entry in the global zone to describe this order. SMP/E generates the name for the ORDER
entry in the form ORDnnnnn, where nnnnn is a decimal number with leading zeros from 00001 to
99999. The unique order identifier returned by the server becomes the ORDERID subentry of the
ORDER entry.
Network transfer
During the Network Transfer phase of the RECEIVE command, package files are downloaded and stored in
the SMPNTS directory. Each package is stored in a unique package directory within the SMPNTS directory.
For packages to be downloaded for the RECEIVE ORDER command, SMP/E creates a package directory
in the SMPNTS with a name based on the ORDER entry name and current date and time of the form
ORDnnnnn-DayMonthYear-HH.MM.SS.thm. For example, ORD00035-29January2006-15.02.47.496.
After the package directory has been created, SMP/E uses the information provided by the order server
to spawn the appropriate client program based on the specified download method (FTP or HTTP(S)) and
download the package files. For the most part the FTP or HTTP(S) processing of the package files for
RECEIVE ORDER is the same as that described in “Processing for RECEIVE FROMNETWORK” on page
270.
After the package files have been downloaded, the ORDER entry in the global zone is updated with the
latest status of the order, DOWNLOADED. In addition, SMP/E sends a request to the server to close
processing for this order. This enables the server to cleanup and complete processing for the order.
RECEIVE processing
SMP/E processes the contents of the order package (unless TRANSFERONLY has been specified on
the RECEIVE command) as directed by the applicable RECEIVE command operands. If SYSMODs or
HOLDDATA are to be processed, SMP/E transforms the archive files in the /SMPPTFIN, /SMPHOLD, and /
SMPRELF subdirectories of the package into images of the original data. SMP/E then processes this data
as if it had been read from the SMPPTFIN and SMPHOLD data sets, as described in “Processing input from
SMPPTFIN and SMPHOLD” on page 264.
In addition, as SYSMODs are stored in the global zone, a source ID value corresponding to the ORDER
entry name is added to each SYSMOD entry. This source ID is added in addition to a source ID value that
may be specified on the SOURCEID operand of the RECEIVE command, and in addition to any source ID
values found on ++ASSIGN statements being processed.
Package id value
Exclusive enqueue.
7. RECEIVE processing
Global zone
Update with exclusive enqueue.
Target zones
Read with shared enqueue
Distribution zones
Read with shared enqueue
SMPPTS
Update with exclusive enqueue.
8. Termination
All resources are freed.
With the REJECT command, you can clean up the global zone, SMPPTS, and associated entries and data
sets. REJECT is helpful if the SMPPTS is being used as a permanent database for all SYSMODs, including
those that have been installed. You can also use it to purge old data from the global zone and SMPPTS.
To use the REJECT command, you must first determine which processing mode of the command you want
to use. The mode you choose depends on the data you want to delete. (REJECT command processing
modes are mutually exclusive. No two modes can be used together.) These are the modes of REJECT
processing:
• Mass mode: SMP/E rejects all SYSMODs that have been received but not installed. Generally, SMP/E
rejects these SYSMODs only if they have been neither accepted nor applied. However, you can specify
operands to prevent SMP/E from checking where the SYSMODs have been installed.
• Select mode: SMP/E rejects specific SYSMODs that have been received but not installed. Generally,
SMP/E rejects these SYSMODs only if they have been neither accepted nor applied. However, you can
specify operands to prevent SMP/E from checking where the SYSMODs have been installed.
• PURGE mode: SMP/E rejects all SYSMODs that have been accepted into the specified distribution
zones. PURGE mode can be used when SYSMODs were not automatically deleted once they were
accepted. This is the case if NOPURGE was coded in the OPTIONS entry used to process the distribution
zone.
• NOFMID mode: SMP/E rejects all SYSMODs applicable to functions that are not part of the system.
NOFMID mode can be used to delete service for all functions that have been deleted from the global
zone. NOFMID mode can also be used to delete FEATURE and PRODUCT entries for all functions that
have been deleted from the global zone.
For each eligible SYSMOD, SMP/E deletes the following, regardless of the processing mode:
• The SMPPTS MCS entry
• The global zone SYSMOD entry
• The associated FMID subentry in the GLOBALZONE entry, as appropriate (see “Processing the
SYSMODs, FEATUREs, PRODUCTs, and HOLDDATA” on page 292 for details)
• The associated SMPTLIB data sets, if the SYSMOD was packaged in RELFILE format (see “Processing
the SYSMODs, FEATUREs, PRODUCTs, and HOLDDATA” on page 292 for details)
Eligible HOLDDATA entries are deleted only during Select mode and NOFMID mode processing, and
only if the HOLDDATA operand is specified. During Mass mode and Purge mode processing, and when
HOLDDATA is not specified for Select mode and NOFMID mode processing, all HOLDDATA entries are
retained including internal SYSTEM HOLDDATA entries. (See “Selecting the eligible SYSMODs, FEATUREs,
PRODUCTs, and HOLDDATA” on page 289 for details.)
Syntax
This section shows the syntax for the modes of REJECT processing:
• Mass mode
• Select mode
• PURGE mode
• NOFMID mode
REJECT Command
.
PTFS
REJECT
APARS CHECK
FUNCTIONS
USERMODS
COMPRESS (ALL)
,
( ddname )
EXCLUDE( sysmod_id )
, ,
SOURCEID( source_id )
•
,
RC( command=rc )
REJECT Command
,
, CHECK
BYPASS( APPLYCHECK )
ACCEPTCHECK
COMPRESS (ALL)
,
( ddname )
, HOLDDATA
EXCLUDEZONE( name )
•
,
RC( command=rc )
REJECT Command
.
,
PTFS
REJECT PURGE( name )
APARS CHECK
FUNCTIONS
USERMODS
COMPRESS (ALL)
,
( ddname )
, ,
, ,
REJECT Command
REJECT NOFMID
CHECK
COMPRESS (ALL)
,
( ddname )
, HOLDDATA PRODUCT
DELETEFMID( fmid )
•
,
RC( command=rc )
Operands
APARS
indicates that APARs should be rejected.
Note:
1. APARS is allowed only in mass mode and PURGE mode.
2. APARS can also be specified as APAR.
BYPASS
indicates that SMP/E should reject SYSMODs that have been installed.
APPLYCHECK
indicates that selected SYSMODs should be rejected, even if they have been applied.
ACCEPTCHECK
indicates that selected SYSMODs can be rejected, even if they have been accepted.
Note:
1. BYPASS is allowed only in select mode.
2. APPLYCHECK can also be specified as APPCHK.
3. ACCEPTCHECK can also be specified as ACCCHK.
4. To reject a superseded SYSMOD, you must either specify the appropriate BYPASS operands, or you
must use the EXCLUDEZONE operand to specify the zones in which the SYSMOD is superseded.
CHECK
CHECK indicates that SMP/E should not actually update any libraries. Rather it should just take these
actions:
• Test for errors other than those that could occur when the libraries are actually updated.
• Produce a REJECT Summary Report indicating what would have happened if CHECK had not been
specified.
COMPRESS
indicates which partitioned data sets should be compressed.
• If you specify ALL, any partitioned data sets that were updated are compressed. In addition, the
SMPPTS data set is compressed regardless of whether it was updated.
• If you specify one or more specific ddnames, only the data sets they apply to are compressed.
Those data sets are compressed regardless of whether they were updated.
Note:
1. COMPRESS is allowed in all modes of REJECT processing.
2. COMPRESS can also be specified as C.
DELETEFMID
specifies one or more FMID subentries that are to be deleted from the GLOBALZONE entry before
SMP/E selects the SYSMODs or HOLDDATA to be rejected.
Note:
1. DELETEFMID is allowed only in NOFMID mode.
2. DELETEFMID can also be specified as DFMID.
3. DELETEFMID does not cause SMP/E to reject the function SYSMODs associated with the specified
FMID values.
EXCLUDE
specifies one or more SYSMODs that should not be rejected.
Note:
1. EXCLUDE is allowed only in mass mode.
2. EXCLUDE can also be specified as E.
EXCLUDEZONE
indicates that SMP/E should not check whether SYSMODs have been installed in the specified zones
or ZONESETs.
For each specified value, SMP/E first checks for a ZONESET with the same name. If none is found,
SMP/E checks for a zone with the same name. For example, suppose you have a ZONESET named
SYS1 and a zone named SYS1. If you specify SYS1 on this operand, SMP/E assumes you want to
use the zones defined in ZONESET SYS1 (which might or might not include zone SYS1), and not the
individual zone SYS1.
Note:
1. EXCLUDEZONE is allowed only in mass mode and select mode.
2. EXCLUDEZONE can also be specified as EZONE.
3. EXCLUDEZONE cannot specify all the zones defined by ZONEINDEX subentries. If you are doing
select-mode processing and you do not want SMP/E to check any zones, you can specify
BYPASS(APPLYCHECK,ACCEPTCHECK). If you are doing mass-mode processing, there is no way
to have SMP/E ignore all the zones.
4. You should be careful when using the EXCLUDEZONE operand. A SYSMOD that is installed in one
of the excluded zones may be rejected, even if you were later going to install it in another zone.
Because the rejected SYSMOD is no longer in the SMPPTS, it cannot be installed in any more zones.
5. To reject a superseded SYSMOD, you must either specify the appropriate BYPASS operands, or you
must use the EXCLUDEZONE operand to specify the zones in which the SYSMOD is superseded.
FORFMID
indicates that only SYSMODs and HOLDDATA for the specified FMIDs or FMIDSETs should be rejected.
Note:
1. FORFMID is allowed only in mass mode and PURGE mode.
2. If no SYSMOD types are specified, only PTFs are processed. To process other types of SYSMODs,
you must specify the desired SYSMOD types.
FUNCTIONS
indicates that functions should be rejected.
Note:
1. FUNCTIONS is allowed only in mass mode and PURGE mode.
2. FUNCTIONS can also be specified as FUNCTION.
HOLDDATA
indicates that SMP/E should reject HOLDDATA entries. There are two types of HOLDDATA entries:
those that have an associated SYSMOD entry, and those that have no associated SYSMOD entry. (For
more information, see z/OS SMP/E Reference .) How SMP/E processes HOLDDATA entries depends on
the mode of REJECT processing you choose.
Note: HOLDDATA is allowed for all modes of REJECT processing, but it will be ignored during Mass
mode and Purge mode processing. Eligible HOLDDATA entries are deleted only during REJECT Select
mode and REJECT NOFMID mode processing when the HOLDDATA operand is specified.
• Mass mode: The HOLDDATA operand is ignored when specified for Mass mode REJECT processing.
All HOLDDATA entries are retained during Mass mode processing. This includes internal SYSTEM
HOLDs even though the containing SYSMOD may be deleted.
• Select mode: If you specify HOLDDATA, SMP/E deletes HOLDDATA entries associated with the
eligible SYSMOD IDs, regardless of whether an associated SYSMOD entry exists.
If you do not specify HOLDDATA, SMP/E does not delete any HOLDDATA entries, including internal
SYSTEM HOLDDATA entries, even though the containing SYSMOD may be deleted.
• PURGE mode: The HOLDDATA operand is ignored when specified for Purge mode REJECT
processing. All HOLDDATA entries are retained during Purge mode processing. This includes internal
SYSTEM HOLDs even though the containing SYSMOD may be deleted.
• NOFMID mode: If you specify HOLDDATA, SMP/E deletes HOLDDATA entries associated with the
SYSMOD entries that are also being rejected. In addition, SMP/E deletes HOLDDATA entries whose
associated FMID is not defined in the global zone.
If you do not specify HOLDDATA, SMP/E does not delete any HOLDDATA entries, including internal
SYSTEM HOLDDATA entries, even though the containing SYSMOD may be deleted.
NOFMID
indicates that SMP/E is to reject SYSMODs applicable to functions that are not part of the system. (The
FMID they apply to is not in the GLOBALZONE entry.)
If DELETEFMID is also specified, SMP/E deletes the specified FMIDs from the GLOBALZONE entry
before determining which SYSMODs and HOLDDATA to delete.
Note: NOFMID is allowed only in NOFMID mode.
PRODUCT
indicates that SMP/E should reject PRODUCT and FEATURE entries.
Note: PRODUCT is allowed only in NOFMID mode.
PTFS
indicates that PTFs should be rejected. This is the default SYSMOD type operand. In mass or PURGE
mode processing, if no SYSMOD type is specified, only PTFs are rejected.
Note:
1. PTFS is allowed only in mass mode and PURGE mode.
2. PTFS can also be specified as PTF.
PURGE
indicates that SMP/E should reject only SYSMOD entries for SYSMODs that have been accepted into
the specified distribution zones or ZONESETs.
For each specified value, SMP/E first checks for a ZONESET with the same name. If none is found,
SMP/E checks for a zone with the same name. For example, suppose you have a ZONESET named
SYS1 and a zone named SYS1. If you specify SYS1 on this operand, SMP/E assumes you want to use
the zones defined in ZONESET SYS1 (which might or might not include zone SYS1), not the individual
zone SYS1.
Any individual zones you specify must be distribution zones. Among all the zones and ZONESETs you
specify, there must be at least one distribution zone.
• If you specify a single zone, SMP/E rejects entries only for SYSMODs that have been accepted into
that zone.
• If you specify more than one zone (including zones in a ZONESET), SMP/E rejects entries only for
SYSMODs that have been installed in at least one distribution zone and have been installed in all the
distribution zones they apply to.
If TARGETZONE is also specified, SMP/E rejects entries only for SYSMODs that have also been installed
in the specified target zones where they are applicable.
HOLDDATA entries are not deleted during Purge mode processing. The HOLDDATA operand is ignored
when specified with the PURGE operand.
Note:
1. PURGE is only allowed in PURGE mode.
2. PURGE cannot be used to reject specific SYSMODs that have been accepted. To do this you must
specify BYPASS(ACCCHK) in select mode.
3. PURGE uses a SYSMOD's REWORK value to determine whether the SYSMOD should be rejected.
If the REWORK value of a SYSMOD in the global zone is higher than the REWORK value of the
SYSMOD in the distribution or target zone, then the SYSMOD is not rejected.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the REJECT command.
Before SMP/E processes the REJECT command, it checks whether the return codes for the specified
commands are less than or equal to the values specified on the RC operand. If so, SMP/E can process
the REJECT command. Otherwise, the REJECT command fails. For more information about the RC
operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. RC is allowed in all modes of REJECT processing.
3. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the REJECT command. Therefore, if you use the RC operand, you must specify
every command whose return code you want SMP/E to check.
SELECT
specifies one or more SYSMODs that should be rejected.
Note:
1. SELECT is only allowed in select mode.
2. SELECT can also be specified as S.
SOURCEID
indicates that only entries for SYSMODs associated with the specified source IDs should be rejected.
Note:
1. SOURCEID is allowed only in mass mode and PURGE mode.
2. There are two ways to specify source IDs:
• Explicitly, by fully specifying a particular source ID value (for example, RSU0711). In this case, all
SYSMODs that contain the identified source ID are selected.
• Implicitly, by partially specifying a source ID using asterisks (*) as global characters and percent
signs (%) as placeholders.
– A single asterisk, for example, RSU*, *0711, or RSU*1, indicates that zero or more characters
can occupy that position.
- For RSU*, all SYSMODs that contain a source ID that begins with the character string RSU are
selected.
- For *0711, all SYSMODs that contain a source ID that ends with the character string 0711
are selected.
- For RSU*1, all SYSMODs that contain a source ID that begins with the character string RSU
and ends with the character string 1 are selected.
– A single percent sign, for example, RSU0%11, indicates that any one single character can
occupy that position. In this case, SYSMODS that contain any of the following source IDs
are selected: RSU0711, RSU0211, and RSU0311. SYSMODs that contain RSU00711 are not
selected.
Any number of asterisks and percent signs can be used within a single partially specified source
ID.
The following examples are valid source ID specifications:
RSU0709
RSU*
IBM.Device.20%4
IBM.Device.*.zAAP
3. A given source ID can be explicitly specified only once on the SOURCEID operand.
4. If no SYSMOD types are specified, only PTFs are processed. To process other types of SYSMODs,
you must specify the desired SYSMOD types.
5. A source ID value might contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified source ID value. For example, a specified source ID
value of ABCDEF matches a value of abcdef.
TARGETZONE
indicates that SMP/E should only reject SYSMOD entries for SYSMODs that have been applied to the
specified target zones or ZONESETs.
For each specified value, SMP/E first checks for a ZONESET with the same name. If none is found,
SMP/E checks for a zone with the same name. For example, suppose you have a ZONESET named
SYS1 and a zone named SYS1. If you specify SYS1 on this operand, SMP/E assumes you want to use
the zones defined in ZONESET SYS1 (which might or might not include zone SYS1), not the individual
zone SYS1.
Any individual zones you specify must be target zones. Among all the zones and ZONESETs you
specify, there must be at least one target zone.
SMP/E rejects entries for SYSMODs that have been installed in the specified target zones where they
are applicable. If a SYSMOD is not applicable to any of the specified target zones, it may still be
rejected if it is installed in the specified distribution zones where it is applicable.
Note:
1. TARGETZONE is allowed only in PURGE mode.
2. TARGETZONE cannot be used to reject specific SYSMODs that have been applied. To do this, you
must specify BYPASS(APPCHK) in select mode.
USERMODS
indicates that USERMODs should be rejected.
Note:
1. USERMODS is allowed only in mass mode and PURGE mode.
Note: zone represents the DD statements required for each distribution zone used by this command. If
the DD statements are not specified, the ZONEINDEX information in the GLOBALZONE entry is used to
dynamically allocate the data sets. Also note that, while DD statements may be used to override the
ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always required for a
zone.
zone is required if the PURGE operand is specified.
Output
Output from the REJECT command includes reports, as well as statistics written to SMPOUT and SMPLOG.
Reports
Two reports are produced during REJECT processing:
• File Allocation report
• REJECT Summary report
See Chapter 34, “SMP/E reports,” on page 461 for descriptions of these reports.
Statistics
SMP/E writes statistics to SMPOUT and SMPLOG to summarize what happened during REJECT processing.
These statistics follow the message issued at the completion of REJECT processing. Figure 9 on page 285
shows the format of the statistics.
REJECT STATISTICS
SYSMODS REJECTED
is the number of SYSMODs that were rejected.
SYSMODS NOT REJECTED
is the number of SYSMODs that were candidates but were not rejected. The reason appears in the
REJECT Summary report.
FMIDS DELETED
is the number of FMIDs that were deleted. This includes FMIDs specified on the DELETEFMID operand
in NOFMID mode or FMIDs that were deleted from the GLOBALZONE entry in other modes when
functions were rejected.
Examples
The following examples are provided to help you use the REJECT command.
Example 1: Rejecting all SYSMODs that have not been installed (mass mode)
Assume that you want to delete all SYSMODs that have been received but not installed. Also assume
that you want to CHECK the results of the REJECT command before proceeding with it. You can use the
following commands:
Note: Be careful when you use this format for REJECT. It may reject SYSMODs you wanted to keep, and
you would have to receive them again. Use the CHECK operand to verify that the REJECT command will do
what you expect, then re-run the command after removing the CHECK operand.
If you want to reject only PTFs that have been received but not installed, you can use the following
commands:
If no SYSMOD types are specified on a REJECT command for mass mode, SMP/E rejects only PTFs.
Note: If there had been a SYSMOD entry for UZ04356, these commands would have deleted the SYSMOD
entry along with the HOLDDATA entry.
Note:
1. Because no SYSMOD types were specified, only PTFs are rejected.
2. Without the SOURCEID operand, SMP/E rejects the SYSMOD entries for all the PTFs that had been
accepted into DLIB1.
3. PURGE uses a SYSMOD's REWORK value to determine whether the SYSMOD should be rejected. If the
REWORK value of a SYSMOD in the global zone is higher than the REWORK value of the SYSMOD in the
distribution or target zone, then the SYSMOD is not rejected.
Note:
1. This deletes SYSMODs and associated HOLDDATA for all functions that are not defined in the
GLOBALZONE entry. It is not limited to entries for HMX1101. To limit the REJECT command to specific
functions, use the FORFMID operand in another REJECT mode.
2. Rather than manually determine which FMIDs to delete, you can use the sample programs GIMCRSAM
and GIMPRSAM (provided in SYS1.SAMPLIB) to help you create a REJECT NOFMID command for the
FMIDs that are superseded or deleted in the DLIB zones you specify.
Example 10: Rejecting selected SYSMODs that have been superseded (select
mode)
Assume that you have applied but not yet accepted PTF UZ45678, which supersedes a previous PTF,
UZ01234. You had received the superseded PTF, but had never installed it. For cleanup purposes, you
want to reject the superseded PTF. The simplest way to do this is by specifying the BYPASS(APPLYCHECK)
operand. That way, you do not need to indicate the specific zones in which the SYSMOD is superseded:
Processing
REJECT processing includes these steps:
1. Selecting the eligible SYSMODs, FEATUREs, PRODUCTs, and HOLDDATA
2. Deleting the entries and related data sets for the selected SYSMODs, FEATUREs, PRODUCTs, and
HOLDDATA
Mass-mode processing
In mass-mode processing, SMP/E selects only SYSMODs that have not been applied or accepted
anywhere. First, SMP/E checks each SYSMOD to see if it meets the requirements defined by the operands
specified on the REJECT command.
• If you specify the EXCLUDE operand, SMP/E makes sure the SYSMOD was not specified in the exclude
list.
• If any SYSMOD types were specified (APARS, FUNCTIONS, PTFS, or USERMODS), SMP/E selects only
SYSMODs that match one of the specified types. If no SYSMOD types were specified, only PTFs are
selected.
• If you specify the FORFMID operand, SMP/E makes sure that either the FMID value on one of the ++VER
statements within the SYSMOD or the SYSMOD ID itself matches either an FMID specified in FORFMID
or one of the FMID values contained in a specified FMIDSET.
• If you specify the SOURCEID operand, SMP/E makes sure one of the SOURCEIDs of the SYSMOD
matches a source ID that you have specified, either explicitly or implicitly, on the SOURCEID operand.
Next, SMP/E determines which of these SYSMODs have not been applied or accepted anywhere. To do
this, it checks all the target and distribution zones defined by zone index subentries, minus any zones
or ZONESETs specified on the EXCLUDEZONE operand. For each specified value, SMP/E first checks for
a ZONESET with the same name. If none is found, SMP/E checks for a zone with the same name. If a
SYSMOD is not installed in any of the zones that were checked, it may be rejected.
Note: A SYSMOD is considered installed if the ERROR indicator in its entry is off, or if it has been
superseded. A deleted SYSMOD is not considered installed.
Each SYSMOD that meets all the specified conditions is eligible to be rejected.
Note: Superseded SYSMODs are rejected in mass mode only if the EXCLUDEZONE operand specifies the
zone where the SYSMOD is superseded. EXCLUDEZONE cannot exclude all target and distribution zones
from processing.
Deleted SYSMODs are rejected in mass mode provided they are eligible, regardless of whether
EXCLUDEZONE is specified.
No HOLDDATA entries are deleted during Mass-mode processing. If the HOLDDATA operand is specified, it
is ignored. When a SYSMOD entry is deleted, its internal SYSTEM HOLDDATA entries are not deleted, but
are retained in the global zone.
Select-mode processing
In select-mode processing, SMP/E selects only SYSMODs that were specified on the SELECT operand.
Generally, SMP/E chooses only SYSMODs that have not been applied or accepted anywhere. To determine
this, it checks all the target and distribution zones defined by zone index subentries, minus any zones
or ZONESETs specified on the EXCLUDEZONE operand. For each specified value, SMP/E first checks for
a ZONESET with the same name. If none is found, SMP/E checks for a zone with the same name. If a
SYSMOD is not installed in any of the zones that were checked, it may be rejected.
Note: A SYSMOD is considered installed if the ERROR indicator in its entry is off, or if it has been
superseded. A deleted SYSMOD is not considered installed.
However, if BYPASS was also specified, SMP/E can select SYSMODs that have been installed.
• If BYPASS(APPLYCHECK) was specified, SMP/E selects the specified SYSMODs, even if they have been
applied, but not if they have been accepted.
• If BYPASS(ACCEPTCHECK) was specified, SMP/E selects the specified SYSMODs, even if they have
been accepted, but not if they have been applied.
• If BYPASS(APPLYCHECK, ACCEPTCHECK) was specified, SMP/E selects the specified SYSMODs, even
if they have been accepted, applied, or both.
Note: Superseded SYSMODs are rejected in select mode only in these cases:
• The appropriate BYPASS operand is specified.
• The EXCLUDEZONE operand specifies the zones where the SYSMODs are superseded. EXCLUDEZONE
cannot exclude all target and distribution zones from processing.
Deleted SYSMODs are rejected in select mode provided they are eligible, regardless of whether BYPASS or
EXCLUDEZONE is specified.
If HOLDDATA was specified, HOLDDATA entries associated with eligible SYSMOD IDs are also eligible to be
rejected, regardless of whether an associated SYSMOD entry exists.
If HOLDDATA was not specified, no HOLDDATA entries are eligible to be rejected. When a SYSMOD entry is
deleted, its internal SYSTEM HOLDDATA entries are not deleted, but are retained in the global zone.
PURGE-mode processing
In PURGE-mode processing, SMP/E selects only SYSMODs that have been installed in the specified
distribution zones and target zones to which they are applicable.
First, SMP/E checks whether a SYSMOD type, FORFMID, or SOURCEID was specified. If so, SYSMODs must
meet the requirements defined by those operands:
• If you specify one or more of the SYSMOD-type operands (that is, FUNCTIONS, PTFS, APARS, or
USERMODS), SMP/E checks to make sure the SYSMOD type was one of those specified.
If you do not specify a SYSMOD-type operand, the default is for SMP/E to process only PTF SYSMODs.
• If you specify the FORFMID operand, SMP/E makes sure that either the FMID value on one of the ++VER
statements within the SYSMOD or the SYSMOD ID itself matches either an FMID specified in FORFMID
or one of the FMID values contained in a specified FMIDSET.
• If you specify the SOURCEID operand, SMP/E makes sure one of the SOURCEIDs of the SYSMOD
matches a source ID that you have specified, either explicitly or implicitly, on the SOURCEID operand.
A SYSMOD is eligible to be rejected if it meets all of these conditions:
• It is installed in at least one of the distribution zones specified on the PURGE operand.
• It is successfully installed, superseded, or deleted in all the specified distribution zones to which it is
applicable.
• The REWORK value of the SYSMOD in the global zone is equal to or less than the REWORK value of the
SYSMOD in the distribution and target zones.
To determine applicability, SMP/E checks the specified distribution zones. For each specified value, SMP/E
first checks for a ZONESET with the same name. If none is found, SMP/E checks for a zone with the same
name. If a ZONESET was specified, SMP/E uses only the distribution zones defined in the ZONESET and
ignores the target zones. If there are no distribution zones among all the zones and ZONESETs specified,
REJECT processing fails. SMP/E determines whether a SYSMOD is applicable to a zone according to the
type of SYSMOD.
• A base function is applicable to a zone if its SREL matches an SREL defined for the zone.
• Other types of SYSMODs are applicable to a zone if they meet either of the following sets of conditions:
– The SREL matches an SREL defined for the zone and the SYSMOD is for an FMID that is installed in
the zone.
– The SREL matches an SREL defined for the zone and the SYSMOD is for an FMID that has been
received but has not yet been installed in the zone.
If TARGETZONE was specified, the selected SYSMODs must also be installed in the specified target zones
to which they are applicable. If a SYSMOD is not applicable to any of the specified target zones, it may still
be eligible if it is installed in the specified distribution zones where it is applicable.
To determine applicability, SMP/E checks the specified target zones. For each specified value, SMP/E
first checks for a ZONESET with the same name. If none is found, SMP/E checks for a zone with the
same name. If a ZONESET was specified, SMP/E uses only the target zones defined in the ZONESET and
ignores the distribution zones. If there are no target zones among all the zones and ZONESETs specified,
REJECT processing fails. (SMP/E determines applicability to target zones in the same way as it determines
applicability to distribution zones.)
Each SYSMOD that meets all the specified conditions is eligible to be rejected.
No HOLDDATA entries are deleted during Purge-mode processing. If the HOLDDATA operand is specified,
it is ignored. When a SYSMOD entry is deleted, its internal SYSTEM HOLDDATA entries are not deleted, but
are retained in the global zone.
NOFMID-mode processing
In NOFMID-mode processing, SMP/E selects only SYSMODs that are applicable to FMIDs not defined in
the GLOBALZONE entry. Before selecting the eligible SYSMODs, SMP/E first checks whether DELETEFMID
was specified. If so, it deletes the specified FMIDs from the GLOBALZONE entry. It then compares the
SYSMOD entries in the global zone with the FMIDs in the GLOBALZONE entry.
• A base function is eligible to be rejected if its FMID does not match an FMID in the GLOBALZONE entry.
• A dependent function is eligible to be rejected if its FMID does not match an FMID in the GLOBALZONE
entry and if either of these conditions is met:
– The FMID specified on the ++VER statement does not match an FMID in the GLOBALZONE entry.
– The FMIDs match, but the SREL specified on the ++VER statement does not match an SREL in the
GLOBALZONE entry.
If all the ++VER statements in the function meet these conditions, the function is eligible to be rejected.
• For other types of SYSMODs, SMP/E checks whether either of these conditions is met:
– The FMID specified on the ++VER statement does not match an FMID in the GLOBALZONE entry.
– The FMIDs match, but the SREL specified on the ++VER statement does not match an SREL in the
GLOBALZONE entry.
If all the ++VER statements in the SYSMOD meet these conditions, the SYSMOD is eligible to be
rejected.
If HOLDDATA was specified, HOLDDATA entries associated with eligible SYSMOD entries are also eligible
to be rejected. In addition, HOLDDATA entries whose associated FMID is not defined in the global zone
are eligible for rejection.
If HOLDDATA was not specified, no HOLDDATA entries are eligible to be rejected. When a SYSMOD entry is
deleted, its internal SYSTEM HOLDDATA entries are not deleted, but are retained in the global zone.
If PRODUCT was specified and NOFMID mode is in effect, FEATURE and PRODUCT entries are eligible to
be rejected.
• A FEATURE entry is eligible to be rejected if no FMIDs associated with the FEATURE match any FMID
in the GLOBALZONE entry. If even one FMID associated with the FEATURE exists in the GLOBALZONE
FMID list, the FEATURE entry will not be rejected.
Note: A FEATURE entry that does not contain an FMID subentry cannot be deleted with the REJECT
command. The UCLIN command must be used instead.
• A PRODUCT entry is eligible to be rejected if no FEATURE entries associated with the PRODUCT are
in the global zone. A PRODUCT is associated with a FEATURE when the FEATURE entry specifies that
PRODUCT on the PRODUCT subentry within the FEATURE entry. If even one FEATURE associated with
the PRODUCT exists in the global zone, the PRODUCT entry is not rejected.
If PRODUCT was not specified, or if any mode other than NOFMID is in effect, no PRODUCT or FEATURE
entries are rejected.
The PRODUCT operand has no effect on which SYSMOD entries will be rejected. This includes SYSMODs
that contain only FEATURE subentries.
• The associated SMPTLIB data sets, if the SYSMOD was packaged in RELFILE format. SMP/E determines
the number of data sets to delete from the FILES operand of the header MCS.
SMP/E locates the SMPTLIB data sets to be deleted by checking the following sources in the order
shown. If SMP/E finds one of the data sets, it assumes that all of the SMPTLIB data sets can be found
the same way.
1. If the SMPTLIB data sets are cataloged, they are deleted according to the catalog.
2. If there is an SMPTLIB DD statement, the data sets are deleted from the volumes specified on the DD
statement.
3. If there is an SMPTLIB DDDEF entry, the data sets are deleted from the volumes specified in the
DDDEF entry.
If the SMPTLIB data sets are not located by the catalog and there is no DD statement or DDDEF entry for
them, the SYSMOD is not rejected. If there is a DD statement or DDDEF entry but the data sets are not
found, SMP/E issues a warning message and continues REJECT processing for that SYSMOD.
Note: If any elements were packaged in either LKLIB or TXLIB format, no action is taken on those data
sets.
2. REJECT processing
Global zone
Update with exclusive enqueue.
SMPPTS
Update with exclusive enqueue.
DLIB zone
Read with shared enqueue.
Target zone
Read with shared enqueue.
Note:
a. The distribution zones are accessed in mass mode, select mode, and PURGE mode.
b. The target zones are accessed in mass mode and select mode, and in PURGE mode if the
TARGETZONE operand was specified.
3. Termination
All resources are freed.
This command helps you synchronize the service levels of different products when the products are
installed in different zones. It allows for the specification of target and DLIB zones that are defined
either in the same global zone or in different global zones. Specifically, REPORT CROSSZONE lists
conditional requisites that must be installed in certain zones because of SYSMODs that are installed in
other zones. Information about these requisites is provided in the Cross-Zone Requisite SYSMOD report.
The commands needed to install the requisites are written to the SMPPUNCH data set.
For example, suppose you have two versions of a product: one for z/OS and one for OS/390®. Each version
is installed on a different system and in different target and distribution zones. To keep the two versions
synchronized, the service for one version may specify service for the other version as a conditional
requisite. However, because the versions are not in the same target or distribution zones, neither zone
contains information about conditional requisites defined in the other zone. Therefore, SMP/E cannot use
the information to keep the two versions synchronized. Instead, you can use the REPORT CROSSZONE
command to obtain a summary of the requisite information and have SMP/E generate the commands
needed to install the requisites into the appropriate zones.
Syntax
CROSSZONE REPORT Command
REPORT CROSSZONE
ZONES ( zone )
(csidsn,zone)
ZONESET(zoneset)
,
FORZONE( zone )
DLIBZONE , NOPUNCH
TARGETZONE
FORFMID( name )
Operands
CROSSZONE
requests a report about cross-zone requisites.
CROSSZONE is a required operand for the REPORT CROSSZONE command.
Note: CROSSZONE is mutually exclusive with CALLLIBS, ERRSYSMODS, SOURCEID, and SYSMODS.
DLIBZONE
indicates that SMP/E should report only on SYSMODs accepted into the distribution zones identified
by the ZONESET or ZONES operand.
DLIBZONE is required if the ZONESET or ZONES operand being used contains both target and
distribution zones, because the REPORT CROSSZONE command processes only zones of the same
type. It is not required when the ZONESET or ZONES operand identifies only distribution zones.
Note:
1. DLIBZONE is allowed only on the REPORT CROSSZONE command.
2. DLIBZONE is mutually exclusive with TARGETZONE.
3. DLIBZONE can also be specified as DZONE.
FORFMID
specifies the FMIDs used to limit which SYSMODs are included in the report. This list can include
FMIDs, FMIDSET names, or both.
If FORFMID is specified, SMP/E lists only the SYSMODs that are needed for these FMIDs.
If FORFMID is not specified, SMP/E reports on requisites based on the CIFREQ subentries in the
SYSMOD entries for all the functions in the ZONESET zones.
Note: CIFREQ subentries list requisites for the function that were specified on ++IF statements in
other SYSMODs. They also list the causer SYSMOD that contained the ++IF statement. For more
information about CIFREQ subentries and conditional requisites, see “Conditional requisites (IFREQ)”
on page 31.
FORZONE
specifies the zones to be reported on. SMP/E lists only the SYSMODs that are needed in these zones.
All these zones must be part of the ZONESET.
If FORZONE is not specified, SMP/E reports on requisites for all the zones identified by the ZONESET
operand.
Note:
1. FORZONE is allowed only on the REPORT CROSSZONE command.
2. FORZONE is mutually exclusive with ZONES.
NOPUNCH
indicates that SMP/E should not write any output to SMPPUNCH. If NOPUNCH is not specified, JCL or
commands are written to SMPPUNCH. This output contains JCL or commands that can be used for
further processing.
Note: The output produced by REPORT CROSSZONE processing contains commands for installing
cross-zone requisites.
TARGETZONE
indicates that SMP/E should report only on SYSMODs applied to the target zones identified by the
ZONESET or ZONES operand. TARGETZONE is required if the ZONESET or ZONES operand being used
contains both target and distribution zones, because the REPORT CROSSZONE command processes
only zones of the same type. It is not required when the ZONESET or ZONES operand identifies only
target zones.
Note:
1. TARGETZONE is allowed only on the REPORT CROSSZONE command.
2. TARGETZONE is mutually exclusive with DLIBZONE.
3. TARGETZONE can also be specified as TZONE.
ZONES
a zone name, ZONESET or a global zone CSI data set name and zone (or ZONESET). A global zone CSI
data set name and zone can be specified to compare zones defined in a different global zone. SMP/E
will check each specified zone for information on conditional requisites that have been installed.
Note:
1. ZONES is mutually exclusive with ZONESET and FORZONE.
2. Either the ZONES or ZONESET operand is required for the REPORT CROSSZONE command.'
3. The maximum number of global zone CSIs that can be processed by a single REPORT CROSSZONE
command is 253.
ZONESET
is the name of the global zone ZONESET entry that is used to report on cross-zone requisites.
SMP/E checks all the zones in the ZONESET for information on conditional requisites that have been
installed.
Note:
1. Either the ZONESET or ZONES operand is required for the REPORT CROSSZONE command.
2. ZONESET is mutually exclusive with ZONES.
For more information about defining a ZONESET, see z/OS SMP/E Reference.
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according to
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used
to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always
required for a zone.
Usage notes
If you use the REPORT CROSSZONE command, keep these considerations in mind:
• After installing the requisite SYSMODs identified by the REPORT CROSSZONE command, you should run
the command again to see whether that installation causes any new requisites. You should repeat this
process until there are no new requisites.
• You should always check the Cross-Zone Requisite SYSMOD report for unreceived requisites before
using the SMPPUNCH output from REPORT CROSSZONE. You may want to receive these SYSMODs in
order to run the commands in SMPPUNCH, or you may prefer to delete them from SMPPUNCH and
receive them later.
Output
Output from the REPORT CROSSZONE command includes reports, as well as data written to SMPPUNCH.
Reports
The following reports are produced during REPORT CROSSZONE processing:
• Cross-Zone Requisite SYSMOD report
• File Allocation report
See Chapter 34, “SMP/E reports,” on page 461 for descriptions of these reports.
SMPPUNCH output
To make it easier for you to install cross-zone requisite SYSMODs, SMP/E writes the necessary commands
to the SMPPUNCH data set: SET BOUNDARY, RESETRC, and either ACCEPT (for distribution zones) or
APPLY (for target zones). Nothing is written to SMPPUNCH for a specified zone in the following cases:
• There are no requisite SYSMODs for the specified zone.
• NOPUNCH was specified on the REPORT CROSSZONE command.
When a global zone CSI data set name is specified for one or more zones on the ZONES operand, SMPCSI
and SMPCNTL DD statements will be included in the SMPPUNCH output. These DD statements will appear
before the SET BDY command and must be copied into the users job before the output can be used. When
all of the zones in the report are defined in the SET global zone, the SMPCSI and SMPCNTL DD statements
will not appear in the SMPPUNCH output.
Figure 10 on page 298 shows the format of the SMPPUNCH output from the REPORT CROSSZONE
command.
globalcsi1
the global CSI data set in which zone1 is defined.
globalcsi2
the global CSI data set in which zone3 is defined.
zone1, zone3
are the names of the zones where the requisites are to be installed.
command
is the command to be used to install the requisites: ACCEPT for a distribution zone, and APPLY for a
target zone.
sysmod1, sysmod3
are the IDs of the requisite SYSMODS.
sysmod2, sysmod4
are the IDs of the SYSMODs that contained the CIFREQ data (the causer SYSMODs).
zone2, zone4
are the names of the zones that contained the CIFREQ data (the causer zones).
Note:
1. If there is more than one causer SYSMOD or causer zone for a selected SYSMOD, a comment is written
for each of the causers. These comments refer to the previous SYSMOD in the select list.
2. If there are requisites for more than one zone, a set of commands is written for each zone.
3. You can edit the SMPPUNCH output before using it. For example, you may want to install SYSMODs for
only one of the zones, or you may want to delete SYSMODs that have not yet been received.
Examples
The following examples are provided to help you use the REPORT CROSSZONE command.
You have also received the following SYSMODs but have not yet applied or accepted them:
UZ00023
UZ00024
UZ00027
Assume some of the PTFs specify conditional requisites. Table 20 on page 300 shows some of the
statements in these PTFs (causer SYSMODs), along with the zones where they were installed (causer
zones), the functions they are applicable to (causer FMIDs), the functions specified on the ++IF
statements (IFREQ FMIDs), the zones where these functions are installed (IFREQ zones), and the
requisites.
The dependent functions are different versions of the same product. They must be synchronized with
each other and with their base functions. You can set up two ZONESETs (ZOSZSET and S390) to help
keep these products at the same service level. Table 21 on page 300 shows the zones contained in each
ZONESET:
ZOSZSET BASEZOS
PRODZOS
PROD90
S390 OS390
PROD90
PRODZOS
Assume that you want to find out whether there are any cross-zone requisites for the zones in ZONESET
ZOSZSET. You can use the following commands:
SMP/E checks zones BASEZOS, PRODZOS, and PROD90 because they are the zones defined in ZONESET
ZOSZSET. Because FORFMID was not specified, SMP/E checks the SYSMOD entries for all the functions
installed in those zones. It makes a list of the CIFREQ subentries for all the functions. Then, because
FORZONE was not specified, SMP/E reports on requisites needed in all the zones in the ZONESET.
Figure 11 on page 301 shows an example of the report SMP/E produces:
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST
OUTPUT
ZONE
REQUIRES CAUSER
NAME FMID SYSMOD RECEIVED SYSMOD FMID ZONE
BASEZOS NONE
SMP/E also writes the commands shown in Figure 12 on page 302 to the SMPPUNCH data set:
BYPASS(HOLDSYSTEM
CHECK
GROUP.
After getting the Cross-Zone Requisite SYSMOD report, you can take these actions:
1. Receive SYSMOD UZ00028 so you can install it in the PROD90 zone.
2. Use the SMPPUNCH output to install the requisite SYSMODs listed in the report.
3. Rerun the REPORT CROSSZONE command for the same ZONESET (ZOSZSET) to check for any
additional requisites, and install any that are found.
4. Run the REPORT CROSSZONE command for the S390 ZONESET to keep zones PROD90 and OS390
synchronized.
5. Receive and install SYSMODs as needed for the zones in ZONESET S390.
6. Rerun the REPORT CROSSZONE command for S390, and install additional SYSMODs as needed.
SMP/E checks zones BASEZOS, PRODZOS and PROD90 because they are the specified zones. Because
FORFMID was not specified, SMP/E checks the SYSMOD entries for all the functions installed in those
zones. It makes a list of the CIFREQ subentries for all the functions. Then, because FORZONE was not
specified, SMP/E reports on requisites that are needed in all three zones.
Figure 13 on page 303 shows an example of the report SMP/E produces. It includes the global zone CSI
data set name when it was specified for zones on the ZONES operand. A footnote and key notation are
used where a footnote is placed next to a zone name in the report and an entry for the CSI data set name
is included in a key at the bottom of the report. If all of the zones in the report are defined in the SET TO
global zone, the CSI global zone names are not included in the report.
PAGE nnnn – NOW SET TO xxxxxx ZONE nnnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST OUTPUT
BASEZOS(1) NONE
SMP/E also writes the commands shown in Figure 14 on page 303 to the SMPPUNCH data set. Since the
reported zones are defined in separate global CSI data sets, the SMPCSI and SMPCNTL DD statements
are included in the SMPPUNCH output. These DD statements must be copied to your job before the
output is used.
Processing
The REPORT CROSSZONE command checks across zones identified by the ZONESET or ZONES operand
for conditional requisites that need to be installed.
SMP/E first verifies that each zone identified by the ZONESET or ZONES operand is defined in the global
zone and that all zones specified on the FORZONE operand are identified in the ZONESET operand. Then
SMP/E determines which zones will be used.
• If TZONE was specified, SMP/E checks that the ZONESET or ZONES operand contains target zones and
uses those target zones to process the REPORT CROSSZONE command.
• If DZONE was specified, SMP/E checks that the ZONESET or ZONES operand contains distribution zones
and uses those distribution zones to process the REPORT CROSSZONE command.
• If neither DZONE nor TZONE was specified, SMP/E checks that all the zones in the ZONESET or ZONES
operand are the same type. If so, it uses all the zones in the ZONESET or ZONES operand to process the
REPORT CROSSZONE command.
The zones are opened for read access. If NOPUNCH was not specified, the SMPPUNCH data set is also
opened. In addition, if FORFMID was specified, the FMIDs and FMIDSETs specified on the FORFMID
operand are used to create a list of FMIDs to be reported on.
Next, SMP/E makes a list of all the CIFREQ subentries contained in the zones being used for this REPORT
CROSSZONE command. If the FORFMID operand was specified, SMP/E uses only the CIFREQ subentries
from SYSMOD entries for functions specified in the FMID list. Otherwise, it lists all the CIFREQ subentries.
Note: CIFREQ subentries are only in SYSMOD entries for functions. They list requisites for the function
that were specified on an ++IF statement in another SYSMOD. They also list the causer SYSMOD that
contained the ++IF statement. For more information about CIFREQ subentries and conditional requisites,
see “Conditional requisites (IFREQ)” on page 31.
SMP/E then checks the CIFREQ list and functions against each of the FORZONE zones (or against all of
the zones being used if FORZONE was not specified). If the function is installed in the zone (and has not
been deleted or superseded) and the causer SYSMOD is not installed there, SMP/E checks whether the
requisite is installed in the zone. For each requisite that is not installed, SMP/E writes information for
that requisite in the Cross-Zone Requisite SYSMOD report. In addition, commands to install the requisite
SYSMODs are written to the SMPPUNCH data set. SMP/E does this processing zone by zone until all the
zones to be reported on have been checked. It then notes which of the requisites have not yet been
received and writes this information to the SMPRPT data set as well. Finally, it closes all the data sets.
If any of the following occurs, SMP/E issues an error message, and REPORT CROSSZONE processing fails:
• A zoneset or zone specified in the ZONES or ZONESET operand is not defined in the global zone.
• The zone type in the ZONEINDEX subentry does not match the zone type in the zone definition entry.
• The zones specified by the ZONES or ZONESET operand are not all the same type, and neither DZONE
nor TZONE was specified.
• TZONE was specified, but there were no target zones specified by the ZONES or ZONESET operand.
• DZONE was specified, but there were no distribution zones specified by the ZONES or ZONESET
operand.
• A zone on the FORZONE operand is not among the zones identified by the ZONESET operand.
• TZONE was specified, and a zone on the FORZONE operand is not a target zone.
• DZONE was specified, and a zone on the FORZONE operand is not a distribution zone.
• NOPUNCH was not specified, but there is no definition for the SMPPUNCH data set.
1. Initialization
Global zone (multiple as required) Read without enqueue.
Target zones (as required) Read without enqueue.
DLIB zones (as required) Read without enqueue.
2. Processing
Global zone (multiple as required) Read with shared enqueue.
Target zones (as required) Read with shared enqueue.
DLIB zones (as required) Read with shared enqueue.
3. Termination
All resources are freed.
This command helps you determine whether any SYSMODs you have already processed are now
exception SYSMODs. It also helps you determine whether any resolving SYSMODs are available for held
SYSMODs.
• For target and distribution zones, REPORT ERRSYSMODS lists installed SYSMODs for which ++HOLD
statements were subsequently received and whose error reason IDs have not yet been resolved.
• For the global zone, REPORT ERRSYSMODS lists received SYSMODs for which ++HOLD statements with
error reason IDs have been received.
Information about the held SYSMODs and any resolving SYSMODs is provided in the Exception SYSMOD
report. The commands needed to install the resolving SYSMODs are written to the SMPPUNCH data set.
Syntax
ERRSYSMODS REPORT Command
,
ENDDATE( mm dd yy ) ,
FORFMID( name )
•
NOPUNCH
Operands
BEGINDATE
indicates that you should use ++HOLD statements received by SMP/E on or after the specified date
for REPORT ERRSYSMODS processing. BEGINDATE can be used alone or with ENDDATE to define the
range of the ++HOLD statements to be used.
The date is specified as mm dd yy, where mm is the month (01–12), dd is the day (01–31), and yy is
the year (00–99). Blanks separate the month, day, and year.
Note:
1. BEGINDATE is allowed only on the REPORT ERRSYSMODS command.
2. If BEGINDATE is specified without ENDDATE, SMP/E uses either the DATE parameter on the
GIMSMP EXEC statement or the current date as the end date.
ENDDATE
indicates that you should use ++HOLD statements received by SMP/E on or before the specified date
for REPORT ERRSYSMODS processing. ENDDATE can be used alone or with BEGINDATE to define the
range of the ++HOLD statements to be used.
The date is specified as mm dd yy, where mm is the month (01–12), dd is the day (01–31), and yy is
the year (00–99). Blanks separate the month, day, and year.
Note:
1. ENDDATE is only allowed on the REPORT ERRSYSMODS command.
2. If ENDDATE is specified without BEGINDATE, SMP/E processes all HOLDDATA processed by SMP/E
on or before the specified end date.
ERRSYSMODS
requests a report about SYSMODs for which ++HOLD modification control statements with error
reason IDs have been received.
• For target and distribution zones, SMP/E reports on SYSMODs that meet all these conditions:
– They have been installed in any of the specified target and distribution zones. (They are not
installed in error and have not been deleted.)
– They are in HOLDERROR status in the global zone. (++HOLD statements with error reason IDs
have been received for the SYSMODs.)
– The error reason IDs are not resolved. (That is, the error reason ID has not been installed, and no
SYSMODs that supersede the error reason ID have been installed.)
• For the global zone, SMP/E reports on SYSMODs that meet these conditions:
– They have been received.
– They are in HOLDERROR status in the global zone. (++HOLD statements with error reason IDs
have been received for the SYSMODs.)
ERRSYSMODS is a required operand for the REPORT ERRSYSMODS command.
Note:
1. ERRSYSMODS is mutually exclusive with CALLLIBS, CROSSZONE, SOURCEID, and SYSMODS.
2. ERRSYSMODS can also be specified as ERRSYS.
FORFMID
specifies the FMIDs used to limit which SYSMODs are included in the report. This list can include
FMIDs, FMIDSET names, or both.
If FORFMID is specified, SMP/E lists only the SYSMODs that have ++HOLD statements with these
FMIDs.
If FORFMID is not specified, SMP/E reports on all the affected SYSMODs in the specified zones.
NOPUNCH
indicates that SMP/E should not write any output to SMPPUNCH. If NOPUNCH is not specified, JCL or
commands are written to SMPPUNCH. This output contains JCL or commands that can be used for
further processing.
Note: The output produced by REPORT ERRSYSMODS processing contains commands for installing
SYSMODs that resolve the error hold reason IDs for exception SYSMODs.
ZONES
specifies which zones SMP/E should report on. This list can include zone names, ZONESET names, or
both. You can specify the global zone, target zones, distribution zones, or any combination of these.
SMP/E produces a separate report for each zone it checks.
For each specified value, SMP/E first checks for a ZONESET with the same name. If none is found,
SMP/E checks for a zone with the same name. For example, suppose you have a ZONESET named
SYS1 and a zone named SYS1. If you specify SYS1 on this operand, SMP/E assumes you want to
use the zones defined in ZONESET SYS1 (which might or might not include zone SYS1), and not the
individual zone SYS1.
ZONES is a required operand on the REPORT ERRSYSMODS command.
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according to
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used
to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always
required for a zone.
Usage notes
After you run REPORT ERRSYSMODS for target or distribution zones, the Exception SYSMOD report
may indicate that some of the resolving SYSMODs are themselves held. In this case, the Exception
SYSMOD report will also show any resolving SYSMODs for the additional holds. If you want to install the
additional resolving SYSMODs indicated in the report, you can use the SMPPUNCH output produced for
the applicable target or distribution zones as a starting point for creating the necessary SMP/E commands.
Output
Output from the REPORT ERRSYSMODS command includes reports, as well as data written to
SMPPUNCH.
Reports
The following reports are produced during REPORT ERRSYSMODS processing:
• Exception SYSMOD report
• File Allocation report
See Chapter 34, “SMP/E reports,” on page 461 for descriptions of these reports.
SMPPUNCH output
To make it easier for you to install resolving SYSMODs for exception SYSMODs, SMP/E writes the
necessary commands to the SMPPUNCH data set: SET BOUNDARY, RECEIVE (for unreceived resolving
SYSMODs), RESETRC, and either ACCEPT (for distribution zones) or APPLY (for target zones). Nothing is
written to SMPPUNCH for a specified zone in the following cases:
• There are no exception SYSMODs for the specified zone.
• There are no resolving SYSMODs for any of the exception SYSMODs or all resolving SYSMODs identified
are held.
• The specified zone is the global zone.
• NOPUNCH was specified on the REPORT ERRSYSMODS command.
Figure 15 on page 310 shows the format of the SMPPUNCH output from the REPORT ERRSYSMODS
command.
zone
is the name of the target or distribution zone in which the exception SYSMOD is currently installed.
command
is the command to be used to install the resolving SYSMODs: ACCEPT for a distribution zone, APPLY
for a target zone.
sysmod0
is the ID of a resolving SYSMOD that has not been received.
sysmod1
is the ID of a resolving SYSMOD for the error reason ID.
A SYSMOD is commented out in the following cases:
• The command is ACCEPT and the SYSMOD is an APAR fix. This is to avoid accepting APAR fixes into
a distribution zone.
• The SYSMOD has not been received.
• The SYSMOD is held for an error reason ID other than ERREL.
• The SYSMOD was already listed in the SMPPUNCH output.
• The SYSMOD is a function. This is to avoid inadvertently installing a function.
type
is the SYSMOD type of the resolving SYSMOD.
reason
is the APAR that caused the exception SYSMOD to be held.
sysmod2
is the ID of the exception SYSMOD.
sysmod3
is the FMID of the function to which the exception SYSMOD applies.
You can edit the SMPPUNCH output before using it. For example, if you need to receive a resolving
SYSMOD, you can remove the comments from the RECEIVE command, after verifying the SYSMODs in the
SELECT list.
PAGE 0001 - NOW SET TO GLOBAL ZONE DATE 08/02/07 TIME 16:08:43 SMP/E 25.00 SMPRPT OUTPUT
HMJ4102 HMJ4102 AN78422 AN78422 GOOD YES HIPER IPL,FAILS WITH E37 ABEND
UW31189 HELD YES
UW32001 GOOD YES
AN80332 AN80332 GOOD YES HIPER DAL,PRV,FUL
UW37822 GOOD YES
AN80501 UW38922 HELD YES HIPER PRV
HQA5140 HQA5140 AN90012 AN90012 GOOD YES HIPER DAL
UW42146 HELD YES
--------------------------------------------------------------------------------------------------------
PAGE 0002 - NOW SET TO GLOBAL ZONE DATE 08/02/07 TIME 16:08:43 SMP/E 25.00 SMPRPT OUTPUT
--------------------------------------------------------------------------------------------------------
PAGE 0003 - NOW SET TO GLOBAL ZONE DATE 08/02/07 TIME 16:08:43 SMP/E 25.00 SMPRPT OUTPUT
DZONE1 HMJ4120 6 12
HQA5140 2 3
SMP/E also writes the commands shown in Figure 17 on page 312 to the SMPPUNCH data set:
After getting the Exception SYSMOD report, you can take these actions:
1. Examine the SMPPUNCH output and edit as necessary.
2. Use the SMPPUNCH output to install the resolving SYSMODs in DZONE1.
Processing
The REPORT ERRSYSMODS command checks the zones specified on the ZONES operand to determine
whether SYSMODs that have been processed are now exception SYSMODs.
SMP/E first verifies that each target and distribution zone specified on the ZONES operand is defined in
the global zone. The zones and ZONESETs specified on the ZONES operand (including the global zone)
are used to create a list of zones to be reported on. For each specified value, SMP/E first checks for a
ZONESET with the same name. If none is found, SMP/E checks for a zone with the same name.
The zones are opened for read access. If NOPUNCH was not specified, the SMPPUNCH data set is also
opened. In addition, if FORFMID was specified, the FMIDs and FMIDSETs specified on the FORFMID
operand are used to create a list of FMIDs to be reported on.
Next, SMP/E makes a list of all the HOLDDATA entries for error reason IDs. If the FORFMID operand was
specified, this HOLDERROR list contains only HOLDDATA entries containing ++HOLD statements with an
FMID value that is specified in the FMID list. If BEGINDATE was specified, the HOLDERROR list contains
entries only for HOLDDATA received by SMP/E on or after the specified date. Likewise, if ENDDATE was
specified, the HOLDERROR list contains entries only for HOLDDATA received by SMP/E on or before the
specified date. If neither BEGINDATE or ENDDATE was specified, the HOLDERROR list contains all the
HOLDDATA entries.
For each zone in the zone list, SMP/E processes the HOLDERROR list to determine the SYSMODs to be
reported on.
• For target and distribution zones, SMP/E reports on SYSMODs that meet these conditions:
– They have been installed in any of the specified target and distribution zones. (They are not installed
in error and have not been deleted.)
– They are in HOLDERROR status in the global zone. (++HOLD statements with error reason IDs have
been received for the SYSMODs.)
– The error reason ID is not resolved. (That is, the error reason ID has not been installed, and no
SYSMODs that supersede the error reason ID have been installed.)
• For the global zone, SMP/E reports on SYSMODs that meet these conditions:
– They have been received.
– They are in HOLDERROR status in the global zone. (++HOLD statements with error reason IDs have
been received for the SYSMODs.)
After determining which SYSMODs to report on for the specified zone, SMP/E checks the global zone
for any resolving SYSMODs. A SYSMOD resolves an error reason ID if it either matches or specifically
supersedes that reason ID. When Enhanced HOLDDATA is used, a resolving SYSMOD can also be
identified by FIX information in the COMMENT operand of the ++HOLD statement. For each exception
SYSMOD in the specified zone, SMP/E writes information about that SYSMOD and any resolving SYSMODs
in the Exception SYSMOD report. In addition, for target and distribution zones, commands to install the
resolving SYSMODs are written to the SMPPUNCH data set. SMP/E does this processing zone by zone until
all the zones to be reported on have been checked. Then SMP/E closes all the data sets.
If any of the following occurs, SMP/E issues an error message, and REPORT ERRSYSMODS processing
fails:
• A zone, ZONESET, or zone in a ZONESET specified on the ZONES operand (other than the global zone) is
not defined in the global zone.
• NOPUNCH was not specified, but there is no definition for the SMPPUNCH data set.
• The date range specified by the BEGINDATE and ENDDATE operands is invalid (for example, if the
beginning date is later than the ending date).
This command helps you determine whether any FIXCAT APARs exist that are applicable and have
not yet been installed, and whether any SYSMODs are available to satisfy the missing FIXCAT APARs.
More specifically, the REPORT MISSINGFIX command reports on SYSMODs that have been applied or
accepted for which subsequent FIXCAT HOLDs have been received and whose reason IDs have not yet
been resolved. The actual FIXCAT HOLDs analyzed during report processing are determined by the fix
categories of interest specified by the user.
Syntax
MISSINGFIX REPORT Command
,
, ,
•
NOPUNCH
Operands
MISSINGFIX
requests a report about missing FIXCAT APARs. That is, fixes for APARs that have an applicable and
interesting fix category value.
MISSINGFIX is a required operand for the REPORT MISSINGFIX command.
FIXCAT
identifies the list of fix categories of interest to be reported on. This list determines which missing
FIXCAT APARs are to be included in the report. SMP/E reports only the missing FIXCAT APARs
identified by FIXCAT type ++HOLD statements with these fix categories.
The values specified on the FIXCAT operand will override the list of values, if any, defined by the
FIXCAT subentry in the active OPTIONS entry.
Fix category values can be 1 to 64 characters in length and contain any nonblank character in the
range X'41' - X'FE'except single quotation marks, commas, left parentheses, and right parentheses.
The value can be specified in one of two ways:
• Explicitly, by fully specifying a particular fix category value, such as IBM.Device.zIIP, for example. In
this case, all HOLDDATA associated with this fix category will be applicable to command processing.
• Implicitly, by partially specifying a fix category value using any number of asterisks (*) as global
characters and percent signs (%) as placeholders.
– A single asterisk indicates that zero or more characters can occupy that position. For example,
IBM.Device* implies that all HOLDDATA associated with a fix category that begins with the
character string IBM.Device are applicable *z/OS implies that all HOLDDATA associated with a
fix category that ends with the character string z/OS are applicable. Finally, IBM*z/OS implies that
all HOLDDATA associated with a fix category that begins with the character string IBM and ends
with the character string z/OS are applicable.
– A single percent sign indicates that any one single character can occupy that position. For
example, IBM.Device.20%4 implies that HOLDDATA associated with any of the following fix
categories is applicable: IBM.Device.2084, IBM.Device.2094, and IBM.Device.20t4. HOLDDATA
associated with the fix category IBM.Device.20914, however, is not applicable.
Fix category values can contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified Fix category value. For example, a specified value
of IBM.FUNCTION.HEALTHCHECKER matches the value of IBM.Function.HealthChecker.
The following examples are acceptable fix category values:
IBM.Device.zIIP
*
IBM.Function*
IBM.Device.20%4.*
IBM.HealthChecker
FORFMID
specifies the FMIDs used to limit which missing FIXCAT APARs are included in the report. This list
can include FMIDs, FMIDSET names, or both. If FORFMID is specified, SMP/E reports only the missing
APARs identified by ++HOLD statements with these FMIDs. If FORFMID is not specified, SMP/E
reports all the missing FIXCAT APARs in the specified zones.
NOPUNCH
indicates that SMP/E should not write any output to SMPPUNCH. If NOPUNCH is not specified, sample
SMP/E commands for installing the missing SYSMODs are written to SMPPUNCH. In addition, a sample
RECEIVE command is created for ordering and receiving resolving SYSMODs that are not found in the
global zone.
ZONES
specifies which zones SMP/E should report on. This list can include zone names, ZONESET names, or
both. You can specify target zones, distribution zones, or any combination of these. SMP/E produces a
separate report for each zone it checks.
For each specified value, SMP/E first checks for a ZONESET with the same name. If none is found,
SMP/E checks for a zone with the same name.
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according to
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used
to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always
required for a zone.
Usage notes
After you run REPORT MISSINGFIX for target or distribution zones, the Missing FIXCAT SYSMOD report
might indicate that some of the resolving SYSMODs are held. This means one or more ERROR holds exists
for them. In this case, the second part of the Missing FIXCAT SYSMOD report will also show any resolving
SYSMODs for the additional holds. If you want to install the additional resolving SYSMODs indicated in the
report, you can use the SMPPUNCH output produced for the applicable target or distribution zones as a
starting point for creating the necessary SMP/E commands.
Output
Output from the REPORT MISSINGFIX command includes reports, as well as data written to SMPPUNCH.
Reports
The following reports are produced during REPORT MISSINGFIX processing:
• Missing FIXCAT SYSMOD Report
• File Allocation report
See Chapter 34, “SMP/E reports,” on page 461 for descriptions of these reports.
SMPPUNCH output
To make it easier for you to install resolving SYSMODs for exception SYSMODs, SMP/E writes the
necessary commands to the SMPPUNCH data set: SET BOUNDARY, RECEIVE (for unreceived resolving
SYSMODs), RESETRC, and either ACCEPT (for distribution zones) or APPLY (for target zones). Nothing is
written to SMPPUNCH for a specified zone in the following cases:
• There are no exception SYSMODs for the specified zone.
• There are no resolving SYSMODs for any of the exception SYSMODs or all resolving SYSMODs identified
are held.
• The specified zone is the global zone.
• NOPUNCH was specified on the REPORT MISSINGFIX command.
Figure 18 on page 317 shows the format of the SMPPUNCH output from the REPORT MISSINGFIX
command.
SET BDY(GLOBAL).
RECEIVE ORDER(
CONTENT(ALL)/*
CONTENT(PTFS(
aaaaaaa bbbbbbb ccccccc ddddddd
))
*/
ORDERSERVER(xxxxxxxx)
CLIENT(yyyyyy)
)
DELETEPKG.
SET BDY(tgtzone).
APPLY CHECK
SELECT(
/*fix category*/
eeeeeee
fffffff
)
BYPASS(HOLDSYSTEM)
GROUPEXTEND.
zone
is the name of the target or distribution zone in which the exception SYSMOD is currently installed.
command
is the command to be used to install the resolving SYSMODs: ACCEPT for a distribution zone, APPLY
for a target zone.
aaaaaaabbbbbbbccccccc
is the ID of a resolving SYSMOD that has not been received.
PAGE nnnn - NOW SET TO GLOBAL ZONE DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
IBM.Device.zIIP
HBB7730 PSP AA15968 HBB7730 UA27113 GOOD NO
AA16005 HBB7730 UA26475 GOOD NO
HRM7730 PSP AA16458 HRM7730 UA28236 GOOD NO
AA18772 HRM7730 ***NONE
IBM.Function.DataSharing.MVS/ESA
HBB7730 PSP AA13335 HBB7730 UA24231 GOOD NO
AA16416 HBB7730 UA26375 GOOD NO
AA16534 HBB7730 UA29059 HELD NO
UA30114 GOOD YES
AA16640 HBB7730 UA27891 GOOD NO
AA17188 HBB7730 UA29175 GOOD NO
IBM.HealthChecker
HBB7730 PSP AA15593 HBB7730 UA28094 GOOD NO
AA16687 HBB7730 UA27678 GOOD NO
HRF7730 PSP AA15290 HRF7730 UA26196 GOOD NO
AA17429 HRF7730 UA28412 GOOD NO
PAGE nnnn - NOW SET TO GLOBAL ZONE DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
MISSING FIXCAT SYSMOD REPORT FOR ZONE TGT - FIXES FOR HELD RESOLVING SYSMODS
SET BDY(GLOBAL). /*
*/.
RECEIVE ORDER(
CONTENT(ALL) /*
CONTENT(PTFS(
UA24231 UA26196 UA26375 UA26443 UA26741 UA26745 UA27033
UA27678 UA27861 UA27891 UA28084 UA28236 UA28412 UA29059
) )
*/
ORDERSERVER(SMPOSRVR) /* SPECIFY THE ORDERSERVER DDNAME. */
CLIENT (SMPCLNT ) /* SPECIFY THE CLIENT DDNAME. */
)
DELETEPKG.
SET BDY(tgtzone).
APPLY CHECK
SELECT(
/* IBM.Device.2094.z/OS */
UA26443
UA26741
UA26745
UA27033
UA27113
UA27861
UA28236
/*
IBM.Device.zIIP
*/
/* UA26745 */
/* UA27113 */
/* UA28236 */
/*
IBM.Function.DataSharing.MVS/ESA */
UA24231
UA26375
UA27891
UA29059
UA29175
/* IBM.HealthChecker */
UA26196
UA27678
UA28084
UA28412
)
BYPASS(HOLDSYSTEM)
GROUPEXTEND.
Processing
1. The REPORT MISSINGFIX command checks the zones specified on the ZONES operand to determine if
there are any missing fixes based on the fix categories of interest.
2. SMP/E then verifies that each target and distribution zone specified on the ZONES operand is defined
in the global zone as either a ZONESET entry or as a zone with a ZONEINDEX subentry. The zones
and ZONESETs specified on the ZONES operand (including the global zone) are used to create a list of
zones to be reported on. For each specified value, SMP/E first checks for a ZONESET with the same
name. If none is found, SMP/E checks for a zone with the same name. If a ZONESET and a zone both
exist with the same name, then the ZONESET is used.
Only target and dlib zones may be reported on. The global zone is ignored if specified within a
ZONESET.
3. If NOPUNCH was not specified, the SMPPUNCH data set is allocated. In addition, if FORFMID was
specified, the FMIDs and FMIDSETs specified on the FORFMID operand are used to create a list of
FMIDs to be reported on.
4. The purpose of the REPORT MISSINGFIX command is to analyze only the FIXCAT type HOLDDATA
that has a fix category of interest. If the FIXCAT operand was specified on the command, the values
specified are used as the active fix category list. Otherwise, the values in the FIXCAT subentry of the
active OPTIONS entry are used.
5. FIXCAT HOLDDATA entries identify APARs associated with one or more fix categories for a held
SYSMOD. SMP/E makes a list of FIXCAT type HOLDDATA entries to be reported on by analyzing all
FIXCAT type HOLDDATA entries found in the global zone. HOLDDATA entries will be considered for
the report if one or more of the entry's fix category values matches one or more category values in
the active interest list, and the FORFMID operand was not specified, or the FORFMID operand was
specified and the entry's FMID matches a value in the FMID list.
6. For each target or dlib zone in the zone list, SMP/E processes the list of FIXCAT type HOLDs to
determine which APARs to report as missing. For each FIXCAT type HOLD, SMP/E determines if the
held SYSMOD is installed in the target or dlib zone. If the held SYSMOD is installed, then SMP/E
determines if the APAR reason ID is installed or superseded. If the APAR SYSMOD is not installed or
superseded, then it is "missing" and included in the report.
7. After SMP/E identifies all missing APARs, SMP/E must then find in the global zone all SYSMODs that
may resolve the missing APAR. A resolving SYSMOD is the fixing PTF identified by the RESOLVER
operand on the FIXCAT ++HOLD statement (if specified), and any SYSMOD in the global zone that
supersedes the missing APAR. SMP/E includes each resolving SYSMOD it finds in the report.
In addition, for each resolving SYSMOD, SMP/E determines if the SYSMOD is received in the global
zone and if it is held for one or more ERRORs. If a SYSMOD entry exists in the global zone and the entry
is not in Error status, then SMP/E considers the resolving SYSMOD as received and reports it as such.
If the SYSMOD has one or more HOLDERR subentries in the global zone, SMP/E reports its status as
HELD. Otherwise, SMP/E reports SYSMOD status as GOOD.
8. If any resolving SYSMODs are reported with a status of HELD, SMP/E produces the second part of the
Missing FIXCAT SYSMOD reportt, Fixes for Held Resolving SYSMODs.
More specifically, SMP/E reports each unique ERROR HOLD for the held resolving SYSMODs (each
unique APAR). For each ERROR HOLD, SMP/E must find in the global zone all SYSMODs that may
resolve the ERROR HOLD. Resolving SYSMODs are the fixing PTF identified by the FIX operand in the
SMRTDATA of the ++HOLD ERROR statement (if specified), and any SYSMOD in the global zone that
supersedes the ERROR HOLD reason ID. SMP/E includes each resolving SYSMOD found in the report.
In addition, for each resolving SYSMOD, SMP/E determines if the SYSMOD is received in the global
zone and if it is also held for one or more ERRORs. If a SYSMOD entry exists in the global zone and the
entry is not in Error status, then the resolving SYSMOD is considered received and reported as such. If
the SYSMOD has one or more HOLDERR subentries in the global zone, then its status in the report is
HELD. Otherwise, its status in the report is GOOD. If a resolving SYSMOD is reported with a status of
HELD, then it too will be reported as a HELD SYSMOD in this part 2 of the report.
9. After all reports are produced and if the NOPUNCH operand is NOT specified, then SMP/E generates the
sample commands and writes them to the SMPPUNCH data set.
This command helps you determine which source IDs have been assigned to SYSMODs in a given zone or
ZONESET.
Information about these source IDs is provided in the SOURCEID report. The commands needed to list
the entries for SYSMODs associated with these source IDs are written to the SMPPUNCH data set.
Syntax
SOURCEID REPORT Command
,
•
NOPUNCH
Operands
NOPUNCH
indicates that SMP/E should not write any output to SMPPUNCH. If NOPUNCH is not specified, JCL or
commands are written to SMPPUNCH. This output contains JCL or commands that can be used for
further processing.
Note: The output produced by REPORT SOURCEID processing contains commands for listing
SYSMODs associated with the source IDs that were found in the specified zones.
SOURCEID
requests a report listing all the source IDs assigned to SYSMODs in a given zone or ZONESET.
SOURCEID is a required operand for the REPORT SOURCEID command.
Note: SOURCEID is mutually exclusive with CALLLIBS, CROSSZONE, ERRSYSMODS, and SYSMODS.
SYSMODIDS
indicates that in the SOURCEID report, SMP/E should also include the IDs of the SYSMODs to which
each source ID is assigned.
If SYSMODIDS is not specified, the SOURCEID report contains the source IDS assigned to SYSMODs in
the zones being reported on, but not the SYSMOD IDs associated with those source IDS.
Note: SYSMODIDS is allowed only on the REPORT SOURCEID command.
ZONES
specifies which zones SMP/E should report on. This list can include zone names, ZONESET names, or
both. You can specify the global zone, target zones, distribution zones, or any combination of these.
SMP/E produces a separate report for each zone it checks.
For each specified value, SMP/E first checks for a ZONESET with the same name. If none is found,
SMP/E checks for a zone with the same name. For example, suppose you have a ZONESET named
ZOSZSET and a zone named ZOSZSET. If you specify ZOSZSET on this operand, SMP/E assumes
you want to use the zones defined in ZONESET ZOSZSET (which might or might not include zone
ZOSZSET), and not the individual zone ZOSZSET.
ZONES is a required operand on the REPORT SOURCEID command.
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according to
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statementscan be used
to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always
required for a zone.
Output
Output from the REPORT SOURCEID command includes reports, as well as data written to SMPPUNCH.
Reports
The following reports are produced during REPORT SOURCEID processing:
• SOURCEID report
• File Allocation report
See Chapter 34, “SMP/E reports,” on page 461 for descriptions of these reports.
SMPPUNCH output
To make it easier for you to list the SYSMODs associated with the SOURCEIDs named in the SOURCEID
report, SMP/E writes the necessary commands to the SMPPUNCH data set: SET BOUNDARY, RESETRC,
and LIST SYSMOD SOURCEID(…). Nothing is written to SMPPUNCH for a specified zone in the following
cases:
• There are no SYSMOD entries in the zone.
• There are no source IDs assigned to SYSMODs in the zone.
• NOPUNCH was specified on the REPORT SOURCEID command.
Figure 22 on page 324 shows the format of the SMPPUNCH output from the REPORT SOURCEID
command.
SET BDY(zonename).
RESETRC.
LIST SYSMOD SOURCEID(
sourceid
sourceid
).
SET BDY(zonename).
RESETRC.
LIST SYSMOD SOURCEID(
sourceid
sourceid
).
zonename
is the name of a zone specified on the ZONES operand as an individual zone or a member of a
ZONESET.
sourceid
is the source ID assigned to a SYSMOD in the specified zone.
You can edit the SMPPUNCH output before using it.
Examples
The following examples are provided to help you use the REPORT SOURCEID command:
SET BDY(GLOBAL).
REPORT SOURCEID
ZONES(TGT1)
SYSMODIDS.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST
OUTPUT
SMP/E also writes the commands shown in Figure 24 on page 325 to the SMPPUNCH data set:
SET BDY(TGT1).
RESETRC.
LIST SYSMOD SOURCEID(
PUT0703
SMCREC
).
Figure 24. Example of SMPPUNCH output for REPORT SOURCEID (SYSMODIDS operand specified)
SET BDY(GLOBAL).
REPORT SOURCEID
ZONES(TGT2).
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST
OUTPUT
________________________SOURCEIDS_________________________
SMP/E also writes the commands shown in Figure 26 on page 326 to the SMPPUNCH data set:
SET BDY(TGT2).
RESETRC.
LIST SYSMOD SOURCEID(
PUT0606
PUT0607
PUT0608
PUT0701
PUT0702
PUT0703
PUT0704
).
Figure 26. Example of SMPPUNCH output for REPORT SOURCEID (SYSMODIDS operand not specified)
SET BDY(GLOBAL).
REPORT SOURCEID
ZONES(DLB3, MYPROD3).
SMP/E writes one report for each zone specified by the ZONES operand. Even though DLB3 is specified
individually and also included by ZONESET MYPROD3, it is reported on only once.
Figure 27 on page 327 shows examples of the reports SMP/E would write for DLB3 and TGT3:
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST
OUTPUT
________________________SOURCEIDS_________________________
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST
OUTPUT
________________________SOURCEIDS_________________________
SMP/E also writes the commands shown in Figure 28 on page 327 to the SMPPUNCH data set:
SET BDY(DLB3).
RESETRC.
LIST SYSMOD SOURCEID(
PUT0606
PUT0607
PUT0608
PUT0701
PUT0702
PUT0703
PUT0704
).
SET BDY(TGT3).
RESETRC.
LIST SYSMOD SOURCEID(
PUT0606
PUT0607
PUT0608
PUT0701
PUT0702
).
Figure 28. Example of SMPPUNCH output for REPORT SOURCEID (ZONES operand specified)
Processing
The REPORT SOURCEID command checks the SYSMOD entries in a zone and reports on any source IDs
found in those entries. The resulting output can be used to list the SYSMOD entries associated with the
source IDs that were found.
SMP/E first verifies that each target and distribution zone specified on the ZONES operand is defined in
the global zone. The zones and ZONESETs specified on the ZONES operand (including the global zone)
are used to create a list of zones to be reported on. For each specified value, SMP/E first checks for a
ZONESET with the same name. If none is found, SMP/E checks for a zone with the same name. If a zone is
specified separately and is also part of a ZONESET, it is only reported on once.
The zones are opened for read access. If NOPUNCH was not specified, the SMPPUNCH data set is also
opened.
For each zone to be reported on, SMP/E checks all the SYSMOD entries in that zone to see if they contain
source IDs.
• For each SYSMOD entry containing a source ID, SMP/E saves the SOURCEID value and the SYSMOD ID.
• If a SYSMOD entry contains multiple source IDs, SMP/E saves all its SOURCEID values. It also saves an
indicator so the SOURCEID report can note that the SYSMOD has multiple source IDs.
• If a SYSMOD is in error, it is not considered installed. As a result, SMP/E ignores any source IDs
associated with that SYSMOD.
SMP/E then writes a SOURCEID report for each zone specified by the ZONES operand.
• If SYSMODIDS was specified on the REPORT SOURCEID command, the report includes the IDs of the
SYSMODs associated with each SOURCEID value found in the zone.
• If SYSMODIDS was not specified on the REPORT SOURCEID command, the report includes all the
SOURCEID values found in the zone, but not the IDs of the SYSMODs associated with those source IDs.
In addition, if NOPUNCH was not specified, SMP/E writes commands to the SMPPUNCH data set to list the
SYSMODs associated with the source IDs that were found. Finally, SMP/E closes all the data sets.
If any of the following occurs, SMP/E issues an error message, and REPORT SOURCEID processing fails:
• A zone, ZONESET, or zone in a ZONESET specified on the ZONES operand (other than the global zone) is
not defined in the global zone.
• NOPUNCH was not specified, but there is no definition for the SMPPUNCH data set.
The REPORT SYSMODS command helps you compare the SYSMODs installed in two zones. These are the
types of zones you can compare:
• A DLIB zone to a DLIB zone
• A target zone to a target zone
• A DLIB zone to a target zone
• A target zone to a DLIB zone
Information about the SYSMODs is provided in the SYSMOD Comparison report. This report identifies
the SYSMODs that are installed in the input zone, but not found in the comparison zone. The commands
needed to install the SYSMODs that are not found in the comparison zone are written to the SMPPUNCH
data set. Information about the SYSTEM and USER HOLDs that must be resolved before these SYSMODs
can be installed is provided in the SYSMOD Comparison HOLDDATA report.
Syntax
REPORT SYSMODS Command
REPORT SYSMODS INZONE( zone1 ) COMPAREDTO( zone )
csid,zone
•
NOPUNCH
Operands
COMPAREDTO
specifies the zone (called the comparison zone) that SMP/E should compare against the input zone
for SYSMOD content. You can specify a single target zone or distribution zone name. In addition, a
global zone CSI data set and zone name can be specified if the comparison zone is defined in a
different global zone. The COMPAREDTO zone must not be the same as the zone specified on the
INZONE operand. A report is issued to indicate which SYSMODs were in the input zone but not in the
comparison zone.
COMPAREDTO is a required operand on the REPORT SYSMODS command.
Note: COMPAREDTO is allowed only on the REPORT SYSMODS command.
INZONE
specifies the input zone that SMP/E should use to compare against another zone (called the
comparison zone) for SYSMOD content. You can specify a single target zone or distribution zone name.
This must not be the same as the zone specified on the COMPAREDTO zone. A report is issued to
indicate which SYSMODs were in the input zone but not in the comparison zone.
INZONE is a required operand on the REPORT SYSMODS command.
Note: INZONE is allowed only on the REPORT SYSMODS command.
NOPUNCH
indicates that SMP/E should not write any output to SMPPUNCH. If NOPUNCH is not specified, JCL or
commands are written to SMPPUNCH. This output contains JCL or commands that can be used for
further processing.
Note: The output produced by REPORT SYSMODS processing contains commands for installing
SYSMODs from the input zone that are applicable to the comparison zone.
SYSMODS
requests a report comparing the SYSMOD content of two zones.
SYSMODS is a required operand for the REPORT SYSMODS command.
Note: SYSMODS is mutually exclusive with CALLLIBS, CROSSZONE, SOURCEID, and ERRSYSMODS.
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according to
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used
to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always
required for a zone.
Output
Output from the REPORT sysmods command includes reports, as well as data written to SMPPUNCH.
Reports
The following reports are produced during REPORT SYSMODS processing:
• SYSMOD Comparison report
• SYSMOD Comparison HOLDDATA report
• File Allocation report
When a global zone CSI data set name is specified for the COMPAREDTO zone, the CSI data set name will
appear in the heading of the SYSMOD Comparison report.
See Chapter 34, “SMP/E reports,” on page 461 for descriptions of these reports.
SMPPUNCH output
To make it easier for you to install the applicable SYSMODs named in the SYSMOD Comparison report,
SMP/E writes the necessary commands to the SMPPUNCH data set: SET BOUNDARY, RESETRC, and
either ACCEPT (for distribution zones) or APPLY (for target zones). Nothing is written to SMPPUNCH for a
specified zone in the following cases:
• There are no applicable SYSMODs in the input zone.
• NOPUNCH was specified on the REPORT SYSMODS command.
When a global zone CSI data set name is specified on the COMPAREDTO operand, SMPCSI and SMPCNTL
DD statements will be included in the SMPPUNCH output. These DD statements will appear before the
SET BDY command and must be copied into the users job before the output can be used. When the global
zone CSI data set name is not specified on the COMPAREDTO operand, the SMPCSI and SMPCNTL DD
statements will not be included in the SMPPUNCH output.
The code sample below shows the format of the SMPPUNCH output from the REPORT SYSMODS
command.
FUNCTIONS AND PTFS THAT WERE AVAILABLE IN THE GLOBAL ZONE AND ARE
APPLICABLE TO THE COMPARISON ZONE APPEAR AS NORMAL SELECT LIST
VALUES WITH AN APPROPRIATE COMMENT. FUNCTIONS AND PTFS THAT WERE
NOT AVAILABLE IN THE GLOBAL ZONE OR HAVE UNKNOWN APPLICABILITY
APPEAR AS SMP COMMENTS. PTFS FOR AN APPLICABLE FUNCTION, NOT
AVAILABLE IN THE GLOBAL ZONE, APPEAR AS COMMENTS EVEN IF THEY ARE
AVAILABLE. SUCH COMMENTED SYSMODS CAN BE CHANGED TO NORMAL SELECT
LIST VALUES WHEN THEY OR THEIR APPLICABLE FUNCTIONS ARE RECEIVED OR
ARE DETERMINED TO BE APPLICABLE.
command
SELECT(
sysmdid /* smdtype FOR fmid RECEIVED */
/* sysmdid smdtype FOR fmid NOT RECEIVED */
/* sysmdid smdtype FOR fmid RECEIVED, fmid NOT RECV'D */
/* sysmdid smdtype FOR fmid NOT RECEIVED, fmid NOT RECV'D */
/* sysmdid smdtype FOR fmid RECEIVED, APPLICABILITY UNKNOWN */
/* sysmdid smdtype FOR fmid NOT RECV'D, APPLICABILITY UNKNOWN */
/* sysmdid APAR FOR fmid RECEIVED */
/* sysmdid APAR FOR fmid NOT RECEIVED */
/* sysmdid USERMOD FOR fmid RECEIVED */
/* sysmdid USERMOD FOR fmid NOT RECEIVED */
)
[REDO]
GROUP
BYPASS (HOLDSYSTEM)
CHECK.
/*
globalcsi
the global zone CSI data set in which zone2 is defined.
zone2
is the name of the target or distribution zone specified on the COMPAREDTO operand (the comparison
zone).
command
is the command to be used to install the SYSMODs: ACCEPT for a distribution zone, and APPLY for a
target zone.
yy.ddd
is the year and Julian date that the command was generated by the REPORT SYSMODS command.
hh:mm:ss
is the time of day at which the command was generated by the REPORT SYSMODS command.
zone1
is the name of the target or distribution zone specified on the INZONE operand (the input zone).
sysmdid
is the ID of an applicable SYSMOD that appears in the SYSMOD Comparison report.
A SYSMOD is commented out in the following cases:
• The SYSMOD is an APAR fix or a USERMOD.
• The SYSMOD or its owning function (FMID) is not in the global zone.
• SMP/E cannot determine whether the SYSMOD is applicable to the comparison zone.
smdtype
is the SYSMOD type of the indicated SYSMOD.
fmid
is the SYSMOD ID of the function that owns the indicated SYSMOD.
You can edit the SMPPUNCH output before using it. For example, if any applicable SYSMODs were not in
the global zone at the time of the report and you have since received them, you may want to change the
comments for those SYSMODs to normal SELECT list values and install them.
Note: There may have been SYSMODs whose applicability was unknown (for example, they were not
in the global zone), and which you have determined to be applicable. You may want to receive these
SYSMODs and change them from comments to normal select list values so they can be installed.
You can determine whether a SYSMOD is applicable to the comparison zone by checking the program
directory or installation manual for the FMID to find out the SREL, or you can receive the SYSMOD into the
global zone and run the REPORT SYSMODS command again.
Multiple APPLY or ACCEPT commands may be generated if one or more functions are being reinstalled.
Each function SYSMOD to be reinstalled appears on a separate APPLY or ACCEPT command along with its
own service. Other SYSMODs belonging to functions not being reinstalled appear on a separate APPLY or
ACCEPT command.
• DELBY indicates that the SYSMOD has not been installed, but its SYSMOD entry contains the DELBY
subentry. The entry was created when a function was installed that deleted the indicated SYSMOD.
• ERROR indicates that the SYSMOD has only been partially installed. Errors occurred during APPLY or
ACCEPT processing.
• SUPONLY indicates that the SYSMOD is a superseded-only SYSMOD.
• F= is followed by the SYSMOD’s FMID.
• S= is followed by the SYSMOD’s source IDs.
Table 22. REPORT SYSMODS example: SYSMODs installed in each zone (continued)
Zone Functions PTFs APARs USERMODs
Assume that you want to find out which SYSMODs are installed in zone TGZONE1 and are not installed in
zone TGZONE2, but are applicable to it. You can use the following commands:
SMP/E compares the SYSMOD content of zone TGZONE1 to that of zone TGZONE2. Any SYSMODs that
are in zone TGZONE1 (with the exceptions noted under “Processing” on page 337) and are not in zone
TGZONE2 appear in the resulting report.
Figure 29 on page 334 shows the report SMP/E produces:
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST
OUTPUT
SYSMOD COMPARISON REPORT FOR TARGET ZONE TGZONE1 AND TARGET ZONE TGZONE2
If a SYSMOD is identified in the SYSMOD Comparison report, and SYSTEM or USER HOLDDATA entries
exist for that SYSMOD in the global zone for the input zone, those HOLDs are reported in the SYSMOD
Comparison HOLDDATA report. See “SYSMOD comparison HOLDDATA report” on page 527 for an example
of the report.
SMP/E also writes the commands shown in the code sample below to the SMPPUNCH data set:
FUNCTIONS AND PTFS THAT WERE AVAILABLE IN THE GLOBAL ZONE AND ARE
APPLICABLE TO THE COMPARISON ZONE APPEAR AS NORMAL SELECT LIST
VALUES WITH AN APPROPRIATE COMMENT. FUNCTIONS AND PTFS THAT WERE
NOT AVAILABLE IN THE GLOBAL ZONE OR HAVE UNKNOWN APPLICABILITY
APPEAR AS SMP COMMENTS. PTFS FOR AN APPLICABLE FUNCTION, NOT
AVAILABLE IN THE GLOBAL ZONE, APPEAR AS COMMENTS EVEN IF THEY ARE
AVAILABLE. SUCH COMMENTED SYSMODS CAN BE CHANGED TO NORMAL SELECT
LIST VALUES WHEN THEY OR THEIR APPLICABLE FUNCTIONS ARE RECEIVED, OR
ARE DETERMINED TO BE APPLICABLE.
APPLY
SELECT(
HAA1202 /* FUNCTION FOR HAA1202 RECEIVED */
/* UZ00011 PTF FOR HAA1202 NOT RECEIVED */
UZ00012 /* PTF FOR HAA1202 RECEIVED */
/* AZ00013 APAR FOR HAA1202 NOT RECEIVED */
/* TZ00001 USERMOD FOR HAA1202 RECEIVED */
UZ00002 /* PTF FOR HBB1202 RECEIVED */
)
GROUP
BYPASS(HOLDSYSTEM)
CHECK.
After getting the SYSMOD Comparison report, you can take these actions:
1. Research the report to determine which of the identified SYSMODs you want to install into the
comparison zone.
2. Find and receive any applicable SYSMODs that were not available and that you want to install. The
source ID in the report identifies some possible sources for obtaining the SYSMODs.
3. Tailor the SMPPUNCH output to install the set of SYSMODs that you deem appropriate, and run the
commands to install the desired SYSMODs.
SMP/E compares the SYSMOD content of zone TGZONE1 to that of zone TGZONE2. Any SYSMODs that are
in zone TGZONE1 (with the exceptions noted in “Processing” on page 337) and are not in zone TGZONE2
appear in the resulting report.
Figure 30 on page 336 shows the report produced by SMP/E. The report includes the global zone CSI data
set name that was specified on the COMPAREDTO operand.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST
OUTPUT
SYSMOD COMPARISON REPORT FOR TARGET ZONE TGZONE1 AND TARGET ZONE TGZONE2
IN THE GLOBAL ZONE IN CSI SYS1.GLOBAL2.CSI
If a SYSMOD is identified in the SYSMOD Comparison report, and SYSTEM or USER HOLDDATA entries
exist for that SYSMOD in the global zone for the input zone, those HOLDs are reported in the SYSMOD
Comparison HOLDDATA report. See “SYSMOD comparison HOLDDATA report” on page 527 for an example
of the report.
SMP/E also writes the commands shown in the code example below to the SMPPUNCH data set. Since the
INZONE and COMPAREDTO zones are defined in different global CSI data sets, the SMPCSI and SMPCNTL
DD statements are included in the SMPPUNCH output. These DD statements must be copied to your job
before the output is used.
FUNCTIONS AND PTFS THAT WERE AVAILABLE IN THE GLOBAL ZONE AND ARE
APPLICABLE TO THE COMPARISON ZONE APPEAR AS NORMAL SELECT LIST
VALUES WITH AN APPROPRIATE COMMENT. FUNCTIONS AND PTFS THAT WERE
NOT AVAILABLE IN THE GLOBAL ZONE OR HAVE UNKNOWN APPLICABILITY
APPEAR AS SMP COMMENTS. PTFS FOR AN APPLICABLE FUNCTION, NOT
AVAILABLE IN THE GLOBAL ZONE, APPEAR AS COMMENTS EVEN IF THEY ARE
AVAILABLE. SUCH COMMENTED SYSMODS CAN BE CHANGED TO NORMAL SELECT
LIST VALUES WHEN THEY OR THEIR APPLICABLE FUNCTIONS ARE RECEIVED, OR
ARE DETERMINED TO BE APPLICABLE.
APPLY
SELECT(
HAA1202 /* FUNCTION FOR HAA1202 RECEIVED */
/* UZ00011 PTF FOR HAA1202 NOT RECEIVED */
UZ00012 /* PTF FOR HAA1202 RECEIVED */
/* AZ00013 APAR FOR HAA1202 NOT RECEIVED */
/* TZ00001 USERMOD FOR HAA1202 RECEIVED */
UZ00002 /* PTF FOR HBB1202 RECEIVED */
)
GROUP
BYPASS(HOLDSYSTEM)
CHECK.
/*
Processing
The REPORT SYSMODS command compares the SYSMOD content of an input target or distribution zone
to that of a comparison target or distribution zone. The resulting output can be used to determine which
SYSMODs might need to be installed in the comparison zone to make its function and service content
more equivalent to that of the input zone.
SMP/E first checks the REPORT SYSMODS command to determine the zones to be compared and whether
SMPPUNCH output should be produced. The zones are then opened for read access along with the global
zone. If NOPUNCH was not specified, the SMPPUNCH data set is also opened.
Next, SMP/E determines the matching SREL values from the zone definitions of the zones being
compared. Matching values are saved to be put in the header of the SYSMOD Comparison report.
SMP/E then determines whether or not the zones to be compared contain SYSMOD entries. If they both
contain SYSMOD entries, SMP/E looks for SYSMODs that are installed in the input zone but not in the
comparison zone, and checks whether those SYSMODs are applicable to the comparison zone.
1. First, SMP/E reads sequentially through the SYSMOD entries in the input zone to determine which
SYSMODs should be included in the report. For each SYSMOD entry that is not a superseded-only entry
or deleted-only entry and is not in error, SMP/E checks the comparison zone to see if the SYSMOD also
exists there. The SYSMOD exists in the comparison zone if one of the following is true:
• There is a SYSMOD entry with the ERROR indicator off.
• There is a SYSMOD entry with the DELBY subentry.
• There is a SYSMOD entry with the SUPBY subentry.
If the SYSMOD does not exist in the comparison zone, SMP/E includes it in the SYSMOD Comparison
report.
If the SYSMOD exists in the comparison zone and is a function, it may still be included in the SYSMOD
Comparison report. This can happen when the function in the input zone has been service-updated. A
service-updated function may be at a higher service level than the function currently installed in the
comparison zone. Therefore, SMP/E does additional checking for a function that exists in both the input
and comparison zones.
If a function in the input zone has been service-updated, it supersedes the service integrated into it.
To determine whether a service-updated function should be reinstalled in the comparison zone, SMP/E
checks whether all the SYSMODs superseded by the function exist in the comparison zone. If any of
the superseded SYSMODs do not exist in the comparison zone, the service-updated function can be
reinstalled and is included in the report.
Note: When SMP/E checks the global zone to determine whether a service-update is available to be
reinstalled, it also checks the superseded information in the global zone SYSMOD entry against the
input zone SYSMOD entry. This is done to ensure that the function in the global zone is not at a lower
service level than the SYSMOD in the input zone.
2. Next, SMP/E determines whether the SYSMODs included in the report are applicable to the comparison
zone.
• If the SYSMOD is a service-updated function that can be reinstalled, it is applicable to the
comparison zone.
• If the SYSMOD is a base function, it is applicable to the comparison zone if it meets either of these
conditions:
– All the SRELs supported by the input zone are also supported by the comparison zone.
– Any of the SRELs defined for the SYSMOD are supported by the comparison zone.
Note: SMP/E checks the global zone SYSMOD entry to determine which SRELs are defined for the
SYSMOD. If there is no entry for the SYSMOD in the global zone, SMP/E cannot determine the
SYSMOD's SREL.
If there is at least one SREL in the input zone that is not in the comparison zone and there is no
SYSMOD entry in the global zone, the SYSMOD may or may not be applicable to the comparison
zone. In this case, SMP/E indicates in the report that the applicability of the SYSMOD is unknown.
• If the SYSMOD is not a base function, it is applicable to the comparison zone if its FMID meets either
of these conditions:
– It exists in the comparison zone.
– It has already been deemed applicable during this run of the REPORT SYSMODS command. (If the
applicability of the FMID is unknown, the applicability of this SYSMOD is also unknown.)
At this point, SMP/E gathers additional information about the SYSMOD to include in the SYSMOD
Comparison report:
• It takes the FMID, SYSMOD type (function, PTF, APAR, or USERMOD), and source IDs from the SYSMOD
entry in the input zone.
• It checks whether there is an entry for the SYSMOD in the global zone.
SMP/E saves all the information gathered in the preceding processing and uses it in the SYSMOD
Comparison report and SMPPUNCH output after checking all the SYSMOD entries in the input zone.
If a SYSMOD is identified in the SYSMOD Comparison Report, and SYSTEM or USER HOLDDATA entries
exist for that SYSMOD in the global zone for the input zone, those HOLDs are reported in the SYSMOD
Comparison HOLDDATA Report.
Internal SYSTEM HOLDDATA may be associated with more than one SYSMOD. Therefore, internal SYSTEM
HOLDDATA will appear in the SYSMOD Comparison HOLDDATA Report only if the originating SYSMOD does
not exist in the comparison zone. The originating SYSMOD exists in the comparison zone if one of the
following is true:
• There is a SYSMOD entry with the ERROR indicator off.
• There is a SYSMOD entry with the DELBY subentry.
• There is a SYSMOD entry with the SUPBY subentry.
It is possible for an internal SYSTEM HOLD to appear in the SYSMOD Comparison HOLDDATA Report even
though the originating SYSMOD does not appear in the SYSMOD Comparison Report. This situation would
occur if the originating SYSMOD is a superseded-only SYSMOD in the input zone and it does not exist
in the comparison zone but one of its superseding SYSMODs (which also contains the internal SYSTEM
HOLD) is reported in the SYSMOD Comparison Report.
Likewise, it is possible for a SYSMOD to appear in the SYSMOD Comparison Report, but its internal
SYSTEM HOLDs are not reported in the SYSMOD Comparison HOLDDATA Report. This situation would
occur when the SYSMOD supersedes the originating SYSMOD for an internal SYSTEM HOLD, but the
originating SYSMOD already exists in the comparison zone.
SMP/E issues an error message, and REPORT SYSMODS processing fails if any of the following occurs:
• The zone specified on the INZONE or COMPAREDTO operand is not defined in the global zone.
• The zones specified on the INZONE and COMPAREDTO operands have no matching SREL values in their
zone definitions.
• The zone specified on the INZONE or COMPAREDTO operand is the global zone.
• The zone specified on the INZONE or COMPAREDTO operand contains no SYSMOD entries.
• The zones specified on the INZONE and COMPAREDTO operands are the same.
• NOPUNCH was not specified, but there is no definition for the SMPPUNCH data set.
1. Initialization
Global zone (multiple as required) Read without enqueue.
Target zones (as required) Read without enqueue.
DLIB zones (as required) Read without enqueue.
2. Processing
Global zone (multiple as required) Read with shared enqueue.
Target zones (as required) Read with shared enqueue.
DLIB zones (as required) Update with exclusive enqueue.
3. Termination
All resources are freed.
Many SMP/E commands depend on the successful processing of preceding commands. To help avoid
errors resulting from the failure of preceding commands, SMP/E saves the highest return code issued
for each command. As it processes each command, it checks these return codes to make sure all the
preceding commands succeeded.
At times, you may want to process commands that do not depend on the success of any preceding
commands. To do this, you can use the RESETRC command. RESETRC sets the return codes for the
preceding commands to zero, thus allowing SMP/E to process the current command.
Syntax
RESETRC Command
RESETRC •
Usage notes
• You should not use RESETRC before commands that depend on the success of preceding commands.
• RESETRC only resets return codes issued for SMP/E commands. It does not affect the maximum return
code set when SMP/E itself fails. That return code is always set to the highest return code issued for any
command processed during that calling of SMP/E.
• There is no return code for the RESETRC command.
Examples
The following examples are provided to help you use the RESETRC command.
an unrelated function, EDM1102. To prevent possible errors from one APPLY command from affecting the
processing of the other, you can put a RESETRC command between the two APPLY commands:
SMP/E first applies PTFs from service level 0701 that are for function EBB1102. It then applies PTFs
from service level 0701 that are for function EDM1102. Without the intervening RESETRC command, the
second APPLY runs only if the return code for the first APPLY was less than 12.
SMP/E first applies the two PTFs to MVSTST1, and then applies the same PTFs to MVSTST2. Without the
intervening RESETRC command, the second group of SET and APPLY commands runs only if the return
code for the first APPLY was less than 12.
Processing
For each command processed in a single invocation of SMP/E, SMP/E keeps a record of the highest return
code for that command. As SMP/E processes each command, it checks the saved return codes from all
the preceding commands to determine whether it should process the current command.
When the RESETRC command is processed, SMP/E resets the return codes for the preceding commands
to 0. This allows the next command after the RESETRC command to be processed, regardless of whether
preceding commands succeeded.
At times, you may want to remove a SYSMOD that has been applied to the target libraries. For example,
perhaps you installed a fix for a problem and got unexpected results. If you have not yet accepted the
SYSMOD into the distribution libraries, you can use the RESTORE command to remove it from the target
libraries.
The RESTORE command replaces the affected elements in the target libraries with the unchanged
versions from the distribution libraries. (As a result, once you have accepted a SYSMOD into the
distribution libraries, you cannot use RESTORE to remove it from the target libraries.)
Syntax
RESTORE Command
,
fmidset
XZGROUP( )
,
zoneset
zonename
CHECK GROUP
COMPRESS (ALL)
,
( ddname )
RETRY(YES)
•
RETRY(NO) ,
RC( command=rc )
BYPASS Options
ID
XZIFREQ
,
( sysmod_id )
(sysmod_id,zonename )
Operands
BYPASS
You can specify any of these options:
ID
XZIFREQ
XZIFREQ(list)
BYPASS(ID)
indicates that SMP/E should ignore any errors it detects when checking RMID and UMIDs for
element entries in the target zone or distribution zone.
BYPASS(XZIFREQ)
indicates that SMP/E should continue RESTORE processing for a SYSMOD even if a SYSMOD in
another zone names the SYSMOD being restored as a requisite, regardless of which or how many
SYSMODs state the requisite condition or what zones they are in. SMP/E will identify such requisite
conditions with a warning message, instead of terminating the RESTORE processing.
Note: CIFREQ conditions within the set-to zone cannot be bypassed.
BYPASS(XZIFREQ(list))
indicates that SMP/E should continue RESTORE processing for a SYSMOD even if a SYSMOD
in another zone names the SYSMOD being restored as a requisite, provided that the SYSMOD
stating the requisite condition is included in the list provided with the XZIFREQ option. For
causer SYSMODs identified in the list, SMP/E will identify such requisite conditions with a warning
message.
Each entry in the list must be in one of the following formats:
• sysmod_id
• (sysmod_id,zone)
sysmod_id
specifies that any requisite condition stated by SYSMOD sysmod_id in any zone (other than the
set-to zone) is not to be considered an error condition.
(sysmod_id,zone)
specifies that any requisite condition stated by SYSMOD sysmod_id in zone zone is not to be
considered an error condition.
Each entry in the list must be unique. Also, a SYSMOD ID must not appear both by itself and as
part of a SYSMOD/zone pair. However, a SYSMOD ID may appear in multiple SYSMOD/zone pairs,
provided each of the pairs is unique.
The list provided must not be a null list; that is, BYPASS(XZIFREQ()) is not allowed.
Note:
1. CIFREQ conditions within the set-to zone cannot be bypassed.
2. If a SYSMOD that is not on the BYPASS XZIFREQ list has stated a requisite condition for the
SYSMOD being restored, SMP/E terminates the RESTORE processing.
CHECK
indicates that SMP/E should not actually update any libraries. Instead, it should just take these
actions:
• Test for errors other than those that can occur when the libraries are actually updated
• Report on which libraries are affected
• Report on any SYSMOD that would be regressed
COMPRESS
indicates which target libraries should be compressed. SMP/E does not compress any libraries that
are actually paths in a UNIX file system.
• If you specify ALL, any libraries containing elements that will be updated by this RESTORE
command are compressed.
• If you specify particular ddnames, those libraries are compressed regardless of whether they will be
updated.
Note:
1. COMPRESS can also be specified as C.
2. If you specify COMPRESS and CHECK, COMPRESS is ignored, because SMP/E does not update any
data sets for CHECK.
GROUP
indicates that if SMP/E determines that additional SYSMODs should be restored, other than those
specified in the SELECT list, SMP/E should automatically include them.
For example, Assume that you have applied a function and service for that function. When you select
the function and specify the GROUP operand, SMP/E also tries to restore the service that was applied
for that function.
Likewise, Assume that you have applied two PTFs, and one defines the other as the prerequisite.
When you select the prerequisite and specify the GROUP operand, SMP/E also tries to restore the
other PTF. On the other hand, if you select the SYSMOD that specifies the prerequisite, SMP/E restores
that particular SYSMOD only if the prerequisite has been accepted.
However, Assume that you have installed two PTFs that affect the same element but that do not
define any relationship to each other. If you select one of the PTFs and specify the GROUP operand,
SMP/E does not try to restore the other PTF. You have to specify both PTFs on the SELECT operand.
Note: GROUP can also be specified as G.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the RESTORE command.
Before SMP/E processes the RESTORE command, it checks whether the return codes for the specified
commands are less than or equal to the values specified on the RC operand. If so, SMP/E can process
the RESTORE command. Otherwise, the RESTORE command fails. For more information about the RC
operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the RESTORE command. Therefore, if you use the RC operand, you must specify
every command whose return code you want SMP/E to check.
RETRY
indicates whether SMP/E should try to recover from out-of-space errors for utilities it calls.
YES
indicates that SMP/E should try to recover and retry the utility if a RETRYDDN list is available in the
OPTIONS entry that is in effect. RETRY(YES) is the default.
If retry processing does not reclaim sufficient space and input to the utility was batched (copy
or link-edit utility only), SMP/E debatches the input and retries the utility for each member
separately. If this final attempt fails, the resulting x37 abend is treated as an unacceptable utility
return code. In this case, processing continues for SYSMODs containing eligible updates to other
libraries, but processing fails for SYSMODs containing unprocessed elements for the out-of-space
library (and it fails for any SYSMODs that are dependent on the failed SYSMODs). For guidance on
setting up the desired retry processing, see z/OS SMP/E User's Guide. For more information about
OPTIONS entries, see z/OS SMP/E Reference.
If there is no RETRYDDN list, SMP/E does not try to recover from out-of-space errors, even if
RETRY(YES) is specified.
NO
indicates that SMP/E should not try to recover from the error.
SELECT
specifies one or more SYSMODs that should be restored.
You may specify any combination of individual SYSMOD IDs and FMIDSET names, provided that there
are no duplicate SYSMOD IDs nor any duplicate FMIDSET names. For each FMIDSET specified, all
FMIDs defined in the FMIDSET are processed as if they were explicitly specified in the SELECT list.
Note:
1. SELECT is required for RESTORE. This is the only means of specifying which SYSMODs are eligible
to be restored.
2. SELECT can also be specified as S.
3. If you use GROUP along with SELECT, make sure to specify the lowest level of service you want
restored. For example, if you want to restore PTF1 and PTF2, and PTF1 is a prerequisite for PTF2,
specify PTF1 on the SELECT operand.
4. When using FMIDSETs on the SELECT operand, remember that:
• A value specified in the SELECT list is processed as an FMIDSET if the GLOBAL zone contains an
FMIDSET entry by that name.
• A value specified in the SELECT list is processed as a SYSMOD ID if it is not defined as an
FMIDSET in the GLOBAL zone and it is a valid SYSMOD ID.
• If the value in the SELECT list is valid both as a SYSMOD ID and as an FMIDSET name, it is
processed (for SELECT) as an FMIDSET. If you want to select a SYSMOD that has the same name
as an FMIDSET, you must define that SYSMOD in an FMIDSET and then include that FMIDSET
name in the SELECT list.
• Any given value (whether it represents a SYSMOD ID, an FMIDSET, or both) may not appear more
than once in the SELECT list.
• A SYSMOD ID may be explicitly specified in the SELECT list and also included in an FMIDSET that
is also specified in the SELECT list, provided the SYSMOD ID does not have the same name as the
FMIDSET. The duplicate SYSMOD ID is ignored.
XZGROUP
indicates that SMP/E's default method for determining the zones to be checked for cross-zone
requisites is being overridden. You may specify a list of ZONESETs or zones (or both) that are to
be used to establish the zone group for this command execution. Each value in the list must be 1 to 8
alphanumeric or national (@, #, and $) characters. XZGROUP() – a null list – may be specified, which
means that SMP/E is to do no cross-zone requisite checking.
Note:
1. If XZGROUP is specified, whatever ZONESETs the user specifies are used to establish the initial
zone group, even if the set-to zone is not in a ZONESET and the XZREQCHK subentry is not set.
2. If no XZGROUP operand was specified on the RESTORE command, SMP/E reads all ZONESET
entries. If a ZONESET entry has its XZREQCHK subentry set to YES and it contains the set-to zone,
then all the other zones within the ZONESET entry become part of the initial zone group for the
RESTORE command.
3. After the initial zone group is established, it is culled by removing all distribution zone for RESTORE
processing. In other words, only zones having the same type as the set-to zone are left in the final
zone group used for cross-zone requisite checking.
Note:
1. SMPJHOME is an optional ddname used to specify the Java runtime directory. SMP/E requires the Java
runtime when a UNIX shell script is invoked during the restore of a file system element, and this UNIX
shell script issues a Java command.
2. The SMPLTS data set is required only when a load module with CALLLIBS is being processed.
3. The SMPDATA1 and SMPDATA2 data sets are required only when the CHANGEFILE subentry of the
active OPTIONS entry is set to "YES" for the target zone that RESTORE is operating on.
4. zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according
to the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be
used to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
5. SMPPARM is only required if exit routines have been defined in SMPPARM member GIMEXITS.
Usage notes
• Certain conditions can cause SYSMODs to be considered ineligible for RESTORE processing. These
conditions cause SMP/E to terminate processing of the ineligible SYSMODs and issue messages to
inform you of the error conditions.
The following conditions cause SMP/E to consider a SYSMOD as ineligible for RESTORE processing:
– An element being restored has a MODID in the element entry on the distribution zone that does not
have a corresponding SYSMOD entry on the target zone. This condition can occur if a SYSMOD has
been accepted without being applied and, as a result, the distribution library is at a higher function or
service level than the target system library.
– The service level of an element being restored is the same in the target library as it is in the
distribution library. This condition can occur if a SYSMOD is both applied and accepted.
– A SYSMOD that should have been selected for RESTORE processing was not specified in the SELECT
operand list. This condition can occur if one of the SYSMODs specified in the list is part of a RESTORE
group that is not fully specified.
– The service level of an element in the distribution library is not the correct one. This can occur if
several modifications to the same element are applied at different points in time, without being
accepted, and the later modifications are the ones that are selected for RESTORE processing.
Consider the following example. The distribution zone shows that an element was last replaced
on the distribution libraries by PTF UZ00001, but the related target zone indicates that the last
replacement to the element on the system was by PTF UZ00004. The element was also modified
on the system by PTFs UZ00002 and UZ00003. The SYSMODs on the related target zone and
distribution zone are listed in service order:
TARGET ZONE SYSMODs
DLIB ZONE SYSMODs
UZ00001
UZ00001
UZ00002
UZ00003
UZ00004
If you specified the following, PTFs UZ00002 and UZ00003 would not be considered part of the
RESTORE processing group because they are not dependent on PTF UZ00004.
When this condition is detected, SMP/E issues messages to inform you of the SYSMODs that must be
restored along with the specified SYSMOD or accepted before that SYSMOD is restored.
– The ineligibility of a member of a RESTORE group terminates processing for the entire group. This can
occur both in GROUP and SELECT mode.
– A function SYSMOD containing a ++VER DELETE MCS cannot be restored if any of the specified
SYSMODs were actually deleted when the function was applied. (Such a function is eligible for
RESTORE processing if none of the specified SYSMODs had ever been applied, and were, therefore,
not deleted when the function was installed.)
Function SYSMODs containing a ++DELETE statement for a load module are not eligible for RESTORE
processing.
If a function SYSMOD is terminated for any of these conditions, the RESTORE function is also
terminated.
• You can avoid certain error conditions that would terminate a SYSMOD by specifying the BYPASS(ID)
operand on the RESTORE command. Then, error conditions in the ID validation checking do not cause
SYSMOD termination, but are treated as warnings.
The first two conditions described earlier in the first special consideration (SYSMOD ineligibility) can
be bypassed by using this option. However, in the first case, the distribution library contains a version
of the element that is probably functionally superior to the version being removed. This can cause the
executable code in the target system library to be inoperable. In addition, SMP/E updates the element
entry on the target zone to reflect the UMID and RMID subentry contents from the element entry on
the distribution zone. In this case, the SYSMOD entry might not exist on the target zone, because the
BYPASS(APPLYCHECK) operand was probably used on the ACCEPT command; thus, the SYSMOD was
never applied to the target system. You should avoid using the BYPASS(ID) option unless it is absolutely
necessary.
• Utility failures can cause the RESTORE command to fail. For details on handling x37 abends, see the
description of the RETRY operand under “Operands” on page 344.
• SYSMOD entries on the target zone have the ERROR and RESTORE status indicators set on before the
target system libraries are updated. If processing fails during the updating, these indicators remain on
and the updating for these entries is not completed. After you determine the cause of the termination,
you can process these SYSMODs again by specifying them as operand values of the SELECT operand on
the RESTORE command.
• RESTORE processing relinks the nucleus, using the last version of modules accepted on the DLIBs.
• When a selected SYSMOD contains an element that was deleted from the system by that SYSMOD,
RESTORE processing reintroduces that element into the target system using information saved in the
SMPSCDS BACKUP entries.
• If you do not use SMP/E to recover after a failure and choose the option of restoring your system and the
distribution libraries by means of system and DLIB RESTORE tapes, you must ensure that the SMPPTS,
SMPCSI, SMPSCDS, SMPMTS, and SMPSTS data sets are also restored to their previous levels.
• The exception SYSMOD data stored in the global zone SYSMOD entry is not purged when the SYSMOD is
restored. If NOREJECT is not set in the OPTIONS entry that is in effect, the global zone entry is purged
of all information except the exception SYSMOD data. (Having NOREJECT set off is the default.)
Output
The following reports may be produced during RESTORE processing:
• Causer SYSMOD Summary report
• Cross-Zone Summary report
• File Allocation report
• Element Summary report
• MOVE/RENAME/DELETE report
• SYSMOD Status report
See Chapter 34, “SMP/E reports,” on page 461 for descriptions of these reports.
RESTORE processing may also create library change file records that reflect any successful utility work
performed by RESTORE processing to update target libraries. For more information on library change file
recording, see z/OS SMP/E Reference.
Examples
In each of these examples, the following set of SYSMODs has been received:
Note: For these examples, assume (1) all modules are present in the target zone and distribution zone,
with the result that the DISTLIB operand is not required; and (2) the actual module replacement follows
the ++MOD statement.
The following examples are provided to help you use the RESTORE
If you want to clean up all of SMP/E's records for this PTF (the global zone and the SMPPTS data set), you
can use the REJECT command after RESTORE processing is complete:
2. Accept PTFs UZ00001 and UZ00002, if you are sure that they have no errors, then restore UZ00003 as
follows:
The end result in both cases is that module XYMOD01 from PTF UZ00002 is in the target libraries.
After running these commands, the various SMP/E reports can be used to determine that PTFs UZ00001,
UZ00002, and UZ00003 should be restored. You can then determine the correct action: restore all, or
accept some and then restore.
Processing
This section describes the following topics:
• Selecting SYSMODs
• Installing elements
SYSMOD selection
This section describes how SMP/E selects SYSMODs.
Candidate selection
When the RESTORE command is encountered, SMP/E looks at each SYSMOD specified in the SELECT list
to make sure the following conditions hold:
• The SYSMOD has been applied to the target zone specified in the previous SET command.
• The SYSMOD has not been accepted to the distribution zone specified in the RELATED field of the
TARGETZONE entry for the target zone specified in the previous SET command.
If any SYSMODs are found that do not meet both of these conditions, error messages are written to the
SMPLOG and SMPOUT, and those SYSMODs are not considered eligible to be restored.
Once the SYSMODs specified in the SELECT list have been checked for initial eligibility, SMP/E checks to
see whether any other SYSMODs are affected. There are two ways other SYSMODs can be affected:
• SYSMODs can be related to one another through the PRE, REQ, FMID, and SUP operands of their ++VER
statement or the REQ operand of the ++IF statement.
For each candidate SYSMOD, SMP/E checks to see whether dependencies exist between it and any
other SYSMOD not yet accepted. (That is, does any PRE, REQ, IFREQ, or FMID relationship exist
between the candidate SYSMOD and these other SYSMODs?) If so, that SYSMOD must also be restored.
This is true because of the stated dependency on either the functional or service dependency of the
SYSMODs.
• SYSMODs can be related to one another, because they have elements in common.
For each candidate SYSMOD, SMP/E checks to see if any other SYSMOD, not yet accepted, has modules
in common with the candidate SYSMOD. If so, that SYSMOD must also be restored. This is true because
of the method used to replace the elements on the system libraries. The version of the element in
the distribution library is used as the backup. Thus, all SYSMODs that have replaced or modified the
elements since the distribution library version was accepted must also be removed.
Processing of these related SYSMODs depends on whether the GROUP operand was specified:
• If the GROUP operand was specified, each of the related SYSMODs, as previously identified, are
included as candidates for RESTORE. SMP/E then performs the same checking on these new candidates
as on the original set. This process continues until no additional SYSMODs are added.
• If the GROUP operand was not specified, SMP/E issues an error message to SMPOUT and SMPLOG
indicating which of the SYSMODs specified in the SELECT list cannot be restored. This information can
also be found in the RESTORE SYSMOD Status report.
Element installation
Once the proper SYSMODs have been selected, SMP/E moves the version of the element in the
distribution libraries to the proper places in the system libraries. Processing for each type of elements
is described in subsequent sections.
Inline JCLIN
If a SYSMOD that had inline JCLIN is restored, SMP/E attempts to restore the target zone entries affected
by the JCLIN to the state they were in before the SYSMOD was applied. This is done by accessing
the BACKUP entry for such SYSMODs. For each BACKUP entry, SMP/E checks the corresponding target
zone entry to ensure that the last modification (LASTUPD subentry) to the target zone entry was for the
SYSMOD being restored. If it was, the entry is replaced from the BACKUP entry. If it was not, SMP/E
issues messages to indicate that the SYSMOD was not restored, and RESTORE processing stops for that
SYSMOD. This condition can occur if you used UCLIN or JCLIN to update an entry after you applied the
SYSMOD being restored, or if a subsequent SYSMOD was applied that updated the entry but did not
have a dependency relationship with the SYSMOD being restored. The latter should occur only for LMOD
entries.
Note: RESTORE processing is limited for a SYSMOD using the CHANGE statement in inline JCLIN. When
that SYSMOD is restored, the backup copy of the LMOD entry (which does not have the updates from
the CHANGE statement) replaces the target zone LMOD entry, and the information from the CHANGE
statement is lost. Module names that were changed by the inline JCLIN remain in the load module under
their changed names.
As each entry is completed, SMP/E deletes the BACKUP entry. When all BACKUP entries have been
processed, SMP/E deletes the related SYSMOD entry. This processing is done before the target system
libraries are updated.
JCLIN processing occurs in the reverse order of application; that is, the latest update is restored first,
the earliest one last. The order is determined by the dependency relationships of the SYSMODs being
restored.
Deleted elements
If a SYSMOD being restored had element modification control statements with the DELETE operand,
SMP/E attempts to bring back the target zone element entries that were deleted when the SYSMOD was
applied. This is done by using the BACKUP entries for the SYSMOD. For each BACKUP element entry,
SMP/E checks whether there is a corresponding entry in the target zone.
• If there is no target zone entry for the element, SMP/E copies the BACKUP element entry into the target
zone.
• If there is a target zone entry for the element, SMP/E issues a message to indicate that the entry has not
been replaced with the BACKUP entry, and RESTORE processing continues.
This can happen if you used UCLIN or JCLIN to re-create an entry after you applied the SYSMOD
being restored, or if a subsequent SYSMOD was applied that re-created the entry but did not define a
relationship with the SYSMOD being restored.
As SMP/E completes processing for each element, it deletes the corresponding BACKUP entry. When all
BACKUP entries for the SYSMOD have been processed, SMP/E deletes the related SYSMOD entry. It then
updates the target libraries using the procedure described in the following sections.
• You can specify ALL in the COMPRESS operand; only libraries in which elements will be restored by this
RESTORE command are then eligible for compression.
Note: Target libraries residing in a UNIX file system are not compressed.
Once the libraries have been determined, actual processing is dependent on the library type.
• For source libraries, any source to be replaced (not updated) by one of the SYSMODs being restored is
deleted from the library.
• For macro libraries, no macros are deleted, because the SYSMOD replacing the macro might fail, and
the failure could lead in turn to the failure of other SYSMODs causing assemblies that use the macro.
• For data element libraries, any data element that is to be replaced by one of the SYSMODs being
restored is deleted from the library.
• For load libraries, SMP/E determines which load modules within the library are composed only of
modules that were copied during system generation and are being replaced by the SYSMODs being
restored. Such load modules are deleted from the library.
SMP/E then calls the copy utility to perform the actual compress operation.
Note: To reclaim as much space as possible before restoring the SYSMODs, members are deleted
before the library is compressed. SMP/E processes one library at a time, first deleting members, then
compressing the library.
Data elements
Note: For a list of data element types, refer to the "Data Element MCS" chapter in z/OS SMP/E Reference.
Data elements are copied from the distribution libraries to the target libraries by either SMP/E or the copy
utility. SMP/E performs the copy in these cases:
• The target library or distribution library is a sequential data set.
• The data element must be reformatted to be compatible with the target library. For more information on
reformatting data elements, see “Reformatting data elements” on page 98.
Program elements
Program elements are copied from the distribution libraries to the target libraries using the copy utility. A
COPYMOD control statement is passed to the copy utility.
Macros
Macros existing in a target system library (that is, their SYSLIB subentry is nonblank) are simply copied
from the distribution library into the appropriate target library. If no version of the macro is found in the
distribution library, the macro is deleted from the target library.
For a macro that does not reside in any target library, SMP/E simply removes the current version of that
macro from the SMPMTS.
Source
The processing of source code is exactly the same as the processing of macros, except that the SMPSTS is
used rather than the SMPMTS.
Assemblies
RESTORE processing for assemblies is done in exactly the same way as during APPLY processing. For the
detailed description, see “Assemblies” on page 93.
Modules
RESTORE processing for modules is essentially the same as APPLY processing, except that the source
for the module replacement is the module distribution library rather than the selected version from a
SYSMOD. For the detailed description, see “Module replacements” on page 95.
Note:
1. A superzap (that is, ++ZAP) is also considered a module, because the whole module is replaced from
the distribution libraries.
2. If MODDEL subentries were added to LMOD entries to indicate that a module was deleted during
APPLY processing, the MODDEL subentries are deleted from the LMOD entries during RESTORE
processing.
3. SMP/E checks whether load modules to be updated have XZMOD subentries with the same name as a
module selected to update the load module. If so, SYSMOD processing stops.
4. When multiple output libraries must be updated for link-edit processing, SMP/E may initiate a separate
subtask for each such library, as described in “Multitasking of link-edit utility invocations” on page 97.
Superseded SYSMODs
All SYSMOD entries that are superseded by SYSMODs being restored have the SUPBY subentries for
those SYSMODs deleted. If all the SUPBY subentries for a superseded SYSMOD are deleted, the SYSMOD
entry itself is deleted. As a result of restoring a SYSMOD that superseded a previously applied SYSMOD,
target zone entries that might have been ignored during APPLY processing may now be applicable. This
condition is not acted upon by RESTORE processing. Therefore, subsequent apply processing may request
requisite SYSMODs that are now applicable because of previously applied function SYSMODs.
SYSMOD entry
When a SYSMOD is successfully restored, the SYSMOD entry is deleted from the target zone.
Cross-zone processing
If entries for modules or load modules that have been successfully restored contain cross-zone
subentries, and if the associated cross-zones can be automatically updated, SMP/E does cross-zone
processing.
First, SMP/E obtains access to the CSIs containing the cross-zones. It then checks each cross-zone to
make sure it contains DDDEF entries for the target libraries needed for link-edit processing.
For each restored module that is part of a cross-zone load module, SMP/E checks the cross-zone LMOD
entries to make sure the set-to zone originally supplied the modules to be processed. If so, SMP/E takes
these actions:
• If the module was replaced by a distribution zone copy of the module, SMP/E schedules link-edit
processing to include the replacement module.
• If the module was deleted, SMP/E schedules link-edit processing to delete that module.
Note: If a cross-zone LMOD entry to be processed consists only of cross-zone subentries, no processing is
done for that load module. The load module no longer really exists.
For each cross-zone module contained in a renamed LMOD that was restored in the set-to zone, SMP/E
changes the XZLMOD subentry to reflect the old LMOD name.
The Cross-Zone Summary report provides a summary of all the cross-zone work done, except for cross-
zone work caused by renamed LMODs. This is summarized in the MOVE/RENAME/DELETE report.
Distribution zone
Update with exclusive enqueue.
Cross-zones
Update with exclusive enqueue.
Global zone
Read with no enqueue.
5. Termination
All resources are freed.
Most SMP/E commands update certain zones. For example, the ACCEPT command updates a distribution
zone, and the APPLY command updates a target zone. To specify which zone should be updated by a
given command, you must use the SET command. The zone is identified on the BOUNDARY operand,
which indicates that all subsequent commands, up to the next SET command, should be processed for
the specified zone.
The SET command can also be used to request a particular set of predefined operating options. This
is done with the OPTIONS operand. The OPTIONS operand specifies the global zone OPTIONS entry
containing the processing options to be used for all subsequent commands, until the next SET command.
Syntax
SET Command
SET BOUNDARY( zone ) •
OPTIONS( name )
Operands
BOUNDARY
specifies which zone should be updated by the commands following the SET command.
Note:
1. BOUNDARY is a required operand.
2. BOUNDARY can also be specified as BDY.
OPTIONS
specifies an OPTIONS entry that should be used for the commands following the SET command. If an
OPTIONS entry is specified, it overrides the one specified in the zone definition.
Note:
1. The specified OPTIONS is used only to process the zone specified on the BOUNDARY operand.
2. For cross-zone processing, SMP/E uses the OPTIONS entry specified in the TARGETZONE entry for
the cross-zone. If no OPTIONS entry is defined for the cross-zone, SMP/E uses default values when
doing work to the cross-zone.
Note:
1. If SMP/E does not find the SMPLOG DD statement when parsing the SET command, SMP/E buffers all
messages until after the specified zone has been determined. At that time, SMP/E accesses that zone
to try to dynamically allocate the SMPLOG DD statement.
2. If SMP/E does not find the SMPOUT DD statement when parsing the SET command, SMP/E buffers all
messages until after the specified zone has been determined. At that time SMP/E accesses that zone
to try to dynamically allocate the SMPOUT DD statement.
3. zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according
to the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be
used to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
Usage notes
SMP/E uses the SET command to control dynamic allocation. When SMP/E needs to dynamically allocate
a data set, it allocates that data set once per zone. That data set remains allocated until the next
SET command is processed. If SMP/E fails to dynamically allocate a data set, it keeps a record of that
unsuccessful attempt and does not try to reallocate the data set. When SMP/E processes the next SET
command, it frees all dynamically allocated data sets and erases the records of allocation attempts that
failed. This has certain benefits:
• Each zone can use different definitions for the same data set.
• Performance is improved, because SMP/E does not need to dynamically allocate and free each data set
every time it is needed.
For more information about dynamic allocation, see the "How to dynamically allocate data sets to be used
during SMP/E processing" section in z/OS SMP/E User's Guide.
Examples
The following examples are provided to help you use the SET command.
This causes all applicable SYSMODs to be received and to be assigned the source ID, specified in the ESO
(in this case, 0701). The LIST command causes SMP/E to list the for all the SYSMODs just received.
The result is that all PTFs that were received and assigned a source ID of PUT0701, and that are
applicable to the functions in the MVSTST1 target system, are applied.
Note: The GROUP operand automatically includes requisites for the PTFs with the indicated source ID.
The result is that SMP/E accepts all PTFs that were received and assigned a source ID of PUT0701, that
have been applied, and that are applicable to the functions in the MVSDLB1 distribution zone.
Note: In a job with multiple SET commands, if you use DDDEF entries that specify SYSOUT for SMP/E
output (such as SMPOUT or SMPRPT), SMP/E produces multiple SYSOUT data sets. This can cause
undesirable results; for example, the output may appear to be out of sequence from one SET command
to the next. Therefore, when you run such a job, you may prefer to use DD statements, rather than DDDEF
entries, for SMP/E output data sets.
Also, assume PTF UZ12345 requires distribution library AMACLIB, but that no DD statement has been
allocated and no DDDEF entry is present. SMP/E issues an error message indicating the AMACLIB could
not be allocated because no DDDEF entry was found, and the accept of the PTF fails. You can correct the
problem by entering the following commands:
If the SET command had not been specified after the UCLIN operation, SMP/E would have issued a
message indicating that an earlier attempt to allocate AMACLIB had failed and that no allocation attempt
was made. As a result, the ACCEPT would have failed again.
Processing
When a SET command is encountered, SMP/E attempts to open the data set containing that zone. The
data set to be opened is identified by looking in the global zone ZONEINDEX list.
• If no ZONEINDEX subentry exists, SMP/E reports an error condition.
• If a ZONEINDEX subentry exists, SMP/E checks to see if the data set specified for that zone is already
open; if so, it does no further processing.
• If the data set containing the zone is not already open, SMP/E checks to see whether a DD statement
has been provided (the ddname is equal to the zone name).
– If a DD statement has been provided, the data set pointed to by the DD statement is opened.
– If no DD statement has been provided, SMP/E attempts to dynamically allocate a DD statement using
the zone name as the ddname and the data set specified in the ZONEINDEX as the data set name.
The SET command also determines whether the zone requires a higher level of SMP/E than the level
of SMP/E that is currently running. This can happen if the zone had previously been updated with
incompatible changes by a higher level SMP/E. If it does, SMP/E issues a message with a severe return
code and the SET command fails.
Processing then continues with the next command.
Some common errors that can occur during a SET command are:
• The specified zone cannot be found in the global zone ZONEINDEX. In this case, SMP/E checks the
syntax of all subsequent commands, but does not process them because it cannot determine where to
direct the processing. To fix this problem, define the zones and rerun the job.
• The specified zone cannot be found on the data set specified in the global zone ZONEINDEX or the
data set pointed to by the DD statement for that zone. In this case, the only SMP/E command that can
be executed is the UCLIN command to define the zone definition entry. Other SMP/E commands fails
because of insufficient information to process them.
Target zone
Read without enqueue.
DLIB zone
Read without enqueue.
Note: The type of zone that is accessed depends on the zone specified in the SET command.
2. Global zone update
Global zone
Update with exclusive enqueue.
SMPPTS
Update with exclusive enqueue.
Target zone
Update with exclusive enqueue.
DLIB zone
Update with exclusive enqueue.
Note:
a. This phase is executed only if the zone type in the SET command was either a target zone or a
distribution zone, and only if that target zone or distribution zone contained pending global zone
updates from a previous APPLY, ACCEPT, or RESTORE command.
b. Either the target zone or distribution zone is accessed, according to the zone type specified in the
SET command.
3. Termination
All resources are freed.
With the UCLIN command you can add, delete, or replace entries in the following SMP/E data sets:
• SMPCSI
• SMPMTS
• SMPSCDS
• SMPSTS
Note: With the UCLIN command, you can make changes similar to those that can be made to other data
sets with the IMASPZAP utilities. However, you cannot use a utility or an editor to change the information
in these data sets; you must use the UCLIN command.
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.
Be sure you understand the relationships between the various entries before making any UCLIN changes.
This helps ensure that any UCLIN changes you make are complete and consistent with one another. When
SMP/E processes UCLIN, it checks only the specified entry. It does not check how the changes might
affect other entries.
The following terms are used in this discussion of UCLIN processing:
subentry
A field within an entry. Each subentry has an associated type and value. An example of a single-value
subentry is the PEMAX subentry in the OPTIONS entry.
subentry list
Multiple occurrences of the same subentry type in an entry, each with a different value. For example,
the modules supplied by a PTF are saved as names in the MOD subentry list within the PTF's SYSMOD
entry.
subentry indicator
A field in an entry that does not have a data value associated with it. An example of a subentry
indicator is the APP indicator in a SYSMOD entry.
UCLIN Command
UCLIN •
,
RC( command=rc )
UCL Statements
1
ADD entry_type ( name ) •
REP ,
subentry_list ( value )
subentry_indicator
Notes:
1 You can specify more than one ADD, DEL, and REP statement.
ENDUCL Command
ENDUCL •
Operands
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the UCLIN command.
Before SMP/E processes the UCLIN command, it checks whether the return codes for the specified
commands are less than or equal to the values specified on the RC operand. If so, SMP/E can process
the UCLIN command. Otherwise, the UCLIN command fails. For more information about the RC
operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the UCLIN command. Therefore, if you use the RC operand, you must specify every
command whose return code you want SMP/E to check.
entry-type
specifies the entry type to be updated. “UCL statement syntax” on page 367 shows the entry types
that can be specified. These entries are described in more detail in z/OS SMP/E Reference.
name
specifies the name of the entry to be updated.
subentry-type
specifies the subentry type to be updated. “UCL statement syntax” on page 367 shows the subentry
types that can be specified. These subentries are described in more detail in z/OS SMP/E Reference.
subentry-list
specifies the type of subentry list to be updated. “UCL statement syntax” on page 367 shows the
subentry types that can be specified. These subentries are described in more detail in z/OS SMP/E
Reference.
subentry-indicator
specifies the subentry indicator to be updated. “UCL statement syntax” on page 367 shows the
subentry types that can be specified. These subentries are described in more detail in z/OS SMP/E
Reference.
Not all the UCL statements can be used for each entry type. Table 24 on page 368 shows which UCL
statements can be used for entries in which SMP/E data sets.
This chapter shows only the syntax of UCL statements used to process entries. See z/OS SMP/E Reference
for additional information about each entry, such as:
• A description of the entry and its subentries
• LIST examples
• UNLOAD examples
• UCLIN examples
ASSEM Entry
ADD ASSEM( name )
REP
LASTUPD( JCLIN )
UCLIN
sysmod_id
•
LASTUPDTYPE( ADD )
UPD
Assembler Input:
Note:
1. After UCLIN changes are done, the ASSEM entry must contain at least these subentries, unless the
entire entry has been deleted:
• ++ASMIN and ++ENDASMIN statements
• The associated assembler input
2. The ++ASMIN and ++ENDASMIN statements must start in column 1.
For a description of the subentries in the distribution or target zone ASSEM entry, see z/OS SMP/E
Reference.
BACKUP Entry
DEL BACKUP( sysmod_id ) •
REP
ALIAS( name )
LASTUPD( UCLIN )
sysmod_id
UPD
•
SYSLIB( ddname )
Note:
1. After UCLIN changes are done, the data element entry must contain at least these subentries, unless
the entire entry has been deleted:
• DISTLIB
• FMID
• RMID
2. The "Data Element MCS" section in z/OS SMP/E Reference shows the types of data elements that can
be specified for the element operand.
3. Some types of elements, such as panels, messages, or text, may have been translated into several
languages. In these cases, the element operand contains xxx, which represents the language used for
the element. (If an element was not translated, the element operand might not contain any xxx value.)
z/OS SMP/E Reference contains a table, "National Language Identifiers Used for Language-Unique
Elements", that shows the xxx values and the languages they represent.
For a description of the subentries in data element entries, see z/OS SMP/E Reference.
DDDEF entry
ADD DDDEF( name )
REP DELETE
KEEP
MOD PDS
SHR
•
VOLUME( volid ) WAITFORDSN
DISP=NEW Operands
CYLINDERS
TRACKS
DDDEF entry
ADD DDDEF( name )
REP
CYLINDERS
TRACKS
1 MGMTCLAS( name )
DSNTYPE ( LIBRARY )
PDS
•
UNIT( type ) , WAITFORDSN
VOLUME( volid )
Notes:
1SMP/E ignores the DSNTYPE value in the SMPTLIB DDDEF entry, unless it cannot determine the
DSNTYPE for the associated RELFILE data set.
DDDEF entry
ADD DDDEF( name ) SYSOUT( class )
REP
DDDEF entry
1
ADD DDDEF( name ) •
,
DEL
REP
CONCAT( name )
Notes:
1 You cannot use ADD to add a subentry value to the CONCAT subentry. You must use REP to replace
all the old values with the desired new values.
DEL
REP
DLIB entries
ADD DLIB( name )
REP UCLIN
sysmod_id
LASTUPDTYPE( ADD ) ,
UPD
SYSLIB( ddname )
For a description of the subentries in the distribution or target zone DLIB entry, see z/OS SMP/E Reference.
DLIBZONE entries
ADD DLIBZONE( name )
REP
RELATED( zone ) ,
SREL( srel )
•
ZONEDESCRIPTION( text )
Note:
1. DLIBZONE can also be specified as DZONE.
2. ZONEDESCRIPTION can also be specified as ZDESC.
For a description of the subentries in the distribution zone DLIBZONE entry, see z/OS SMP/E Reference.
FEATURE entry
ADD FEATURE( name )
REP
•
, PRODUCT( prodid , vv.rr.mm )
FMID( fmid )
Note:
1. After UCLIN changes are made, the FEATURE entry must contain at least the DESCRIPTION and
PRODUCT subentries, unless the entire entry has been deleted.
2. DESCRIPTION can also be specified as DESC.
For a description of the subentries in the FEATURE entry, see z/OS SMP/E Reference.
FMIDSET entries
ADD FMIDSET( name ) •
,
DEL
REP
FMID( sysmod_id )
Note:
1. After UCLIN changes are made, the FMIDSET entry must contain at least the FMID subentries, unless
the entire entry has been deleted.
2. FMIDSET can also be specified as FMSET.
For a description of the subentries in the FMIDSET entry, see z/OS SMP/E Reference.
GLOBALZONE entry
ADD GLOBALZONE
,
REP
FMID( sysmod_id )
OPTIONS( name ) ,
SREL( srel )
ZONEDESCRIPTION( text ) ,
DEL syntax
GLOBALZONE entry
DEL GLOBALZONE
, OPTIONS( name )
FMID( sysmod_id )
, ZONEDESCRIPTION( text )
SREL( srel )
•
,
ZONEINDEX( ( name ) )
Hierarchical file system element entry syntax (distribution and target zone)
REP TEXT
sysmod_id
LASTUPDTYPE( ADD ) ,
UPD
LINK( linkname )
SHSCRIPT( scriptname )
PRE POST
, ,
•
SYSLIB( ddname )
Note:
1. After UCLIN changes are made, the hierarchical file system element entry must contain at least these
subentries, unless the entire entry has been deleted:
• DISTLIB
• FMID
• RMID
• SYSLIB
2. When the hierarchical file system element entry is SHELLSCR, observe the following restrictions:
• PRE is not valid
• scriptname must match the element's name.
For a description of the subentries in the hierarchical file system element entry, see z/OS SMP/E
Reference.
Java archive (JAR) file element entry syntax (distribution and target zone)
REP
sysmod_id
LASTUPDTYPE( ADD ) ,
UPD
LINK( linkname )
SHSCRIPT( scriptname )
PRE POST
, ,
•
SYSLIB( ddname ) UMID( sysmod_id )
Note: After UCLIN changes are made, the JAR element entry must contain at least these subentries,
unless the entire entry has been deleted:
• DISTLIB
• FMID
• RMID
• SYSLIB
For a description of the subentries in the JAR file element entry, see z/OS SMP/E Reference.
LMOD entry
ADD LMOD( name )
REP
AMODE=ANY CALL ,
AMODE=MIN
CALLLIBS( name )
AMODE=24
AMODE=31
AMODE=64
MIXED COMPAT=PM1
COMPAT=PM2
COMPAT=PM3
COMPAT=PM4
DC DYNAM(DLL)
NOPACK NOPRIME
UCLIN
sysmod_id
DEL
MOV
REN
UPD
, NE NOCALL OL
MODDEL( module )
REUS(NONE)
REUS Operands
REFR RENT REUS
RMODE=24
RMODE=SPLIT
, UPCASE( YES )
NO
SYSLIB( ddname )
, 2
XZMODP
1
XZMOD ( ( module , zone ) )
•
Link-edit control statements
Notes:
1 XZMOD is valid only for a target zone.
2 XZMODP is valid only for a target zone.
Note:
1. After UCLIN changes are made, the LMOD entry must contain at least the SYSLIB subentries, unless
the entire entry has been deleted.
2. XZMOD and XZMODP subentries are valid only for target zone entries.
3. AMODE=value can also be specified as AMOD=value.
4. NOCALL can also be specified as NCAL.
5. REUSE(NONE) is mutually exclusive with REFR and RENT, as well as REUS.
6. RMODE=value can also be specified as RMOD=value.
7. The ++LMODIN and ++ENDLMODIN statements must start in column 1.
8. The link-edit control statements must start in or after column 2.
For a description of the subentries in the distribution or target zone LMOD entry, see z/OS SMP/E
Reference.
MAC entry
ADD MAC( name )
REP
, LASTUPD( JCLIN )
UCLIN
GENASM( name )
sysmod_id
LASTUPDTYPE( ADD ) ,
MOV
MALIAS( name )
UPD
•
,
UMID( sysmod_id )
Note:
1. After UCLIN changes are made, the MAC entry must contain at least these subentries, unless the entire
entry has been deleted:
• FMID
• RMID
2. GENASM can also be specified as ASSEM.
For a description of the subentries in the MAC entry, see z/OS SMP/E Reference.
MOD entry
ADD MOD( name )
REP AMODE=MIN
AMODE=24
AMODE=31
AMODE=64
ASSEMBLE COMPAT=LKED ,
COMPAT=PM1
CSECT( name )
COMPAT=PM2
COMPAT=PM3
COMPAT=PM4
NOPACK NOPRIME
LASTUPD( JCLIN )
UCLIN
sysmod_id
LASTUPDTYPE( ADD ) ,
DEL
LMOD( name )
MOV
UPD
REUS(NONE)
RMODE=24
RMODE=SPLIT
, ,
UPCASE( YES )
NO
•
, 2
XZLMODP
1
XZLMOD ( ( load module , zone ) )
Notes:
Note:
1. After UCLIN changes are made, the MOD entry must contain at least these subentries, unless the
entire entry has been deleted:
• DISTLIB
• FMID
• RMID
2. XZLMOD and XZLMODP subentries are valid only for target zone entries.
3. ALIGN2 can also be specified as ALN2.
4. AMODE=value can also be specified as AMOD=value.
5. NOCALL can also be specified as NCAL.
6. REUSE(NONE) is mutually exclusive with REFR and RENT, as well as REUS.
7. RMODE=value can also be specified as RMOD=value.
For a description of the subentries in the MOD entry, see z/OS SMP/E Reference.
MTSMAC entry
DEL MTSMAC( name ) •
OPTIONS entry
ADD OPTIONS( name )
REP
NO
NO
category
NO
120
RECEXZGRP( value )
value
RETRYDDN( ALL )
,
ddname
, SAVEMTS SAVESTS
EXRTYDD( ddname )
, UPDATE( name )
SUPPHOLD( value )
•
ZAP( name )
For a description of the subentries in the OPTIONS entry, see z/OS SMP/E Reference.
ORDER entry
DEL ORDER( name ) •
PRODUCT entry
ADD PRODUCT( prodid , vv.rr.mm )
REP
, ,
•
URL( product_url ) VENDOR( vendor_name )
Note:
1. After UCLIN changes are made, the PRODUCT entry must contain at least the DESCRIPTION and SREL
subentries, unless the entire entry has been deleted.
2. DESCRIPTION can also be specified as DESC.
For a description of the subentries in the PRODUCT entry, see z/OS SMP/E Reference.
REP
ALIAS( name )
LASTUPD( UCLIN )
sysmod_id
UPD
•
SYSLIB( ddname )
Note:
1. After UCLIN changes are done, the program element entry must contain at least these subentries,
unless the entire entry has been deleted:
• DISTLIB
• FMID
• RMID
For a description of the subentries in the program element entry, see z/OS SMP/E Reference.
SRC entry
ADD SRC( name )
REP
LASTUPD( JCLIN )
UCLIN
sysmod_id
MOV
UPD
•
SYSLIB( ddname ) ,
UMID( sysmod_id )
For a description of the subentries in the SRC entry, see z/OS SMP/E Reference.
STSSRC entry
DEL STSSRC( name ) •
DEL APAR
REP FUNCTION
USERMOD
, DESCRIPTION ( description )
ASSEM( name )
, DELLMOD
DELETE( sysmod_id )
, ,
ELEMMOV ERROR ,
EMOVE( name )
, FESN( number )
FEATURE ( feature )
FMID( sysmod_id ) ,
HFS( name )
, ,
JARUPD( name )
UPD
, ,
, ,
, ,
REGEN RENLMOD ,
REQ( sysmod_id )
REWORK( level ) ,
RLMOD( name )
, ,
, ,
, ,
•
, ,
ACCDATE
ACCTIME
APPDATE
APPTIME
Note:
1. Generally, after UCLIN changes are made, the SYSMOD entry must contain at least these subentries,
unless the entire entry has been deleted:
• ACCEPT or APPLY
• APAR, FUNCTION, PTF, or USERMOD
• INSTALLDATE
• RECDATE
• FMID
However, the entry for a deleted (but not superseded) SYSMOD can contain only the DELBY and
CIFREQ subentries. The entry for a SYSMOD that is superseded, or both deleted and superseded,
must contain the SUPBY subentry, instead of the DELBY subentry. Also, a SYSMOD entry can be
created with only a CIFREQ subentry to identify requisites for a SYSMOD to be installed later.
2. ACCDATE, ACCEPT, and ACCTIME can be used only in a distribution zone SYSMOD entry.
• ACCEPT can also be specified as ACPT or ACC.
• INSTALLDATE can be specified instead of ACCDATE. INSTALLDATE can also be specified as
INSDATE.
• INSTALLTIME can be specified instead of ACCTIME. INSTALLTIME can also be specified as
INSTIME.
3. APPDATE, APPLY, and APPTIME can be used only in a target zone SYSMOD entry.
• APPLY can also be specified as APPL or APP.
• INSTALLDATE can be specified instead of APPDATE. INSTALLDATE can also be specified as
INSDATE.
• INSTALLTIME can be specified instead of APPTIME. INSTALLTIME can also be specified as
INSTIME.
4. The element operand represents data elements. The "Data Element MCS" section z/OS SMP/E
Reference shows the types of data elements that can be specified for the element operand.
Some types of elements, such as panels, messages, or text, may have been translated into several
languages. In these cases, the element operand contains xxx, which represents the language used for
the element. (If an element was not translated, the element operand does not contain any xxx value.)
z/OS SMP/E Reference contains a table, "National Language Identifiers Used for Language-Unique
Elements", that shows the xxx values and the languages they represent.
5. ERROR can also be specified as ERR.
6. REGEN can also be specified as RGN.
7. RESDATE, RESTORE, and RESTIME can be used only in a target zone SYSMOD entry.
8. RESTORE can also be specified as REST or RES.
DEL ,
REP
CIFREQ( ( causer , req ) )
Note: The DELBY and CIFREQ operands are mutually exclusive. Two separate UCLIN commands must be
used to change both CIFREQ and DELBY.
For a description of the subentries in the distribution or target zone SYSMOD entry, see z/OS SMP/E
Reference.
DEL
REP
For a description of the subentries in the distribution or target zone SYSMOD entry, see z/OS SMP/E
Reference.
REP
ACCID( zone )
, ,
DESCRIPTION ( description )
•
, TLIBPREFIX( prefix )
SOURCEID( source_id )
Note:
1. A source ID value cannot span lines in the UCLIN command.
2. You must explicitly specify a source ID in the UCLIN command. You cannot use asterisks and percent
signs as placeholders to implicitly identify a set of source IDs in the UCLIN command.
For a description of the subentries in the global zone SYSMOD entry, see z/OS SMP/E Reference. Note that
only a limited subset of these subentries can be modified with UCLIN.
TARGETZONE entry
ADD TARGETZONE( name )
DEL OPTIONS( name ) RELATED( zone )
REP
, ZONEDESCRIPTION( text )
SREL( srel )
•
, DEFERRED
XZLINK( AUTOMATIC )
TIEDTO( zone )
Note:
1. TARGETZONE can also be specified as TZONE.
2. ZONEDESCRIPTION can also be specified as ZDESC.
For a description of the subentries in the TARGETZONE entry, see z/OS SMP/E Reference.
UTILITY entry
LIST(YES)
ADD UTILITY( name )
REP
•
PARM( string ) PRINT( ddname ) RC( rc )
For a description of the subentries in the UTILITY entry, see z/OS SMP/E Reference.
ZONESET entry
XZREQCHK(NO)
ADD ZONESET( name )
DEL XZREQCHK(YES)
REP
•
,
ZONE( zone )
For a description of the subentries in the ZONESET entry, see z/OS SMP/E Reference.
Note:
1. SMPMTS is required if the MTSMAC entry is specified on a UCL statement.
2. SMPSTS is required if the STSSRC entry is specified on a UCL statement.
3. SMPSCDS is required if BACKUP entries are specified on a UCL statement.
4. zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated through
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be
used to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
Output
The File Allocation report is produced during UCLIN processing. It is described in Chapter 34, “SMP/E
reports,” on page 461.
Usage notes
• If you want to add a subentry or a subentry value, you should use the ADD statement. Although, in some
cases, you may get the desired results using the REP statement, in other cases, the results may not be
what you expected. For more information, see “Processing” on page 393.
• If you want to delete a subentry or a subentry value, do not try to do it by adding a null value. For
example, do not use ADD subentry (). Use the DEL statement instead.
• For subentries and subentry lists, if you want to delete all the values but do not know what they all
are, you can specify the subentry or subentry list operand followed by a left and right parenthesis. For
example, to delete all MOD values in the SYSMOD entry for UR11111, you could use these commands:
The parentheses mean that SMP/E should delete the subentry or subentry list they enclose, even
though no value is specified.
Note: This procedure can also be used with REP. As with DEL, there must be a current existing value.
Examples
The following general examples are provided to help you use the UCLIN command.
For specific examples of UCLIN for each entry type, see z/OS SMP/E Reference.
You can use the following commands to replace an existing FIXCAT subentry with a new list of fixes:
You can use the following commands to delete a FIXCAT subentry from the OPTIONS entry:
You can use the following commands to delete the entire OPTIONS entry:
Processing
SMP/E processes each UCL statement and each operand on each UCL statement as they are encountered.
Table 25 on page 393 shows how these statements are processed.
Subentry If the subentry does not If the subentry exists in If the subentry exists in
exist in the entry, SMP/E the entry, SMP/E deletes the entry, SMP/E replaces
adds the new subentry. the subentry. the current value with the
new value.
Otherwise, an error Otherwise, an error
occurs. occurs. If the subentry does not
exist in the entry, SMP/E
adds the new subentry.
Subentry list or subentry If the subentry list does If the subentry list value SMP/E does not replace
list value not exist in the entry, exists in the entry, SMP/E individual values in a
SMP/E adds it. deletes that value. subentry list.
Likewise, if the subentry If all the existing subentry If the subentry list exists
list value does not exist in list values were specified, in the entry, SMP/E
the entry, SMP/E adds it. or if a null value was replaces all the current
specified, SMP/E deletes values with the new value.
Otherwise, an error
the entire subentry.
occurs. If the subentry list does
Otherwise, an error not exist in the entry,
occurs. SMP/E adds it.
Subentry indicator If the subentry indicator is If the subentry indicator is SMP/E sets the indicator
not set, SMP/E sets it to set to “on,” SMP/E resets to “on,” regardless of its
“on.” it to “off.” current setting.
Otherwise, an error Otherwise, an error
occurs. occurs.
For element and SYSMOD entries, SMP/E first copies the entry into storage. Then, as SMP/E encounters
each operand, it updates the copy of the entry. When SMP/E reaches the end of the UCL statement, it
makes sure the updated entry contains at least the minimum data required and that the data in that entry
is consistent. If processing was successful, or if only informational or warning messages were issued,
SMP/E replaces the original entry with the updated copy.
If an error occurs while one of the UCL statements is being processed, SMP/E does not make the change
for that one statement. However, it continues to process subsequent UCL statements and, if they are
valid, makes the requested changes. For each error, SMP/E issues an error message indicating the cause
of the problem and deletes the copy of the entry. The original entry remains unchanged.
Note: For entries other than element entries or FEATURE, PRODUCT, or SYSMOD entries, if UCLIN deletes
all the subentries for that entry, SMP/E deletes the entire entry.
For each element entry successfully changed by a UCL statement, SMP/E sets the LASTUPD subentry to
UCLIN and the LASTUPDTYPE subentry to either ADD or UPD.
The return code for all the UCLIN processing is the highest return code from the processing of any of the
UCL statement in the UCLIN input.
UCLIN processing stops when the ENDUCL command is encountered.
Global zone
Update with exclusive enqueue.
SMPPTS
Update with exclusive enqueue.
Target zone
Update with exclusive enqueue.
DLIB zone
Update with exclusive enqueue.
Note: Either the global zone and SMPPTS, the target zone, or the distribution is accessed, based on the
zone specified in the previous SET command.
3. Termination
All resources are freed.
The UNLOAD command causes SMP/E to unload entries from the target zone or distribution zone to the
SMPPUNCH data set. The output produced is in the form of UCL statements, which, when processed by
SMP/E, re-create the unloaded entries in the distribution zone or the target zone. This function allows
the user to unload selected parts of a target zone or distribution zone for initialization of entries on other
zones. Do not use UNLOAD to back up a zone. Use ZONECOPY or ZONEEXPORT/ZONEIMPORT instead.
Syntax
UNLOAD Command
UNLOAD
ASSEM
,
( name )
DDDEF
,
( name )
DLIB
,
( name )
element
,
( name )
FORFMID( name )
hfs_element
,
( name )
JAR
,
( name )
LMOD
,
( name )
MAC
,
( name )
MOD
,
( name )
PROGRAM
,
( name )
SRC
,
( name )
SYSMOD options
, APARS FUNCTIONS PTFS
( sysmod_id )
EXSRCID( source_id )
, SUP
NOSUP
SOURCEID( source_id )
Note:
1. The SYSMODS operand is optional if you specify any of the following operands:
2. The XZLMODP and XZMODP operands are valid only for target zone entries.
See the operand descriptions for details.
Operands
APARS
indicates that SMP/E should unload APAR SYSMODs.
Note:
1. APARS can also be specified as APAR.
2. When APARS is used with FUNCTIONS, PTFS, or USERMODS, SMP/E unloads any SYSMOD whose
type matches any one of those specified.
3. Because this operand describes the type of SYSMOD to be unloaded, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
ASSEM
indicates that SMP/E should unload all ASSEM entries or the specified ASSEM entries.
DDDEF
indicates that SMP/E should unload all DDDEF entries or the specified DDDEF entries.
DELETE
indicates that SMP/E should unload entries for function SYSMODs that have been explicitly deleted
from the target zone or distribution zone by other function SYSMODs.
Note:
1. DELETE can also be specified as DEL.
2. Because this operand describes the type of SYSMOD to be unloaded, SMP/E processes it as though
SYSMOD was also specified, even if it was not.
DLIB
indicates that SMP/E should unload all DLIB entries or the specified DLIB entries.
element
is used to unload a particular type of data element entry. It indicates that SMP/E should unload all
data element entries of that type or the specified data element entries.
Note:
1. Data element entries exist only in the target and distribution zones.
2. The "SMP/E Modification Control Statements" chapter in z/OS SMP/E Reference shows the types of
data elements that can be specified for the element operand.
3. Some types of elements, such as panels, messages, or text, may have been translated into several
languages. In these cases, the element operand contains xxx, which represents the language used
for the element. (If an element was not translated, the element operand does not contain any xxx
value.) The "SMP/E Modification Control Statements" chapter in z/OS SMP/E Reference contains a
table that shows the xxx values and the languages they represent.
ERROR
indicates that SMP/E should unload SYSMOD entries in which the ERROR indicator is set.
Note:
1. ERROR can also be specified as ERR.
2. Because this operand describes the type of SYSMOD to be unloaded, SMP/E processes it as though
SYSMOD was also specified, even if it was not.
3. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
EXSRCID
indicates that SYSMODs associated with the specified source IDs should not be unloaded.
Note:
1. Because this operand describes the type of SYSMOD to be unloaded, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
2. There are two ways to specify source IDs:
• Explicitly, by fully specifying a particular source ID (for example, RSU0711). In this case, all
SYSMODs that contain the identified source ID are excluded.
• Implicitly, by partially specifying a source ID value using asterisks (*) as global characters and
percent signs (%) as placeholders.
– A single asterisk indicates that zero or more characters can occupy that position. Here are
some examples:
- For RSU*, all SYSMODs that contain a source ID that begins with the character string RSU*
are excluded.
- For *0711, all SYSMODs that contain a source ID that ends with the character string 0711
are excluded.
- For RSU*1, all SYSMODs that contain a source ID that begins with the character string RSU
and ends with the character string 1 are excluded.
– A single percent sign indicates that any one single character can occupy that position. For
RSU0%11, for example, SYSMODs that contain any of these source IDs are excluded: RSU0711,
RSU0211, and RSU0311. SYSMODs that contain source ID RSU00711 are not excluded.
Any number of asterisks and percent signs can be used within a single partially specified source ID.
The following examples are valid source ID specifications:
RSU0709
RSU*
IBM.Device.20%4
IBM.Device.*.zAAP
3. A given source ID may be explicitly specified only once on the EXSRCID operand.
4. The same source ID may not be explicitly specified on both the EXSRCID and SOURCEID operands.
5. If a source ID is specified implicitly on the EXSRCID operand and also, either implicitly or explicitly,
on the SOURCEID operand, all SYSMODs with that source ID are excluded from processing.
6. If a given SYSMOD has multiple source IDs, if at least one of those source IDs is specified either
implicitly or explicitly on the SOURCEID operand, and if another one of its source IDs is specified
either implicitly or explicitly on the EXSRCID operand, the SYSMOD is excluded from processing.
For example, assume PTF UZ12345 has been assigned source IDs SMCREC and PUT0703. If you
specify SOURCEID(SMC*) and EXSRCID(PUT0703), the SYSMOD is excluded from processing.
7. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
8. A source ID value might contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified source ID value. For example, a specified source ID
value of ABCDEF matches a value of abcdef.
FORFMID
indicates that SMP/E should unload only entries currently owned by one of the specified FMIDs or by
an FMID defined in one of the specified FMIDSET entries.
Note:
1. You can specify FMIDs, FMIDSET entries, or both.
2. Only element and SYSMOD entries are unloaded by the FORFMID operand.
3. Because this operand describes the type of SYSMOD to be listed, SMP/E processes it as though
SYSMOD had also been specified, even if it has not, unless an element type operand was also
specified. In that case, FORFMID limits the element entries that are unloaded.
4. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
FUNCTIONS
indicates that SMP/E should unload function SYSMODs.
Note:
1. FUNCTIONS can also be specified as FUNCTION.
2. When FUNCTIONS is used with APARS, PTFS, or USERMODS, SMP/E unloads any SYSMOD whose
type matches any one of those specified.
3. Because this operand describes the type of SYSMOD to be unloaded, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
hfs_element
is used to unload a particular type of hierarchical file system element entry. It indicates that SMP/E
should unload all hierarchical file system element entries of that type or the specified hierarchical file
system element entries.
Note:
1. Hierarchical file system element entries exist only in the target and distribution zones.
2. The "SMP/E Modification Control Statements" chapter in z/OS SMP/E Reference shows the types of
hierarchical file system elements that can be specified for the hfs_element operand.
3. Some types of hierarchical file system elements, such as panels, messages, or text, may have been
translated into several languages. In these cases, the hfs_element operand contains xxx, which
represents the language used for the element. (If an element was not translated, the hfs_element
operand does not contain any xxx value.) The "SMP/E Modification Control Statements" chapter in
z/OS SMP/E Reference contains a table that shows the xxx values and the languages they represent.
JAR
indicates that SMP/E should unload all JAR entries or the specified JAR entries.
LMOD
indicates that SMP/E should unload all LMOD entries or the specified LMOD entries.
MAC
indicates that SMP/E should unload all MAC entries or the specified MAC entries.
MOD
indicates that SMP/E should unload all MOD entries or the specified MOD entries.
NOACCEPT
indicates that SMP/E should unload SYSMOD entries from the current zone that are not accepted into
the specified distribution zone.
Note:
1. NOACCEPT can also be specified as NOACC.
2. If a target zone is specified on the SET command and no distribution zone is specified on
NOACCEPT, SMP/E uses the distribution zone from the RELATED subentry in the TARGETZONE
entry.
3. If a distribution zone is specified on the SET command and no distribution zone is specified on
NOACCEPT, SMP/E issues an error message.
4. Because this operand describes the type of SYSMOD to be unloaded, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
5. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
NOAPPLY
indicates that SMP/E should unload SYSMOD entries from the current zone that are not applied to the
specified target zone.
Note:
1. NOAPPLY can also be specified as NOAPP.
2. If a distribution zone is specified on the SET command and no target zone is specified on NOAPPLY,
SMP/E uses the target zone from the RELATED subentry in the DLIBZONE entry.
3. If a target zone is specified on the SET command and no target zone is specified on NOAPPLY,
SMP/E issues an error message.
4. Because this operand describes the type of SYSMOD to be unloaded, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
5. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
NOSUP
indicates that SMP/E should unload entries for SYSMODs that have not been superseded.
Note:
1. NOSUP is mutually exclusive with SUP.
2. Because this operand describes the type of SYSMOD to be unloaded, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
3. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
PROGRAM
indicates that SMP/E should unload all program element entries or the specified program element
entries.
PTFS
indicates that SMP/E should unload PTF SYSMODs.
Note:
1. PTFS can also be specified as PTF.
2. When PTFS is used with APARS, FUNCTIONS, or USERMODS, SMP/E unloads any SYSMOD whose
type matches any one of those specified.
3. Because this operand describes the type of SYSMOD to be unloaded, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
RESTORE
indicates that SMP/E should unload SYSMOD entries in which the RESTORE indicator is set. These
SYSMODs have been incompletely restored and are “in error.”
Note:
RSU0709
RSU*
IBM.Device.20%4
IBM.Device.*.zAAP
3. A given source ID may be explicitly specified only once on the SOURCEID operand.
4. The same source ID may not be explicitly specified on both the EXSRCID and SOURCEID operands.
5. If a source ID is specified implicitly on the SOURCEID operand and also, either implicitly
or explicitly, on the EXSRCID operand, all SYSMODs with that source ID are excluded from
processing.
6. If a given SYSMOD has multiple source IDs, if at least one of those source IDs is specified either
implicitly or explicitly on the SOURCEID operand, and if another one of its source IDs is specified
either implicitly or explicitly on the EXSRCID operand, the SYSMOD is excluded from processing.
For example, suppose PTF UZ12345 has been assigned source IDs SMCREC and PUT0703. If you
specify SOURCEID(SMC*) and EXSRCID(PUT0703), the SYSMOD is excluded from processing.
7. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
8. A source ID value might contain mixed case alphabetic characters. However, SMP/E ignores the
case when identifying matches for a specified source ID value. For example, a specified source ID
value of ABCDEF matches a value of abcdef.
SRC
indicates that SMP/E should unload all SRC entries or the specified SRC entries.
SUP
indicates that SMP/E should unload entries for SYSMODs that have been superseded.
Note:
1. SUP is mutually exclusive with NOSUP.
2. Because this operand describes the type of SYSMOD to be unloaded, SMP/E processes it as though
SYSMOD had also been specified, even if it has not.
3. If no SYSMOD types are specified, all eligible SYSMODs are included. To process specific types of
SYSMODs, you must specify the desired SYSMOD types.
SYSMODS
indicates that SMP/E should unload all SYSMOD entries or the specified SYSMOD entries.
You can limit which SYSMOD entries are unloaded by coding one or more of the following SYSMOD
qualifier operands:
APARS, FUNCTIONS, PTFS, or USERMODS
DELETE
ERROR
EXSRCID
FORFMID
NOACCEPT
NOAPPLY
NOSUP or SUP
RESTORE
SOURCEID
Note:
1. SYSMODS can also be specified as SYSMOD.
2. If you specify any of the SYSMOD qualifier operands, SMP/E assumes that you want the SYSMOD
entries unloaded and thus processes as if you had also entered SYSMOD.
USERMODS
indicates that SMP/E should unload USERMODs.
Note:
1. USERMODS can also be specified as USERMOD.
2. When USERMODS is used with APARS, FUNCTIONS, or PTFS, SMP/E unloads any SYSMOD whose
type matches any one of those specified.
XZLMODP
indicates that SMP/E should unload MOD entries for all modules that have been linked into load
modules controlled by a different target zone. (The MOD entries for these modules contain XZLMODP
subentries.)
Note:
1. XZLMODP is allowed only when the SET command specifies a target zone.
2. The appropriate MOD entries are unloaded, regardless of whether the MOD operand was specified
on the UNLOAD command.
3. If both MOD and XZLMODP are specified, only MODs with cross-zone subentries are unloaded. If
a list of MODs and XZLMODP are specified, all the specified MODs, as well as all the MODs with
cross-zone subentries, are unloaded.
XZMODP
indicates that SMP/E should unload LMOD entries for all load modules containing modules from a
different target zone. (The LMOD entries for these load modules contain XZMODP subentries.)
Note:
1. XZMODP is allowed only when the SET command specifies a target zone.
2. The appropriate LMOD entries are unloaded, regardless of whether the LMOD operand was
specified on the UNLOAD command.
3. If you specify both LMOD and XZMODP, only LMODs with cross-zone subentries are unloaded. If
you specify a list of LMODs and XZMODP, all the specified LMODs, as well as all the LMODs with
cross-zone subentries, are unloaded.
For examples of unloading each specific entry type, see the section for that entry in the "SMP/E Data Set
Entries" chapter in z/OS SMP/E Reference.
Syntax notes
• Except where noted, you can specify multiple operands on a single UNLOAD command. This improves
the overall performance of SMP/E.
• The order in which the entries are unloaded depends on their sequence in the appropriate SMP/E data
set, not on the order specified on the UNLOAD command.
• You can mix mass requests and selective requests on the same UNLOAD command. For example:
• If you specify a given SYSMOD on the SYSMODS operand, the SYSMOD is unloaded, regardless of
whether it may be included or excluded by other operands.
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according to
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used
to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always
required for a zone.
Output
UNLOAD output is written to the SMPPUNCH data set. For an example of the UNLOAD output for a
particular entry type, see the section for that entry type in the "SMP/E Data Set Entries" chapter in z/OS
SMP/E Reference.
The following reports are produced during UNLOAD processing:
• File Allocation report
• UNLOAD Summary report
These reports are described in Chapter 34, “SMP/E reports,” on page 461.
Examples
For examples of the UNLOAD command and UNLOAD output for each entry type, see the "SMP/E Data Set
Entries" chapter in z/OS SMP/E Reference.
Processing
Before SMP/E unloads any entries, it first determines what type of UNLOAD processing was requested:
• If no specific entries are specified (for example, if UNLOAD. is specified), it does mass-mode
processing.
Likewise, if specific entry types are specified, (for example, if UNLOAD MAC MOD. is specified to unload
all the MAC and MOD entries in a target zone), SMP/E also does mass-mode processing.
• If specific entries are specified (for example, if UNLOAD MAC(MACA,MACB) MOD(MODA,MODB).
is specified to unload specific MAC and MOD entries in a target zone), SMP/E does select-mode
processing.
Note: A single UNLOAD command may combine mass-mode and select-mode processing.
Mass-mode processing
In mass-mode processing, SMP/E checks whether any entry types were specified. If so, SMP/E unloads
all entries of the indicated type found in the set-to zone. SMP/E reads sequentially through the set-to
zone. For each entry it finds, it checks whether the entry is of the specified type. If the entry meets all the
requirements, SMP/E formats and prints the data.
If no entry types were specified, SMP/E unloads all the entries in the set-to zone and reads sequentially
through that zone. For each entry it finds, it formats and prints the data.
Select-mode processing
In select-mode processing, SMP/E unloads all the specified entries found in the set-to zone. SMP/E goes
directly to each of the entries specified and locates the data for the entry. For each entry it finds, it
formats and prints the data.
DLIB zone
Read without enqueue.
Note: Either the target zone or the distribution zone is used during setup according to the zone type
specified in the previous SET command.
2. UNLOAD processing
Global zone
Read with shared enqueue.
Target zone
Read with shared enqueue.
DLIB zone
Read with shared enqueue.
Note: The zones used depend on the UNLOAD command operands, and the zone type specified in the
previous SET command.
3. Termination
All resources are freed.
With the UPGRADE command, you can specify when SMP/E is permitted to make incompatible changes to
SMP/E data sets.
Note: Once the UPGRADE command has been run for a zone, there is no way to reverse the changes it
makes to that zone.
Syntax
UPGRADE command
UPGRADE •
Operands
This command has no operands.
Note: zone represents the DD statement required for the set-to zone to be processed by this command.
If the DD statement is not specified, the data set is dynamically allocated according to the ZONEINDEX
information in the GLOBALZONE entry.
Output
The UPGRADE command produces a File Allocation Report. See Chapter 34, “SMP/E reports,” on page
461 for a description of this report.
Example
Suppose an APPLY command fails because SMP/E detects that an incompatible change would be made
to SMP/E data sets if the command were allowed to complete. You must decide if you are ready to make
such changes or if you want to continue to use a prior release level of SMP/E that will not make those
changes. Once you have decided you no longer need to use prior release levels of SMP/E to process the
SMP/E data sets and are ready to make incompatible changes to your SMP/E data sets, you can use the
UPGRADE command to allow SMP/E to make such changes.
SET BDY(ZOSTGT).
UPGRADE.
APPLY SOURCEID(RSU0203)
BYPASS(HOLDSYS)
CHECK.
In this example, the UPGRADE command indicates incompatible changes may be made to SMP/E data
sets. If UPGRADE is not specified, then SMP/E stops any processing that would make incompatible
changes to SMP/E data sets. In this example, the APPLY command would very likely fail if the UPGRADE
command were not first run. However, once the UPGRADE command is run for a particular zone, then all
SMP/E commands are authorized to make incompatible changes to all SMP/E data sets in that zone.
Processing
The UPGRADE command will record the release and PTF level of the currently running SMP/E in the
UPGLEVEL subentry of the zone entry for the set-to zone only if it has not already been set to the current
SMP/E release level or a higher value. If the UPGLEVEL subentry for the set-to zone is already set to
the current SMP/E release level or a higher value, no further processing is necessary. So, for example, if
the UPGRADE command is run using SMP/E Version 3 Release 2 (with no service applied) and the set-to
zone has no UPGLEVEL subentry, or the UPGLEVEL subentry for the set-to zone is less than SMP/E 32.00,
SMP/E updates the zone entry to set the UPGLEVEL to SMP/E 32.00. If the same zone is later processed
by another UPGRADE command using a different SMP/E Version 3 Release 2 that has service applied, the
higher service level SMP/E will update the UPGLEVEL subentry to reflect its PTF level (SMP/E 32.11, for
example).
The ZONECOPY command can be used to copy an entire target or distribution zone from an existing CSI
data set to another CSI data set. With ZONECOPY, you can copy a zone from a CSI containing multiple
zones, or from a CSI containing just one zone. SMP/E copies the data from the input zone to the other CSI
and renames the receiving zone.
ZONECOPY processing is similar to access method services (AMS) REPRO processing of the same data.
To copy a single zone, or to copy a CSI containing just one zone, though, you should not use AMS REPRO
—use ZONECOPY instead. In addition to copying the zone, ZONECOPY renames the copied zone for you.
However, to copy a complete CSI containing multiple zones, you need to use AMS REPRO. SMP/E does not
provide any commands that copy more than one zone at a time.
You can use ZONECOPY to copy the following input zones into the following receiving zones:
• A distribution zone into a distribution zone
• A distribution zone into a target zone
• A target zone into a target zone
Note: You cannot copy a target zone into a distribution zone. A global zone cannot be an input or receiving
zone.
Syntax
ZONECOPY command
ZONECOPY ( zone1 ) INTO( zone2 )
•
RELATED( zone ) ,
RC( command=rc )
Operands
zone1
specifies the name of the zone to be copied. This cannot be the global zone.
INTO
specifies the name of the zone to receive the copied data. This cannot be the global zone. You can
specify the following combinations of input and receiving zones:
• Distribution zone to distribution zone
• Target zone to target zone
• Distribution zone to target zone
Note: A distribution zone cannot receive a target zone.
A ZONEINDEX subentry for the receiving zone must be specified in the global zone. Also, before you
run the ZONECOPY command, make sure the receiving CSI has been allocated and has at least a
GIMZPOOL record in it.
OPTIONS
specifies the name of the OPTIONS entry to use for processing the receiving zone. The OPTIONS
subentry in the zone definition of the receiving zone is set to the specified name.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the ZONECOPY command.
Before SMP/E processes the ZONECOPY command, it checks whether the return codes for the
specified commands are less than or equal to the values specified on the RC operand. If so, SMP/E can
process the ZONECOPY command. Otherwise, the ZONECOPY command fails. For more information
about the RC operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the ZONECOPY command. Therefore, if you use the RC operand, you must specify
every command whose return code you want SMP/E to check.
RELATED
specifies the name of the target or distribution zone to which the receiving zone is related. The
RELATED subentry in the zone definition of the receiving zone is set to the specified name.
Syntax notes
The input and receiving zones must meet all these conditions:
• Be defined in the same global zone
• Have different names
• Be located in different CSI data sets
If you specify the OPTIONS or RELATED operand, SMP/E either adds new subentries if none exist or
replaces the existing subentries with the new ones before writing them to the receiving zone.
Note: zone represents the DD statements required for each distribution zone or target zone referred to in
this command. If the DD statements are not specified, the data sets are dynamically allocated according
to the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be
used to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
Output
The File Allocation report is produced during ZONECOPY processing. See Chapter 34, “SMP/E reports,” on
page 461 for a description of this report.
Examples
The following examples are provided to help you use the ZONECOPY command.
After the ZONECOPY operation, the contents of zone CPYTEST have been copied into zone CPYPROD.
Note: The two zones must be in different CSI data sets.
After the preceding SMP/E commands have completed, the global zone ZONEINDEX indicates that zone
TSTDLB1 is still in SMP.DLB1.CSI and has not been changed. A new global zone ZONEINDEX subentry has
been created to indicate that zone TSTDLB2 is in SMP.DLB2.CSI, with a new related zone TSTTGT2 and
options entry TSTOPT.
Note: The two zones must be in different CSI data sets.
After the preceding SMP/E commands have completed, the global zone ZONEINDEX specifies that zone
CPYDLIB is still in SMP.DLB.CSI and has not been changed. A new global zone ZONEINDEX subentry has
been created and specifies that zone CPYTGT is in SMP.TGT.CSI, with a new related zone CPYDLB1.
Note: The two zones must be in different CSI data sets.
Processing
The ZONECOPY command copies a specified distribution or target zone from one CSI data set to another.
SMP/E adds the new zone to the end of the receiving CSI data set. The input distribution or target zone
remains in the input CSI data set.
Before copying the zone, SMP/E checks that the parameters entered are correct and that the copy request
is valid. If any of the checks fail, SMP/E issues an error message, and the ZONECOPY command fails.
SMP/E checks that:
• The input and receiving zones are defined in the same global zone.
• The input and receiving zones have different names.
• The input and receiving zones are in different CSI data sets.
• The combination of input and receiving zone types is valid.
• No cross-zone subentry from the input zone refers to a zone with the same name as the receiving zone.
If all the validity checking is successful, the zone can be copied. SMP/E opens the input zone for read
access and opens the receiving zone for update processing. SMP/E then reads the data from the input
zone and writes the data into the receiving zone.
If the input zone contained cross-zone subentries, SMP/E issues warning messages.
If the input and receiving zone types are different, SMP/E changes the zone type in the zone definition
record before writing it to the receiving zone. When it reaches the end of the input zone file, SMP/E closes
the input and receiving zones.
There are times when it is necessary to delete the SMP/E data for one of the systems you are supporting.
Examples of when this may become necessary are:
• After performing a full system generation or running the output from the SMP/E GENERATE command,
you have to delete the information describing the previous target system libraries and rebuild that
information to describe the new set of target system libraries built from the distribution libraries.
• After installing a new level of a product that existed in its own target zone and distribution zone, you
want to delete the information about the old level of the product and continue processing only the new
level.
With the ZONEDELETE command, you can delete a specified target zone or distribution zone from the CSI
in which it was contained.
Note: The CSI data set is not deleted; only the specified zone is deleted.
Syntax
ZONEDELETE command
ZONEDELETE TARGETZONE( zone )
ZDEL DLIBZONE( zone )
•
,
RC( command=rc )
Operands
DLIBZONE
specifies the distribution zone to be deleted.
Note:
1. DLIBZONE can also be specified as DZONE.
2. DLIBZONE is mutually exclusive with TARGETZONE.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the ZONEDELETE command.
Before SMP/E processes the ZONEDELETE command, it checks whether the return codes for the
specified commands are less than or equal to the values specified on the RC operand. If so, SMP/E
can process the ZONEDELETE command. Otherwise, the ZONEDELETE command fails. For more
information about the RC operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the ZONEDELETE command. Therefore, if you use the RC operand, you must specify
every command whose return code you want SMP/E to check.
TARGETZONE
specifies the target zone to be deleted.
Note:
1. TARGETZONE can also be specified as TZONE.
2. TARGETZONE is mutually exclusive with DLIBZONE.
Syntax notes
• For SMP/E to determine which CSI data set contains the zone to be deleted, there must already be a
zone index for that zone.
• The zone type specified in the zone index must match the type specified on the ZONEDELETE command.
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according to
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used
to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always
required for a zone.
Usage notes
• Once a ZONEDELETE command has been successfully processed, the data cannot be recovered unless
you have a backup copy of the CSI data set that contained the zone. Therefore, you should be very
careful when entering the ZONEDELETE command. Make sure the zone specified is actually the one you
want to delete; that is, check the spelling, and so on.
• Once the ZONEDELETE command has been successfully processed, all references to the zone are gone,
and nothing more can be done with that zone. Therefore, the next command after ZONEDELETE must be
a SET command.
• If the deleted zone contained any cross-zone subentries, SMP/E issues warning messages. You need to
determine what corrective action is needed to ensure that the other zones have valid cross-zone entries
so that SMP/E can function properly. The type of corrective action required depends on:
– The types of cross-zone subentries found
– Whether a copy was made of the deleted zone; if so, whether it is being used
– Any actions you plan to perform (or may have already performed) with the zones identified in the
warning messages
Here are some examples of possible situations and the associated corrective action:
– The deleted zone is being removed from the system and will not be replaced.
You need to delete any cross-zone subentries in the identified zones that refer to the deleted zone. To
do this, use the ZONEEDIT command.
– The deleted zone was copied and will be replaced by the copy.
You need to update the cross-zone subentries in the identified zones with the name of the
replacement zone. To do this, use the ZONEEDIT command.
Output
The File Allocation report is produced during ZONEDELETE processing. This report is described in Chapter
34, “SMP/E reports,” on page 461.
Examples
The following examples are provided to help you use the ZONEDELETE command.
Processing
When a ZONEDELETE command is encountered, SMP/E ensures that you made no mistake in entering the
command, as follows:
• SMP/E checks the operand on the ZONEDELETE command (that is, TARGETZONE, TZONE, DLIBZONE, or
DZONE) and the zone type specified in the global zone ZONEINDEX to ensure that the zone types match.
If they do not, an error condition is reported, and the ZONEDELETE request is not processed.
• SMP/E checks the name specified on the ZONEDELETE command operand to ensure that it matches
the names specified in the previous SET command. If not, an error condition is reported, and the
ZONEDELETE request is not processed.
If the deleted zone contained cross-zone subentries, SMP/E issues warning messages.
If no verification errors occur, SMP/E deletes the specified zone from the CSI data set it was contained in.
After deleting the target zone or distribution zone from the CSI data set, SMP/E deletes the global zone
ZONEINDEX entry for that zone. SMP/E now has no references to the deleted zone.
1. Initialization
Global zone
Read without enqueue.
Target zone
Read without enqueue.
DLIB zone
Read without enqueue.
Note: Either the target zone or the distribution zone is accessed, according to the zone type specified
in the previous SET command.
2. Delete zone records
Target zone
Update with exclusive enqueue.
DLIB zone
Update with exclusive enqueue.
Note: Either the target zone or the distribution zone is accessed, according to the zone type specified
in the previous SET command.
3. Delete zone index entry
Global zone
Update with exclusive enqueue.
4. Termination
All resources are freed.
The ZONEEDIT command can be used instead of multiple UCL statements to make mass changes in
selected SMP/E entries in the same zone. You can also use the command add certain subentries to
selected SMP/E entries in the same zone. Here are some examples of when you might want to use the
ZONEEDIT command:
• To change all the volume serial numbers in all the DDDEF entries in a specified zone
• To change the ddname for the print output data set in all the UTILITY entries in the global zone
• To change a zone name in all the cross-zone subentries in a specified target zone
• To modify path names of DDDEF entries during the service process for OS/390 or z/OS UNIX System
Services
• To add a UNIT value to all DDDEF entries in the specified zone that do not currently have a UNIT value
Syntax
Three types of commands are necessary for ZONEEDIT processing:
1. The ZONEEDIT command indicates the start of ZONEEDIT processing.
2. ZONEEDIT CHANGE statements (for unconditional changes) and IF…THEN CHANGE statements (for
conditional changes) show the changes to be made.
3. The ENDZONEEDIT command indicates the end of the ZONEEDIT commands and the end of ZONEEDIT
processing.
ZONEEDIT command
ZONEEDIT entry_type •
,
ZEDIT
RC( command=rc )
CHANGE statement
1
CHANGE subentry ( from_value , to_value ) •
Notes:
1 You can specify more than one CHANGE statement.
( from_value , to_value ) •
Notes:
1 You can specify more than one IF statement.
2 Wildcard characters are permitted within an IF statement. If either the '*' or '%' character is part of
the explicitly specified value, the value must be enclosed in single quotation marks.
3 The PATH and XZENTRIES subentries may not be specified on the conditional CHANGE statement.
ENDZONEEDIT command
ENDZONEEDIT •
ENDZEDIT
Operands
entry-type
identifies the type of entry to be changed. The valid types are:
• DDDEF (for a global, distribution, or target zone)
• UTILITY (for the global zone only)
• XZENTRIES (for a target zone only)
Note: XZENTRIES is not an actual entry type. It is used to change a zone name in all the cross-zone
subentries in the specified zone:
• XZLMOD subentries in MOD entries
• XZMOD subentries in LMOD entries
• TIEDTO subentries in the TARGETZONE entry
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the ZONEEDIT command.
Before SMP/E processes the ZONEEDIT command, it checks whether the return codes for the
specified commands are less than or equal to the values specified on the RC operand. If so, SMP/E
can process the ZONEEDIT command. Otherwise, the ZONEEDIT command fails. For more information
about the RC operand, see Appendix A, "Processing the SMP/E RC Operand".
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the ZONEEDIT command. Therefore, if you use the RC operand, you must specify
every command whose return code you want SMP/E to check.
CHANGE
specifies the subentry to be changed, its old value, and its new value.
Note:
1. CHANGE can also be specified as C.
2. If you specify several subentries on a CHANGE statement, use blanks, not commas as separators.
subentry
specifies the type of subentry to be changed. These are the values that can be specified:
• For DDDEF entries:
DATASET or DA
PATH
SYSOUT
UNIT
VOLUME
WAITFORDSN or WAIT
• For UTILITY entries:
NAME(utility)
PRINT
• For XZENTRIES:
ZONEVALUE
Note: ZONEVALUE is not an actual subentry type. It is used to change a zone name in all the
cross-zone subentries in the specified zone. You cannot change ZONEVALUE to the name of the
set-to zone.
from-value
specifies the current value of the subentry. There are four ways to specify this value:
• Explicitly, by fully specifying the subentry value.
Note:
1. If an explicitly specified SYSOUT from_value consists of an asterisk (*), the from_value must
be enclosed in single quotation marks, otherwise SMP/E treats the symbol as a wildcard
character.
2. A UNIT from_value might contain any character except the asterisk (*), percent (%), or single
quotation mark (').
3. Specifying a from_value of 'NO' for the WAITFORDSN subentry is equivalent to specifying the
null value.
• *, which is a wildcard character that indicates that the specified subentry is to be changed,
regardless of its value.
If there is no current value for a UNIT, VOLUME, WAITFORDSN or PRINT subentry, an explicitly
specified to_value will be added to the entry. For all other subentries, or if the to_value is not
explicitly specified, the subentry will not be added.
Note:
1. Wildcard characters are not allowed for XZENTRIES.
2. See “Specifying a pathname on the CHANGE PATH statement” on page 425 for additional
considerations on using wildcard characters for PATH subentries.
• ", represents a null value. It consists of two single quotation marks with no blanks between them
and indicates the specified subentry is to be added to all entries of the specified type that do
not currently have a subentry value. This is used for UNIT, VOLUME, WAITFORDSN, and PRINT
subentries.
Note: The UNIT, VOLUME, and WAITFORDSN values will only be added to DDDEF entries which
contain the DATASET subentry.
• char.*, where char is a character string you specify. This can be used for data set names and
pathnames and means SMP/E must change all names beginning with the specified string.
to-value
specifies the new value of the subentry. There are three ways to specify this value:
• Explicitly, by fully specifying the subentry value.
Note:
1. If an explicitly specified SYSOUT to_value consists of an asterisk (*), the to_value must
be enclosed in single quotation marks, otherwise, SMP/E treats the symbol as a wildcard
character.
2. A UNIT to_value can contain any character except the asterisk (*), percent (%), or single
quotation mark (').
3. A to_value of 'NO' for the WAITFORDSN subentry is equivalent to specifying a to_value of '*'.
• *, which erases the current subentry value.
Note:
1. This is not allowed for PATH subentries.
2. This is not allowed when you add a subentry to those entries that do not currently have a
value for that particular subentry (when the from_value represents a null value).
• char.*, where char is a character string you specify. This can be used for data set names and
pathnames and means SMP/E must change all values meeting the CHANGE condition so they
begin with the specified string.
Note: This is not allowed when you add a subentry to those entries that do not currently have
value for that particular subentry (when the from_value represents a null value).
Note: Except for PATH subentries, coding CHANGE subentry(*,*). deletes all values for that
subentry. You should be sure, therefore, that is what you want when you use this form of the CHANGE
statement. (CHANGE PATH(*,*). is not allowed.)
IF … THEN
specifies another subentry of the specified entry type that SMP/E is to check before making the
change that follows. THEN is optional.
value
specifies the current value for another subentry of the specified entry type. Only entries containing
this particular subentry value will be modified. The value can be specified in two ways:
• Explicitly, by fully specifying the particular value. If an explicitly specified SYSOUT value consists
of an asterisk (*), the value must be enclosed in single quotation marks, otherwise, SMP/E treats
the symbol as a wildcard character.
• Implicitly, by partially specifying a value using asterisks (*) as global characters and percent
signs (%) as placeholders.
– A single asterisk indicates that zero or more characters can occupy that position. For example,
(UNIT=*R1) or (DATASET=SYS1.*DATA). In the first case, any DDDEF entries containing a
UNIT value that ends with the character string 'R1' will be selected for processing. That
would include values like SYSR1, DLIBR1 and ABCDEFR1. In the second case, any DDDEF
entries containing a DATASET value that starts with the character string 'SYS1.' and ends with
the character string 'DATA' will be selected for processing. That would include values like
SYS1.LIBRARY.DATA, SYS1.LIBRARY.INFODATA and SYS.LIBRARY.STUFF.DATA.
– A single percent sign indicates that any one single character can occupy that position. For
example. (UNIT=SYS%1) OR (DATASET=SYS%.MIGLIB). In the first case, any DDDEF entries
containing any of the following UNIT values will be selected for processing, SYSR1, SYSQ1
and SYSX1. DDDEF entries would not be selected for containing UNIT value SYSRES. In the
second case, any DDDEF entries containing any of the following DATASET values will be
selected for processing, SYS1.MIGLIB, SYS2.MIGLIB and SYSX.MIGLIB.
Any number of asterisks and percent signs may be used within a single partially specified subentry
value. The following examples are valid conditional specifications:
• (DATASET=SYS%.*.DATA)
• (UNIT=SYSR1)
• (DATASET=SYS1.*)
• (UNIT=SYS*D%)
SMP/E will process all entries of the specified type that contain a subentry matching the specified
explicit value or implicit pattern.
Note: Conditional changes are not allowed for XZENTRIES or PATH.
Syntax notes
• The subentry names must match the existing UCLIN subentry names.
• Make sure to specify an existing subentry value, or represent a null value. Otherwise, you might get
unexpected results.
• If a wildcard character (*) is not used, a full pathname must be specified, and that pathname must begin
and end with a slash (/).
• If a wildcard character (*) is used, either a full or partial pathname may be specified, and that pathname
must begin with a slash (/) and end with the wildcard character (*).
• If a wildcard character (*) is used in the from-value, and the character immediately preceding the
wildcard is a slash (for example, /abc/*), then the to-value must also end in a slash.
• No more than one wildcard character (*) may be used in a pathname and it must always be the last
character in the pathname.
• A pathname must be enclosed in single apostrophes (') if any of the following is true:
– The pathname contains lowercase alphabetic characters.
– The pathname contains a character that is not uppercase alphabetic, numeric, national ($, #, or @),
slash (/), plus (+), hyphen, period, or ampersand (&).
– The pathname spans more than one line in the CHANGE statement.
• The apostrophes must be outside the required slashes, as in '/pathname/', not '/pathname'/ or
'/pathname'*, not '/pathname*'.
• The single apostrophes used to enclose a pathname (the delimiters) do not count as part of the
255-character limit.
• Any apostrophes specified as part of a pathname (not the delimiters) must be doubled. Such doubled
apostrophes count as two characters toward the 255-character limit.
• The pathname can include characters X'40' through X'FE'.
Table 26 on page 425 describes variations in the way a from-value and a to-value may be specified, and
describes how a wildcard character (*) may be used to simplify changing a pathname. Unless otherwise
noted, any combination of from-value and to-value are valid.
Table 26. From-value and to-value variations and wild cards (continued)
From-value To-value
*, which means change the specified subentry * is not allowed in the to-value for PATH subentries.
regardless of its value. If there is no current value for
the subentry, the change is not made.
SMP/E will inform you if no changes were made by the CHANGE statement because the subentry value
specified does not exist (for example, change XYZ to ABC, but XYZ does not exist) or because no entries of
the specified type exist in the indicated zone (that is, change DDDEF but no DDDEFs are in the zone).
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according to
the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be used
to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always
required for a zone.
Output
Two reports are produced during ZONEEDIT processing:
• File Allocation report
• ZONEEDIT Summary report
These reports are described in Chapter 34, “SMP/E reports,” on page 461.
Examples
The following examples are provided to help you use the ZONEEDIT command.
There must be single quotation marks around the * if SMP/E is to change only DDDEF entries in which
SYSOUT=*.
To change all the SYSOUT values to A, the following ZONEEDIT command can be used:
Because there are no quotation marks around the *, all the SYSOUT values are changed. SYSOUT
subentries will not be added to those DDDEF entries which do not currently have SYSOUT subentries.
Only PRINT, UNIT, VOLUME, and WAITFORDSN subentries can be added using the ZONEEDIT command.
If the wildcard character (*) is used on a pathname, it must appear outside the enclosing apostrophes, as
shown previously.
To add a PRINT value of MYOUTPUT to all UTILITY entries that do not currently have a PRINT value, the
following ZONEEDIT command can be used:
Processing
The ZONEEDIT command changes or adds the values for a subentry in different DDDEF or UTILITY entries
in the same zone. It also changes the zone name in all the cross-zone subentries in a specified target
zone. Before making any changes, SMP/E checks that the entry type specified is DDDEF, UTILITY, or
XZENTRIES (for cross-zone subentries). It then opens the specified zone for update.
Next, SMP/E checks that the subentry name is valid for the entry and that the to-value is valid.
If all of these checks are successful, SMP/E performs the change as follows:
• When changing a subentry value:
– For any conditional changes, SMP/E tests the IF condition and verifies that the from-value exists. If
these checks succeed, SMP/E replaces the from-value with the to-value.
– For unconditional changes, SMP/E verifies that the from-value exists and, if so, replaces the from-
value with the to-value.
• When adding a subentry value, SMP/E searches the zone for the entries of the specified type that do not
have a value for the specified subentry. If any are found,
– For any conditional changes, SMP/E tests the IF condition. If this check succeeds, SMP/E adds the
to_value.
– For unconditional changes, SMP/E adds the to_value.
When adding subentries, with either a conditional or unconditional statement, DDDEF entries have an
implied IF condition in that the UNIT, VOLUME, and WAITFORDSN values will only be added to DDDEF
entries that have a DATASET subentry.
SMP/E then writes the ZONEEDIT Summary report to the SMPRPT data set and closes the zone.
If any of the checks fail, or if the ENDZONEEDIT command is missing, an error message is issued, and
ZONEEDIT processing fails.
The ZONEEXPORT command copies a specified zone from a VSAM data set to a sequential data set. There
are two ways you can use this copy of the zone:
• As a backup copy: You can use this copy to re-create a zone that you or a program erased or otherwise
destroyed.
• As a transportable copy: You can use this copy to re-create the same zone on another system or in
another CSI on the same system.
When you have a backup copy of a zone, you also need backup copies of the SMP/E data sets
corresponding to that zone. For SMP/E to restore the zone correctly, these data sets must be
synchronized. For example, SMP/E needs these data sets to restore a zone either on another system
or as a zone in another CSI on the same system.
The ZONEIMPORT command processes the ZONEEXPORT output to restore the zone. ZONEIMPORT
processing is similar to access method services REPRO processing of the same data.
Note: Although the access method services REPRO command accepts ZONEEXPORT output, it does not
process it correctly. Data in another zone may be replaced, or the new zone may not be accessible to
SMP/E. You must, therefore, use the ZONEIMPORT command to process ZONEEXPORT output.
Syntax
ZONEEXPORT command
NOPURGE
ZONEEXPORT ( zone ) OUTFILE( ddname )
ZEXP PURGE
(INDEX)
RC( command=rc ) •
Operands
zone
specifies the name of the input zone to be copied. This name must match the one specified on the SET
BOUNDARY command.
OUTFILE
specifies the name of the DD statement that defines the output data set, which is the input for the
ZONEIMPORT command.
Note:
1. OUTFILE can also be specified as OFILE.
2. Data set attributes for OUTFILE are described in the "SMP/E Data Sets" chapter in z/OS SMP/E
Reference.
NOPURGE
specifies that the input zone is not to be deleted from the CSI when the ZONEEXPORT is done. This is
the default.
Note: NOPURGE is mutually exclusive with PURGE.
PURGE
specifies that the input zone is to be deleted from the CSI data set when the ZONEEXPORT is done.
Note:
1. PURGE is not allowed for the global zone.
2. PURGE is mutually exclusive with NOPURGE.
INDEX
specifies that the index entry for the input zone is to be deleted from the global zone. If INDEX is not
specified on the PURGE operand, only the data in the zone is deleted.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the ZONEEXPORT command.
Before SMP/E processes the ZONEEXPORT command, it checks whether the return codes for the
specified commands are less than or equal to the values specified on the RC operand. If so, SMP/E
can process the ZONEEXPORT command. Otherwise, the ZONEEXPORT command fails. For more
information about the RC operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the ZONEEXPORT command. Therefore, if you use the RC operand, you must specify
every command whose return code you want SMP/E to check.
Note:
1. zone represents the DD statements required for each distribution zone or target zone referred to in this
command. If the DD statements are not specified, the data sets are dynamically allocated according
to the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be
used to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
2. outfile represents the DD statement required for the output data set. It is pointed to by the OUTFILE
operand.
Usage notes
If the exported zone contained any cross-zone subentries, SMP/E issues warning messages. If you import
that zone into a new zone, you need to determine what corrective action is needed to ensure that the new
zone and any identified cross-zones are properly related through cross-zone subentries. This corrective
action is similar to what you would do after using ZONECOPY. For more information, see “Updating
cross-zone subentries” on page 412.
Output
The File Allocation report is produced during ZONEEXPORT processing. It is described in Chapter 34,
“SMP/E reports,” on page 461.
Processing
The ZONEEXPORT command makes a backup or transportable copy of a specified distribution, target, or
global zone.
Before doing the export, SMP/E checks that the correct parameters were entered and that the export
request is valid. If any of the checks fail, SMP/E issues an error message, and the ZONEEXPORT command
fails. SMP/E checks that:
• The zone name on the SET BOUNDARY command matches the input zone name.
• If the zone to be exported is the global zone, the PURGE operand is not specified.
If all the validity checking is successful, the zone can be exported. SMP/E opens the input zone and reads
the first record. If the input zone is not the global zone, this first record is the zone definition record. (For
the global zone, SMP/E must generate a zone definition record.)
SMP/E then opens the output data set and writes the zone definition record to the output data set. Next,
SMP/E reads the data from the input zone and writes it to the output data set using sequential reads and
writes. After reading all the records from the input zone, SMP/E writes a record containing hex FFFF to the
output data set. This record defines the end of data for a successful zone export.
SMP/E then closes the output data set and writes a message to indicate that the data has been written
out successfully. If PURGE was specified, the records in the zone are deleted by ZONEDELETE. If INDEX
was specified on the PURGE operand, and the global zone is available, the associated zone index is also
deleted. Otherwise, the zone index is not changed. Finally, SMP/E closes the input zone.
If the exported zone contained cross-zone subentries, SMP/E issues warning messages. If SMP/E cannot
open the input data set or the receiving zone, it issues an error message, and the ZONEEXPORT command
fails.
DLIB zone
Read without enqueue.
Note: The global zone and the zone specified in the SET BOUNDARY command are opened for read
access only.
2. Zone export processing
Global zone
Read with shared enqueue.
If PURGE(INDEX) is specified, this is opened for update with exclusive enqueue.
Target zone
Read with shared enqueue.
If PURGE is specified, this is opened for update with exclusive enqueue.
DLIB zone
Read with shared enqueue.
If PURGE is specified, this is opened for update with exclusive enqueue.
Note: The zone specified in the previous SET command is accessed.
3. Termination
All resources are freed.
The ZONEIMPORT command loads an exported zone from a sequential data set into a specified
distribution, target, or global zone. If you are importing a target or distribution zone, you can also change
the zone name. (You cannot change the name of a global zone that is being imported.) Generally, you can
import a zone only into the same type of zone. However, you can import a distribution zone into a target
zone. You might want to do this after system generation, when the target zone is being initialized.
The input data for the ZONEIMPORT command must be the output from a ZONEEXPORT command.
ZONEIMPORT processing of this data is similar to Access Method Services REPRO processing of this same
data.
Syntax
ZONEIMPORT command
ZONEIMPORT ( zone1 ) INFILE( ddname ) INTO( zone2 )
ZIMP
•
,
RC( command=rc )
Operands
zone1
specifies the name of the input zone to be imported. This is the name of the zone that was exported.
Note:
1. If you are importing a global zone, you must specify GLOBAL.
2. If you are importing a target or distribution zone, you can keep the same zone name or rename the
zone:
• If you are keeping the same zone name, you must specify the same zone here and on the SET
BOUNDARY command.
• If you are renaming the zone, this zone name is different from the one specified on the SET
BOUNDARY command.
INFILE
specifies the name of the DD statement that defines the input data set created by the ZONEEXPORT
command. You can import only a data set that was created by the ZONEEXPORT command.
Note: INFILE can also be specified as IFILE.
INTO
specifies the name of the receiving zone. This must match the name specified on the SET BOUNDARY
command. If the INTO operand specifies a global zone, or you are importing a target or distribution
zone to a new CSI data set, you should make sure you have allocated the CSI data set before you run
the ZONEIMPORT command, and initialize it with a GIMZPOOL record. Do not add any other entries or
subentries to the zone.
Note: If the INTO operand specifies a target or distribution zone, the global zone must already contain
a ZONEINDEX subentry specifying the name of that zone and the name of the CSI data set containing
that zone.
OPTIONS
specifies the name of the OPTIONS entry to use for processing the receiving zone. The OPTIONS
subentry in the zone definition of the receiving zone is set to the specified name.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the ZONEIMPORT command.
Before SMP/E processes the ZONEIMPORT command, it checks whether the return codes for the
specified commands are less than or equal to the values specified on the RC operand. If so, SMP/E
can process the ZONEIMPORT command. Otherwise, the ZONEIMPORT command fails. For more
information about the RC operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the ZONEIMPORT command. Therefore, if you use the RC operand, you must specify
every command whose return code you want SMP/E to check.
RELATED
specifies the name of the target or distribution zone to which the receiving zone is related. The
RELATED subentry in the zone definition of the receiving zone is set to the specified name.
Note:
1. zone represents the DD statements required for each distribution zone or target zone referred to in this
command. If the DD statements are not specified, the data sets are dynamically allocated according
to the ZONEINDEX information in the GLOBALZONE entry. Also note that, while DD statements may be
used to override the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is
always required for a zone.
2. infile represents the DD statement required for the input data set. It is pointed to by the INFILE
operand.
Usage notes
If the imported zone contains any cross-zone subentries, SMP/E issues warning messages. You need
to determine what corrective action is needed to ensure that the imported zone and any identified
cross-zones are properly related through cross-zone subentries. This corrective action is similar to what
you would do after using ZONECOPY. For more information, see “Updating cross-zone subentries” on
page 412.
Output
The File Allocation report is produced during ZONEIMPORT processing. It is described in Chapter 34,
“SMP/E reports,” on page 461.
Examples
The following examples are provided to help you use the ZONEIMPORT command.
After the ZONEIMPORT operation, a new global zone ZONEINDEX entry has been created to indicate that
zone IMPTGT is in SMP.IMPORT.CSI and has a related zone, IMPDLB1. Note that you changed both the
name and type of the zone when you imported it.
After the ZONEIMPORT operation, you have a new global zone in SMP.IMPORT.GLOBAL.CSI. The exported
data remains in file GOUTFILE.
After the ZONEEXPORT and ZONEIMPORT operations, you have moved zone MVSTZ into
SMP.IMPORT.CSI.
Processing
The ZONEIMPORT command loads an exported zone into a specified distribution, target, or global zone.
Before importing the zone, SMP/E checks that the correct parameters were entered and that the import
request is valid. If any of the checks fail, SMP/E issues an error message, and the ZONEIMPORT command
fails. SMP/E checks that:
• The zone name on the SET BOUNDARY command matches the receiving zone name.
• Either the zone types of the exported and receiving zones match, or a distribution zone is being loaded
into a target zone.
• The receiving zone does not already exist in the CSI data set.
• If the receiving zone is a global zone, no other zone is defined in the CSI.
• No cross-zone subentry from the input zone refers to a zone with the same name as the receiving zone.
If all the validity checking is successful, the zone can be imported. SMP/E opens the input data set, reads
the zone definition record, and checks its validity. SMP/E opens the receiving zone for update processing.
If a target or distribution zone is being imported and its zone name does not match the name of the
receiving zone, SMP/E renames the zone being imported.
SMP/E checks for these situations:
• If the imported zone contains cross-zone subentries, SMP/E issues warning messages.
• If SMP/E cannot open the input data set or the receiving zone, it issues an error message, and the
ZONEIMPORT command fails.
• If the zone name or type was changed, SMP/E updates the zone definition record. If the receiving zone
is not the global zone, SMP/E writes this record to the receiving zone. SMP/E then reads the rest of the
records from the input data set and writes them to the receiving zone using sequential reads and writes.
When it reaches the record containing hex FFFF, SMP/E has finished importing the zone. It does not
write this record to the receiving zone.
• If SMP/E reaches the end of the file before reading the hex FFFF record, it issues an error message and
the ZONEIMPORT command fails.
• If you specified the OPTIONS or RELATED operand, SMP/E either writes the new entries to the receiving
zone, if none already exist, or replaces the existing entries with the new ones and writes the new entries
to the receiving zone.
SMP/E then closes the input data set and the receiving zone.
Syntax
ZONEMERGE command
CONTENT
ZONEMERGE ( zone1 ) INTO( zone2 )
ZMRG DEFINITION
VERIFY( YES )
REPLACE NO
NOREPLACE BYPASS(IFREQ)
•
CHECK ,
RC( command=rc )
Operands
zone1
specifies the name of the zone from which the data to be merged is to be obtained (the originating
zone).
BYPASS(IFREQ)
indicates that if SMP/E is performing verification processing for ZONEMERGE (VERIFY(YES) is
specified or defaulted), then SMP/E should ignore any conditional requisite SYSMODs that are missing.
BYPASS(IFREQ) is not used by default.
CHECK
indicates SMP/E should not update the destination zone. Instead it should test for merge conflicts and
produce a ZONEMERGE Report indicating what would have happened if CHECK were not specified.
CHECK is not used by default.
CONTENT
specifies that the content entries in the zone should be copied. Content entries include SYSMOD
entries, element entries, and LMOD entries. If neither CONTENT nor DEFINITION is specified,
CONTENT is the default.
Note: CONTENT can also be specified as CON.
DEFINITION
specifies that the DDDEF entries in the zone should be copied.
Note: DEFINITION can also be specified as DEF.
INTO
specifies the zone into which the data from the originating zone is merged (the destination zone). This
operand is required.
A ZONEINDEX subentry for the destination zone must be specified in the global zone. Also, if you are
merging into a new CSI data set, you should make sure you have allocated the CSI data set before you
run the ZONEMERGE command, and initialize it with a GIMZPOOL record.
NOREPLACE
specifies that if the destination zone contains the same entries as the originating zone, the originating
zone entries are not to overlay the destination zone entries.
Note: NOREPLACE is mutually exclusive with REPLACE.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the ZONEMERGE command.
Before SMP/E processes the ZONEMERGE command, it checks whether the return codes for the
specified commands are less than or equal to the values specified on the RC operand. If so, SMP/E
can process the ZONEMERGE command. Otherwise, the ZONEMERGE command fails. For more
information about the RC operand, see Appendix A, “Processing the SMP/E RC operand,” on page
545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the ZONEMERGE command. Therefore, if you use the RC operand, you must specify
every command whose return code you want SMP/E to check.
REPLACE
specifies that if the destination zone contains the same entries as the originating zone, the originating
zone entries are to overlay the destination zone entries. This is the default.
Note: REPLACE is mutually exclusive with NOREPLACE.
VERIFY
indicates whether verification processing for ZONEMERGE should be performed. If VERIFY(YES)
is specified, then SMP/E will verify the CONTENT type entries in the originating zone (SYSMODs,
elements, and LMODs) can be merged into the destination zone without conflicts and without creating
incompatible SYSMOD relationships or missing SYSMOD requisites. If VERIFY(NO) is specified, then
SMP/E will not verify the CONTENT entries before merging. VERIFY(YES) is the default.
Note: zone represents the DD statements required for each distribution zone or target zone used by this
command. If the DD statements are not specified, the data sets are dynamically allocated according
to the ZONEINDEX information in the GLOBALZONE entry. A DD statement is required for both the
originating zone and the destination zone. Also note that, while DD statements may be used to override
the ZONEINDEX information, they are not a substitute for a zoneindex. A zoneindex is always required for
a zone.
Usage notes
• Use the ZONEMERGE command with caution. You can get unexpected results if the zones being merged
have entries with the same name, or if you mistakenly specified REPLACE instead of NOREPLACE (or
vice versa). For example, suppose both ZONE1 and ZONE2 contain an entry for module IFBMOD01. In
ZONE1, the RMID is UZ12345, and in ZONE2, the RMID is UZ12346. Assume UZ12346 is at a higher
service level than UZ12345. If ZONE2 were merged into ZONE1 with the REPLACE option, but the
target library still contained the version of the module from UZ12345, the resulting entry for module
IFBMOD01 in ZONE1 would reflect the incorrect service level of the module.
• If the originating zone contains any cross-zone subentries, SMP/E issues warning messages. You need
to determine what corrective action is needed to ensure that the cross-zone information for the merged
entries and the identified cross-zones is correct, and that all zones are properly connected. This
corrective action is similar to what you would do after using ZONECOPY. For more information, see
“Updating cross-zone subentries” on page 412.
• During CONTENT processing, the SREL subentry found in the ZONE definition entry of the original zone
will be merged into the ZONE definition entry of the destination zone
Output
Two reports are produced during ZONEMERGE processing:
• File Allocation report
• ZONEMERGE report
These reports are described in Chapter 34, “SMP/E reports,” on page 461.
Examples
The following examples are provided to help you use the ZONEMERGE command.
Note: For most cases where ZONEMERGE can be used to copy zones, you can also use the access method
services REPRO command and ZONERENAME to achieve the same result. For examples of ZONERENAME,
see “Examples” on page 456.
Now that the new target zone has been defined, you should use the ZONEMERGE command to copy the
entries from the old target zone that do not reflect system structure information. This can be done by
using the DEFINITION operand of the ZONEMERGE command. The only entries that are copied in this
case are the DDDEF entries, and these should not have changed during the system generation process.
The following SMP/E commands copy the DDDEF entries:
Note: If you have changed the unit or VOLSER of the target volumes, and the DDDEF entries describing
those libraries also contains the unit or volume information (that is, the DDDEF entries did not assume
that the data sets were cataloged), these entries must be modified with UCLIN to reflect the new data.
The following is an example of how to modify the DDDEF entries to change both the unit and volume
information (assume old unit and volume were 3330 and TGTVOL and new information is 3380 and
TGTPCK):
At this point, you must copy the distribution zone to the new target zone so SMP/E can determine the
function and service levels of all of the distribution library elements. This copy can be done as follows:
Now that the target zone is defined and primed with the nonstructure entries from the previous target
zone, you now have to prime the new target zone with the structure information about the entries in the
new target libraries. You can do this with the JCLIN command of SMP/E, using the stage 1 output as input.
Assuming the stage 1 output was saved in data set STG1.TGT2.CNTL and an SMP/E procedure similar to
SMPPROC, as described in the "Sample SMP/E Cataloged Procedure" appendix in z/OS SMP/E Reference,
is available, the following job primes the new target zone:
The new target zone, TGT2, is now ready to be used for the installation of service or new function. When
this system has been tested and the old level, TGT1, is no longer required, you can delete it by use of the
ZONEDELETE command, as follows:
Processing
With the ZONEMERGE command, you can merge a specified distribution zone or target zone into another
specified target zone or distribution zone. REPLACE is the default if neither REPLACE nor NOREPLACE is
specified. After the merge operation is complete, the originating distribution zone or target zone still exists
in the CSI data set.
SMP/E supports the following variations of merging:
• Distribution zone to distribution zone
• Target zone to target zone
• Distribution zone to target zone
Note: Any attempt to merge a target zone to a distribution zone causes an error.
The syntax refers to two types of zone entries: DEFINITION and CONTENT. DEFINITION entries are set
up by the user to define data sets used by SMP/E; CONTENT entries are created by SMP/E. If neither
CONTENT nor DEFINITION is specified, the default is to merge only the CONTENT type entries. This
supports the distribution zone to target zone copy after a system generation when the desire is to recopy
the structure of the system, but not the definition. The following defines how the various entries are
categorized:
• DEFINITION type entries
– DDDEF entries
When the ZONEMERGE command is encountered, SMP/E first ensures that both zones have been
previously defined. The ZONEMERGE command does not create a new zone. If either one has not been
defined, an error message is issued, and the command is not processed. To fix this problem, check the
zone names specified, and either change the incorrect name, or define the missing zone by using UCLIN.
SMP/E then checks to make sure the zone type (that is, target or distribution), specified in the global zone
ZONEINDEX, matches the type specified in the ZONEMERGE command. If not, an error message is issued,
and the ZONEMERGE is not done. To fix this problem, check to ensure that the zone names specified
are correct and that the zone types specified in the global zone ZONEINDEX are correct; fix whatever
discrepancy was found, and rerun the command.
To perform the actual merge, SMP/E sequentially reads through both zones. For each entry in the
originating zone, SMP/E checks the entry type (DEFINITION, CONTENT, or both) and looks at the
operands specified on the ZONEMERGE command to determine whether the entry should be processed.
• If VERIFY(YES) was specified or defaulted and CONTENT entries are being processed (CONTENT was
specified or defaulted), SMP/E verifies that the zones can be merged without conflicts and without
creating incompatible SYSMOD relationships or missing SYSMOD requisites. See “SYSMOD verification
processing” on page 448. SMP/E also verifies that elements and LMODs can be merged without conflict.
See “Element and LMOD verification processing” on page 449 . If no conflicts are detected during
verification processing, the CONTENT entries are copied from the originating zone to the destination
zone. If conflicts are detected during verification processing, the ZONEMERGE commands ends and no
entries are merged.
• SMP/E does no verification of the DEFINITION entries. Also, if VERIFY(NO) is specified, SMP/E does no
verification of the CONTENT entries. In this case, SMP/E checks to see whether an entry exists in the
destination zone.
– If an entry is not found, the entry from the originating zone is stored.
– If an entry is found and REPLACE was specified, the entry from the destination zone is deleted, and
the entry from the originating zone is stored.
– If an entry is found and NOREPLACE was specified, processing continues with the next entry.
Notes:
• If the CHECK operand was specified, all processing and messaging is the same, except no entries are
deleted or stored in the destination zone.
• Any conditional requisite subentries that exist in either the originating zone or the destination zone are
preserved during the merge of a SYSMOD entry. See “Preserving CIFREQ subentries” on page 449.
If the originating zone contained cross-zone subentries, SMP/E issues warning messages. SMP/E
determines what cross-zone information to merge from MOD and LMOD entries in the originating zone, as
follows:
• If any cross-zone subentries refer to a zone with the same name as the receiving zone, that information
is not copied to the receiving zone, and an error message is issued. SMP/E still attempts to merge the
rest of the data in the zone.
• If the entry in the originating zone contains nothing but cross-zone subentries, SMP/E does not copy the
cross-zone subentries to the receiving zone.
• If the entry in the receiving zone contains nothing but cross-zone subentries, SMP/E merges the entry
from the originating zone into the receiving zone, regardless of whether the REPLACE operand was
specified. Cross-zone subentries from the originating zone are added to those from the receiving zone.
SMP/E issues messages indicating the source of each of the cross-zone subentries in the merged entry.
• Otherwise, the entries are merged only if REPLACE was specified. In this case, SMP/E merges the entry
from the originating zone into the receiving zone, replacing all the information in the receiving zone
(except the cross-zone subentries) with information from the originating zone. Cross-zone subentries
from the originating zone are added to those from the receiving zone. SMP/E issues messages to
indicate the source of each of the cross-zone subentries in the merged entry.
• If any cross-zone subentries were merged into the receiving zone, SMP/E adds TIEDTO subentries for
the cross-zones to the receiving zone's TARGETZONE entry.
When you merge zones, you can end up with an LMOD entry with a MODDEL subentry for a module and
a MOD entry for that same module. For example, suppose you have a zone with an LMOD entry that has
a MODDEL subentry containing module MOD005, and you merge that zone with another zone that has a
MOD entry for MOD005. It might seem contradictory, but the result is a zone having an LMOD entry with a
MODDEL subentry containing MOD005 and a MOD entry for MOD005. If you install a SYSMOD containing
MOD005, module MOD005 is removed from the MODDEL subentry.
superseded, or deleted), SMP/E finds all the SYSMOD's NPRE subentries. It looks for SYSMOD entries
with the same name as the NPRE subentry in the destination zone. If any matching SYSMODs are found in
the destination zone, regardless of that SYSMOD's current state, a conflict is reported.
Likewise, SMP/E analyzes all of the SYSMOD entries in the destination zone, regardless of the SYSMOD's
current state (installed, error, superseded, or deleted), to find all NPRE subentries. It then looks for
SYSMOD entries with the same name as the NPRE subentry in the originating zone. If any matching
SYSMODs are found in the originating zone, regardless of the SYSMOD's current state, a conflict is
reported.
For each SYSMOD entry in the originating zone that contains more than just CIFREQ subentries, if the
CONTENT operand was specified on the ZONEMERGE command, then the processing is as follows:
• If a SYSMOD entry with the same name is not found in the destination zone, the entry from the
originating zone (including any CIFREQ subentries from the originating zone) is stored in the destination
zone.
• If a SYSMOD entry with the same name is found in the destination zone, and the entry in the destination
zone contains only CIFREQ subentries, then the entry from the originating zone (including any CIFREQ
subentries from the originating zone) is stored in the destination zone. This preserves the existing
CIFREQ subentries in the destination zone.
• If a SYSMOD entry with the same name is found in the destination zone, and the entry in the destination
zone contains more than only CIFREQ subentries, then one of the following occur:
– If REPLACE was specified, the existing entry (less the existing CIFREQ subentries) in the destination
zone is deleted, and the entry from the originating zone (including any CIFREQ subentries from the
originating zone) is stored in the destination zone. This preserves any CIFREQ subentries in the
destination zone.
– If NOREPLACE was specified, no changes are made to the entry in the destination zone, and
processing continues with the next SYSMOD entry.
For each SYSMOD entry in the originating zone that contains only CIFREQ subentries, if CONTENT was
specified, then the CIFREQ subentries from the originating zone are always stored into the destination
zone, regardless of whether a same named SYSMOD entry exists in the destination zone or not, or
whether an existing SYSMOD entry in the destination zone has CIFREQ subentries or not. This way, the
SYSMOD entries in the destination zone will be preserved and merged with CIFREQ subentries from the
originating zone.
a. Either the target zone or the distribution zone is accessed, according to the zone type specified in
the previous SET command.
b. The “from” zone is accessed for read with shared enqueue; the “to” zone is accessed for update
with exclusive enqueue.
3. Termination
All resources are freed.
With the ZONERENAME command, you can assign a new name to an existing target zone or distribution
zone in an SMPCSI data set. You can also:
• Change a distribution zone to a target zone.
• Change the default OPTIONS entry name.
• Change the name of the related zone.
• Have SMP/E add a ZONEINDEX subentry for the renamed zone, if it is in a different CSI from the one
containing the "old" name of the zone.
Note: ZONERENAME does not rename the SMPCSI data set containing the zone. It only renames the
SMP/E zone inside the SMPCSI data set.
You may want to use the ZONERENAME command in some of the following situations:
• If the current name of a zone does not conform to naming conventions of the establishment controlling
the zone, and you want to assign a new name to the zone without going through the overhead required
to do a ZONEMERGE followed by a ZONEDELETE.
• If you create a new set of target libraries during system generation and need a target zone to describe
them, you have two choices. You can use the ZONEMERGE command to create the target zone (see
“Examples” on page 444 for further information), or you can make a copy of the CSI containing the
distribution zone. Then, using the ZONERENAME command, you can rename the distribution zone in the
CSI copy to your new target zone name, change the zone type to TARGET, and connect it to the original
distribution zone.
• If you have made a copy of a CSI data set and want to access the copied zones through an existing
global zone. Assuming that the zones in the original CSI are already accessed through that global zone,
you cannot also access the zones in the copy, because there can be only one ZONEINDEX entry in the
global zone for each unique zone name.
In this case, you want to rename the zone in the CSI copy, and then connect the renamed zone in your
global zone. This procedure can be used to make a working copy of a zone under a different name for
testing purposes without the overhead required to do a ZONEMERGE.
Syntax
ZONERENAME command
ZONERENAME ( old_name ) TO( new_name )
ZREN
SAMEDATASET
TOTYPE(TARGET)
•
RELATED( zone ) ,
RC( command=rc )
Operands
old-name
specifies the name of the zone to be renamed.
Note:
1. The specified name cannot be GLOBAL.
2. The old zone name cannot be the same as the new zone name.
TO
specifies the new name for the zone. This operand is required.
Note:
1. The new zone name cannot be GLOBAL.
2. The new zone name cannot be the same as the old zone name.
NEWDATASET
indicates that the zone to be renamed and the SMPCSI containing it are not yet defined by a zone
index in the global zone. (For example, there might be a zone index for the old zone name, but not for
the data set specified by NEWDATASET, or there might not be any zone index at all for the old zone
name.) SMP/E will rename the zone in the indicated data set, and then create a zone index for the new
zone name and the SMPCSI data set containing that zone.
You must specify either NEWDATASET or SAMEDATASET.
Note:
1. The indicated data set must be an existing SMPCSI containing the zone to be renamed.
ZONERENAME does not create the SMPCSI data set for you.
2. The data set must not be the same as the one currently defined in the zone index for the old zone
name.
3. The data set name must conform to the naming conventions for a CSI data set and therefore must
have a low-level qualifier of .CSI. The data set name can contain no more than 44 characters.
4. NEWDATASET tells SMP/E to rename only the zone in the indicated data set. It does not rename
the SMPCSI data set containing that zone. You cannot use the ZONERENAME command to rename
SMPCSI data sets.
OPTIONS
specifies the name of the OPTIONS entry to use for processing the renamed zone. The OPTIONS
subentry in the zone definition of the RENAMED zone is set to the specified name. If OPTIONS is not
specified, the OPTIONS subentry in the definition of the renamed zone is not changed.
RC
changes the maximum return codes allowed for the specified commands. These return codes
determine whether SMP/E can process the ZONERENAME command.
Before SMP/E processes the ZONERENAME command, it checks whether the return codes for the
specified commands are less than or equal to the values specified on the RC operand. If so, SMP/E
can process the ZONERENAME command. Otherwise, the ZONERENAME command fails. For more
information about the RC operand, see Appendix A, “Processing the SMP/E RC operand,” on page 545.
Note:
1. The RC operand must be the last operand specified on the command.
2. If you do specify the RC operand, return codes for commands not specified do not affect
processing for the ZONERENAME command. Therefore, if you use the RC operand, you must
specify every command whose return code you want SMP/E to check.
RELATED
specifies the name of the target or distribution zone to which the renamed zone is related. The
RELATED subentry in the zone definition of the renamed zone is set to the specified name. If RELATED
is not specified, the RELATED subentry in the renamed zone's definition is not changed.
SAMEDATASET
indicates that the zone to be renamed is already defined by a zone index in the global zone, and is to
be renamed in its current data set. The zone index is be changed to indicate the new zone name.
You must specify either SAMEDATASET or NEWDATASET.
Note: SAMEDATASET is mutually exclusive with TOTYPE(TARGET).
TOTYPE(TARGET)
indicates that the zone to be renamed is currently a distribution zone in a copy of an SMP/E CSI data
set and is to be changed to a target zone. After the rename operation, the GLOBALZONE ZONEINDEX
record indicates that this is now a target zone and the zone definition for the zone is updated to
indicate that it is a target zone.
Note:
1. TOTYPE is mutually exclusive with SAMEDATASET.
2. TOTYPE is needed only if you are changing a target zone to a distribution zone. For example,
suppose you did a system generation and copied the distribution zone to initialize the target zone.
You could use the ZONERENAME command to rename the copied distribution zone and change the
type to target.
Note:
1. newzonename represents the DD statement required for the new zone name. If it is not specified, the
data set is dynamically allocated according to the ZONEINDEX information in the GLOBALZONE entry.
Also note that, while DD statements may be used to override the ZONEINDEX information, they are not
a substitute for a zoneindex. A zoneindex is always required for a zone.
2. oldzonename represents the DD statement required for the zone to be renamed by this command.
If it is not specified, the data set is dynamically allocated using the ZONEINDEX information in the
GLOBALZONE entry. Also note that, while DD statements may be used to override the ZONEINDEX
information, they are not a substitute for a zoneindex. A zoneindex is always required for a zone.
Usage notes
• The oldzonename CSI data set need not be mounted when the NEWDATASET operand is used. All
operations are performed against the global zone data set and the CSI data set specified as the value of
the NEWDATASET operand.
• APPID and ACCID values are not updated in the global zone SYSMOD entries for the renamed zone.
• DDDEF entries in the renamed zone are not changed. To change information in these entries, you must
use UCLIN, ZONEEDIT, or the administration dialogs.
• It is your responsibility to ensure that the proper data sets are used for the renamed zone. A partial
list to consider is the SMPSCDS, SMPMTS, SMPLOG, SMPSTS, and any target or distribution library data
sets.
• If a zone in a copy of a CSI data set is to be renamed, you should be aware that data for other zones in
the copied data set remains in the data set, wasting space. Therefore, if you plan to make a copy of a
CSI data set and rename the zone therein, you should either use the ZONEDELETE command to delete
all the other zones or, when setting up the CSI data sets, ensure that each CSI data set contains only
one zone.
• If the zone being renamed contains any TIEDTO subentries for cross-zones, SMP/E issues messages
with information to help you update the cross-zones with the new zone name. For information that can
help you determine the action to take, see “Updating cross-zone subentries” on page 412.
Output
The File Allocation report is produced during ZONERENAME processing. It is described in Chapter 34,
“SMP/E reports,” on page 461.
Examples
The following examples are provided to help you use the ZONERENAME command.
After the ZONERENAME operation, the GLOBALZONE ZONEINDEX indicates that zone C87SYSP is on
data set SMPE.CSI, and the ZONEINDEX entry for E17SYSP has been removed. The zone definition for
E17SYSP in data set SMPE.CSI has been changed so it is now the zone definition for C87SYSP.
ZONERENAME command to rename the copy of SYSDLIB in PROD.CSI to SYSPROD, change the zone type
to TARGET, and modify the OPTIONS and RELATED subentries:
After the ZONERENAME operation, the GLOBALZONE ZONEINDEX still indicates that zone SYSDLIB is on
data set SMPE.CSI; it has not been removed. A new GLOBALZONE ZONEINDEX entry has been created
indicating that zone SYSPROD is on data set PROD.CSI. If the zone definition for SYSPROD is listed, the
user sees that the default OPTIONS value is SYSOPTS and that the target zone is related to distribution
zone SYSDLIB.
Other than the zone definition, the contents of the renamed zone are unchanged. You must make changes
to the DDDEF entries in SYSPROD as required.
After performing these steps, you have a new target zone containing information describing the various
modules, macros, and source as they exist on the distribution libraries. The additional information
required in the target zone is the description of how the various distribution library elements are
combined and installed into the target zone libraries. This information is added to the target zone by
using the JCLIN command, with stage 1 system generation output as input to SMP/E.
Also, if you are using the dynamic allocation facility in SMP/E, you may have to add or modify some of the
DDDEF entries in the new target zone. For an example of priming the new target zone after a full system
generation, see “Examples” on page 444.
After the ZONERENAME operation, all the information about the zones in the old CSI
(SMPE.SYSPROD.CSI) remains unchanged, and the following changes have been made for the zones in
the new CSI (SMPE.SYSBKUP.CSI):
• The zones in SMPE.SYSBKUP.CSI have been renamed to SYSTGTB and SYSDLBB.
• New GLOBALZONE ZONEINDEX subentries point to zones SYSTGTB and SYSDLBB on data set
SMPE.SYSBKUP.CSI.
• The TARGETZONE entry for SYSTGTB indicates that the related DLIB zone is SYSDLBB, and the
DLIBZONE entry for SYSDLBB indicates that the related target zone is SYSTGTB.
Other than the zone definition entries, the content of the renamed zones remain unchanged.
4. Add or change DDDEF entries as appropriate in the SYSTGTB and SYSDLBB zones.
Processing
With the ZONERENAME command, you can rename a specified distribution or target zone. SMP/E supports
the following variations of renaming:
• Distribution zone to distribution zone
• Target zone to target zone
• Distribution zone to target zone
The rename operation itself is very simple. Before doing it, however, SMP/E makes sure the correct
parameters have been entered and that the rename request is valid. If any of the checks fail, an error
message is issued, and the rename operation is terminated. The following checks are made:
• oldzonename and newzonename must not be the same.
• The new zone must not already exist in the data set it is to reside in.
• A GLOBALZONE ZONEINDEX entry for the new zone name must not already exist.
• If TOTYPE(TARGET) is specified:
– The GLOBALZONE ZONEINDEX entry for the old zone name must be a distribution zone.
– The NEWDATASET operand must also be specified, and the SAMEDATASET operand must not be
specified.
• If NEWDATASET is specified, the data set name specified in the NEWDATASET operand must not be the
same as the data set value for the old zone name.
• If SAMEDATASET is specified, a GLOBALZONE ZONEINDEX entry must already exist for the old zone
name.
• No cross-zone subentry from the zone being renamed refers to the new zone name.
If all validity checking is successful, the renaming can be done. The following operations are done to
rename a zone:
• A GLOBALZONE ZONEINDEX entry is added for the new zone name. The data set name is the same
as either the value in the old zone (if SAMEDATASET was specified) or the name specified in the
NEWDATASET operand. The zone type is the same as the old zone type unless the TOTYPE(TARGET)
operand is coded, in which case the type is set to TARGET.
• A zone definition entry (either TARGETZONE or DLIBZONE entry) is created for the new zone; the zone
definition for the old zone is taken as a base.
If the RELATED operand or the OPTIONS operand, or both, were specified, that information is used in
the zone definition entry; otherwise, that data remains as is in the old zone.
• The old zone definition entry is deleted.
• If the SAMEDATASET operand is specified, the ZONEINDEX entry for the old zone is deleted.
This chapter describes all the reports produced by SMP/E. The following chart lists these reports and
the page on which each is found. The heading of the report indicates the service level of SMP/E that is
installed on your system. The SMP/E service level appears as SMP/E nn.nn. For example, SMP/E 36.nn is
V3R6.0 service level nn.
Report Page
BUILDMCS entry summary report “BUILDMCS entry summary report” on page 462
BUILDMCS function summary report “BUILDMCS function summary report” on page 464
Bypassed HOLD reason report “Bypassed HOLD reason report” on page 465
Causer SYSMOD summary report “Causer SYSMOD summary report” on page 467
CLEANUP summary report “CLEANUP summary report” on page 468
Cross-zone requisite SYSMOD report “Cross-zone requisite SYSMOD report” on page
469
Cross-zone summary report “Cross-zone summary report” on page 472
Deleted SYSMOD report “Deleted SYSMOD report” on page 475
Element summary report “Element summary report” on page 476
Exception SYSMOD report “Exception SYSMOD report” on page 480
File allocation report “File allocation report” on page 483
GENERATE summary report “GENERATE summary report” on page 486
GZONEMERGE report “GZONEMERGE report” on page 489
JCLIN cross-reference report “JCLIN cross-reference report” on page 493
JCLIN summary report “JCLIN summary report” on page 494
LINK LMODS summary report “LINK LMODS summary report” on page 497
LIST summary report “LIST summary report” on page 499
Missing FIXCAT SYSMOD report “Missing FIXCAT SYSMOD report” on page 500
MOVE/RENAME/DELETE report “MOVE/RENAME/DELETE report” on page 502
RECEIVE exception SYSMOD data report “RECEIVE exception SYSMOD data report” on page
507
RECEIVE summary report “RECEIVE summary report” on page 509
RECEIVE product summary report “Receive product summary report” on page 514
REJECT summary report “REJECT summary report” on page 516
Summary of bypassed and unresolved HOLD “Summary of bypassed and unresolved HOLD
reason report reason report” on page 524
SOURCEID report “SOURCEID report” on page 522
SYSMOD comparison HOLDDATA report “SYSMOD comparison HOLDDATA report” on page
527
SYSMOD comparison report “SYSMOD comparison report” on page 525
Report Page
SYSMOD regression report “SYSMOD regression report” on page 530
SYSMOD status report “SYSMOD status report” on page 531
UNLOAD summary report “UNLOAD summary report” on page 534
Unresolved HOLD reason report “Unresolved HOLD reason report” on page 535
ZONEEDIT summary report “ZONEEDIT summary report” on page 540
ZONEMERGE report “ZONEMERGE report” on page 542
PAGE nnnn - NOW SET TO GLOBAL ZONE DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
CURRENT RMID
is the RMID that appears in the element entry at the end of command processing. It appears only if
the element is processed successfully.
COMMENTS
if present, provides additional information about the entry. The following comments can appear:
ENTRY NOT FOUND
The specified entry was needed for processing, but is not defined in the set-to zone. This is an
error condition.
If the specified entry is a DDDEF, the values for the element MCS FROMDS operands will contain
only the distribution library ddname. To correct this, the user must take one of the following
actions:
1. Add the missing DDDEF entry and re-run the BUILDMCS command, or
2. Update the created MCS to specify the distribution library data set names on the element MCS
FROMDS operands.
ELEMENT NOT FOUND - ASSUMED DELETED
The function or an associated SYSMOD contains an element that is not defined in the set-to zone.
This is not an error, but SMP/E assumes the element has been deleted.
CURRENT FMID IS yyyyyyy
The function or associated SYSMOD contains an element that is defined in the set-to zone as
belonging to FMID yyyyyyy.
yyyyyyy
FMID that currently owns the entry.
LMOD CONTAINS MODDELS
The LMOD entry contains MODDEL subentries indicating that modules were part of this load
module, but have been deleted.
LMOD CONTAINS CROSS-ZONE MODS
The LMOD entry contains cross-zone modules.
LMOD HAS MODS FROM MULTIPLE FMIDS
The LMOD entry contains modules from more than the specified FMID.
MOD HAS CROSS-ZONE LMODS
The MOD entry contains cross-zone load modules.
MOD HAS NO LMODS
The module is defined as an entry belonging to the specified FMID, however, the MOD does not
exist in any load modules.
REQUIRED FOR CALLLIBS IN TARGET ZONE
The DDDEF is needed for CALLLIBS processing and must be defined in the target zone.
REQUIRED FOR LMOD SIDE DECK LIBRARY IN TARGET ZONE
The DDDEF is needed for the load module's side deck library and must be defined in the target
zone.
REQUIRED FOR LMOD UTILITY INPUT IN TARGET ZONE
The DDDEF is needed for the load module's utility input and must be defined in the target zone.
REQUIRED IN TARGET AND DISTRIBUTION ZONE
DDDEF must be defined in both the target and distribution zone.
REQUIRED IN TARGET ZONE
DDDEF must be defined in the target zone.
PAGE nnnn - NOW SET TO GLOBAL ZONE DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
DELETED
The specified function was deleted by another SYSMOD.
ERROR
The specified function has a status of error in its SYSMOD entry.
NOT FOUND
The specified function was not defined in the set-to zone.
NOT SELECTED
The specified function is not a function SYSMOD.
SELECTED
The specified function was valid for BUILDMCS processing.
SUPERSEDED
The specified function was included and completely replaced by another SYSMOD.
FMID
base FMID associated with the specified dependent function. If the specified function is a base
function, the FMID field is blank.
ASSOCIATED SYSMODS
lists installed SYSMODs whose FMID matches the specified function. These installed SYSMODs will
be included in the superseding function. The SYSMODs are preceded by an '*' when the associated
SYSMOD is in error.
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
HMP1700 DELETED
JMP1701 DELETED
HMP1800 SELECTED UR41007 UR41531 UR41534 UR41820 UR41937 UR41949 UR42025 UR42152
UR42277 UR42341 UR42393 UR42497 UR42499 UR42558 UR42726 UR43011
UR43171 UR43350 UR43492 UR43715 UR43934 UR43968 UR44005 UR44036
UR44178 UR44291 UR44433 *UR44593 *UR44780
JMP1801 SELECTED HMP1800 UR41008 UR41507 UR41823 UR41940 UR41956 UR42028 UR42155 UR42280
UR42342 UR42396 UR42496 UR42561 UR42729 UR43015 UR43175 UR43354
UR43791 UR43936 UR44038 UR44435
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
DOC HXY0022 * ONE OR MORE RESTART HOLDS ARE SUPPRESSED FOR HXY0022.
Figure 37. Bypassed HOLD reason report: sample report - suppressed HOLDDATA
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
AZ00001 GIM37301E 1 THIS SYSMOD HAS MORE THAN ONE APPLICABLE ++VER.
EYC0437 HAE1500 GIM24001I 30 ASSEMBLER ERROR FOR MODULE IATDMER IN LIBRARY LINKLIB FOR SYSMOD
EYC0437. THE SEQUENCE NUMBER IS 00001.
--- POSSIBLE CAUSES ---
1. THE CORRECT DEFAULT UTILITY RETURN CODE WAS NOT SPECIFIED.
2. THE OPTIONS ENTRY DOES NOT CONTAIN THE CORRECT UTILITY ENTRY.
UY12605 HAE1500 GIM40501E 30 THE DISTLIB IN ++MOD BLMGDBWR IS DIFFERENT FROM THE ELEMENT ENTRY IN THE ZONE.
GIM40501E 30 THE DISTLIB IN ++MOD BLMGDBWI IS DIFFERENT FROM THE ELEMENT ENTRY IN THE ZONE.
Figure 39. Causer SYSMOD summary report: sample report for APPLY
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: * - INDICATES THE ENTRY IS AN ALIAS OF THE PRECEDING MAJOR MEMBER NAME
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: * - INDICATES THE ENTRY IS AN ALIAS OF THE PRECEDING MAJOR MEMBER NAME
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Figure 42. Cross-zone requisite SYSMOD report: standard format for REPORT CROSSZONE
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT
OUTPUT
TZONE01 NONE
Figure 43. Cross-Zone Requisite SYSMOD Report: Sample Report for REPORT CROSSZONE
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: CROSS-ZONE REQUISITES CREATED BY THE CURRENT COMMAND ARE PRECEDED BY '*'.
Figure 44. Cross-zone requisite SYSMOD report: standard format for APPLY and ACCEPT
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: CROSS-ZONE REQUISITES CREATED BY THE CURRENT COMMAND ARE PRECEDED BY '*'.
TZONE01 NONE
Figure 45. Cross-Zone Requisite SYSMOD Report: Sample Report for APPLY
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: SEE THE MOVE/RENAME/DELETE REPORT FOR A SUMMARY OF CROSS-ZONE WORK CAUSED BY RENAMED LMODS
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
XZONE5 XLMOD1 LOADLIBR MOD110 MOD DELETED FROM LMOD 00 N/A APP1003
ZONE10 LMOD8 N/A MOD110 MOD NOT DELETED FROM LMOD N/A ERROR FOUND FOR ZONE APP1003
ZONE9 LMOD7 N/A MOD110 MOD NOT DELETED FROM LMOD N/A ERROR FOUND FOR ZONE APP1003
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PTF, APAR, and USERMOD listed in the TYPE field belongs to the function SYSMOD listed immediately
above it.
When the type is FUNCTION, the value of the SYSMOD is listed in the following chart:
SYSMOD ID only
The SYSMOD has been installed on the target or distribution libraries and is specified in the
DELETE operand list of the ++VER statement for the deleting SYSMOD.
SYSMOD ID followed by FMID(sysmod_id)
The SYSMOD is a dependent function that has been implicitly deleted. FMID identifies the
associated base function that has been explicitly deleted.
SYSMOD ID followed by NOT PREVIOUSLY INSTALLED
The SYSMOD has been specified in the DELETE operand list of the ++VER statement for the
deleting SYSMOD, but has not been installed on your target or distribution libraries.
SYSMOD ID followed by PREVIOUSLY DELETED
The SYSMOD has been specified in the DELETE operand list of the ++VER statement for the
deleting SYSMOD, but has been previously deleted by another function SYSMOD.
SYSMODs that have been previously deleted may remain as entries on the target zone or
distribution zone if they are specified in the SUP operand list either of the deleting function
SYSMOD or of another SYSMOD that has been processed concurrently.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
ELEMENT ELEMENT ELEMENT CURRENT CURRENT DISTLIB SYSLIB ASSEM LOAD LMOD SYSMOD SYSMOD
TYPE NAME STATUS FMID RMID LIBRARY LIBRARY NAMES MODULE SYSLIB NAME STATUS
aaaaaaaa bbbbbbbb cccccccc ddddddd eeeeeee fffffff ggggggg hhhhhhhh iiiiiiii jjjjj kkkkkkk llllllll
aaaaaaaa bbbbbbbb cccccccc ddddddd eeeeeee fffffff ggggggg hhhhhhhh iiiiiiii jjjjj kkkkkkk llllllll
aaaaaaaa bbbbbbbb cccccccc ddddddd eeeeeee fffffff ggggggg hhhhhhhh iiiiiiii jjjjj kkkkkkk llllllll
aaaaaaaa bbbbbbbb cccccccc ddddddd eeeeeee fffffff ggggggg hhhhhhhh iiiiiiii jjjjj kkkkkkk llllllll
NOT SEL
This version of the element was not selected. Following are the reasons an element might not be
selected.
• Multiple versions of the element. If multiple versions of the same element are being processed
concurrently, a superior version may have been chosen from another SYSMOD.
A module might not be selected if a macro or source caused a higher level of the module to be
assembled.
If none of the versions of an element are selected, a superior version already exists on the target
system.
• FMID mismatch. Often, when an element is not selected, its FMID did not match the FMID
of the element on the target system. The selection and exclusion of elements is discussed in
““Processing” on page 77” on pages “Processing” on page 28 and “Processing” on page 77.
• No target library. When an element has no target library (as described in message
GIM43401W), the status is NOT SEL. The element is not selected for update to any target
libraries.
• Owning SYSMOD marked NOGO. An element can be marked NOT SEL if the owning SYSMOD is
marked NOGO before processing is finished for that element.
Note: NOT SEL refers to processing in the set-to zone. An element with a status of NOT SEL can be
updated in cross-zone LMODs.
SRC SEL
Because the source version of the module was selected, the object version (++MOD) was not
processed. For example, when a source or macro is changed, the source may be reassembled to
create the updated object module.
CURRENT FMID
is the FMID that appears in the element entry at the end of command processing. It appears only if
the element is processed successfully.
CURRENT RMID
is the RMID that appears in the element entry at the end of command processing. It appears only if
the element is processed successfully.
DISTLIB LIBRARY
is the ddname of the distribution library containing the element.
SYSLIB LIBRARY
is the ddname of the target library containing the element.
ASSEM NAMES
is a list of SRC or ASSEM modules assembled as a result of a macro or source modification. This field
is not present for ACCEPT processing. It is present for RESTORE processing only if the MAC entry
contains a GENASM subentry.
LOAD MODULE
is a list of load modules that were link-edited or copied using the module in the ELEMENT NAME field.
This field is not present for ACCEPT processing.
Note: For S/ZAP elements, this list shows the load modules that included the module specified on the
++ZAP MCS.
If two operands were used on the IMASPZAP NAME statement to limit the load modules that were
updated, this list shows all the load modules that the element is part of. Check the utility completion
messages (GIM237xx) to determine which load modules were updated.
LMOD SYSLIB
is a list of target libraries that contained the load module in the LOAD MODULE field and that were
updated during APPLY or RESTORE processing. This field is set to the DISTLIB value for ACCEPT
processing.
Note: SMPLTS appears in this column when a module is linked into a base version of a load module in
the SMPLTS data set.
SYSMOD NAME
identifies the SYSMODs that changed the element in the ELEMENT NAME field.
SYSMOD STATUS
is the status of the SYSMOD in the SYSMOD NAME field.
APPLIED, ACCEPTED, or RESTORED
The SYSMOD was successfully processed.
DELETED
The SYSMOD was explicitly or implicitly deleted.
ERROR
SYSMOD processing stopped after some target libraries or SMP/E libraries were updated, but
before the SYSMOD was completely processed. A SYSMOD is completely processed when all
its elements have been processed and all of the SYSMOD's requisites have been completely
processed. See SMPOUT to determine the cause of the error.
Note: ERROR does not appear in the SYSMOD status field when the CHECK operand is specified on
the command.
EXCLUDED
The SYSMOD was specified on the EXCLUDE operand.
HELD
The SYSMOD was held because one or more of HOLD reason IDs were not resolved.
INCMPLT
SYSMOD processing is incomplete because of some failure. No target libraries were updated.
NOGO
The SYSMOD was not processed before any updates. This can happen when a related SYSMOD
has an error. See SMPOUT to determine the cause of the error.
NOGO(E)
SYSMOD processing stopped because a required SYSMOD was excluded.
NOGO(H)
SYSMOD processing stopped because a required SYSMOD was held.
SUPD
The SYSMOD is superseded by one or more SYSMODs being processed. The superseding
SYSMODs are shown in the REQUISITE AND SUPBY SYSMODS field in the SYSMOD status report.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
ELEMENT ELEMENT ELEMENT CURRENT CURRENT DISTLIB SYSLIB ASSEM LOAD LMOD SYSMOD SYSMOD
TYPE NAME STATUS FMID RMID LIBRARY LIBRARY NAMES MODULE SYSLIB NAME STATUS
Figure 51. Element summary report: sample report for APPLY CHECK
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
If the ENDDATE operand was specified on the REPORT ERRSYSMODS command, that value appears
in this field. Otherwise, the current date or the IPL date (if any) specified on the EXEC statement for
GIMSMP is used.
If neither BEGINDATE nor ENDDATE was specified on the REPORT ERRSYSMODS command, no dates
appear in this field.
HOLD FMID
is the FMID of the ++HOLD MCS that was received for the HOLDERROR reason ID.
SYSMOD NAME
is the ID of a SYSMOD installed in the specified zone that meets these conditions:
• For target and distribution zones, it is an installed SYSMOD for which ++HOLD statements were
received later and whose ERROR reason IDs have not yet been resolved.
• For the global zone, it is a received SYSMOD for which ++HOLD statements with ERROR reason IDs
have been received.
If there are no SYSMODs to report on in the zone, you see ***NONE in the SYSMOD NAME field, and
the remaining fields are blank.
APAR NUMBER
is a list of one or more HOLDERROR reason IDs (APAR numbers) that caused the installed SYSMOD to
become an exception SYSMOD.
RESOLVING SYSMODS NAMES
is the SYSMOD that will fix the problem causing the hold. It will either be the fix for the held SYSMOD
or ***NONE, if there is no known fix.
RESOLVING SYSMODS STATUS
can have the following status values:
• GOOD
The resolving SYSMOD is not held. This does not mean that the SYSMOD has been received. The
RESOLVING SYSMOD RECEIVED column will provide that information. GOOD indicates that the
resolving SYSMOD has no known problems.
• ERREL
The resolving SYSMOD is held with a hold class of ERREL. ERREL indicates that, although the
resolving SYSMOD is held, the problem that it resolves is more critical.
• HELD
Resolving SYSMOD is held.
RESOLVING SYSMOD RECEIVED
indicates whether the resolving SYSMOD is received (YES) or not received (NO).
HOLD CLASS
is the hold class specified on the CLASS operand of the ++HOLD MCS that was being installed.
HOLD SYMPTOMS
field contains a description of the problem associated with the held SYSMOD. It may contain
3-character symbols representing various symptoms of the problem, a text description, or
a combination of symptom symbols and text. The following symbols may appear. For a
complete list of the symbols, see Enhanced HOLDDATA for z/OS (service.software.ibm.com/holdata/
390holddata.html).
DAL
Data Loss
FUL
Function Loss
IPL
Requires IPL
PRV
Pervasive Problem
PRF
Performance Problem
Only the first 57 characters of the SYMP field will be displayed in the Exception SYSMOD Report.
Summary section
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
ZONE
shows each requested zone that contained a held SYSMOD.
FMID
list the FMIDs that have APARS against them. If there are no FMIDs with APARs in a requested zone,
then this field is set to ***NONE.
TOTAL APARS AGAINST FMID
indicates the total number of APARs that have error holds against an installed FMID.
TOTAL RESOLVING SYSMODS AGAINST FMID
indicates the total number of resolving SYSMODs found against an installed FMID or a SYSMOD of the
installed FMID. The number includes all APARs and all PTFs (both received and not received; held and
not held) against the FMID or a SYSMOD of the FMID.
PAGE 0001 - NOW SET TO GLOBAL ZONE DATE 04/23/07 TIME 16:08:43 SMP/E 36.nn SMPRPT OUTPUT
HMJ4102 HMJ4102 AN78422 AN78422 GOOD YES HIPER IPL,FAILS WITH E37 ABEND
UW31189 HELD YES
UW32001 GOOD YES
AN80332 AN80332 GOOD YES HIPER DAL,PRV,FUL
UW37822 GOOD YES
AN80501 UW38922 HELD YES HIPER PRV
HQA5140 HQA5140 AN90012 AN90012 GOOD YES HIPER DAL
UW42146 HELD YES
Figure 55. Exception SYSMOD report: sample report (first zone section 1)
PAGE 0002 - NOW SET TO GLOBAL ZONE DATE 04/23/07 TIME 16:08:43 SMP/E 36.nn SMPRPT OUTPUT
Figure 56. Exception SYSMOD report: sample report (first zone section 2)
PAGE 0003 - NOW SET TO GLOBAL ZONE DATE 04/23/07 TIME 16:08:43 SMP/E 36.nn SMPRPT OUTPUT
PAGE 0004 - NOW SET TO GLOBAL ZONE DATE 04/23/07 TIME 16:08:43 SMP/E 36.nn SMPRPT OUTPUT
TGT1 HMJ4120 6 12
HQA5140 2 3
DZONE1 HBB1200 2 2
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
ZONE DDNAME DDDEFNAM SMPDDNAM TYPE --------------DATA SET OR PATH-------------- VOLSER UNIT STATUS
ERROR
An error occurred when SMP/E tried to dynamically allocate the specified ddname. See the error
messages in SMPOUT to determine the cause of the error.
NODDF
There was no DDDEF entry in the current zone; so SMP/E could not dynamically allocate the
requested DD statement.
The SMPRPT entry in the sample report is an example of a DD statement that was not found. In
this case, because SMP/E could not allocate the SMPRPT DD statement, it had to write all reports
to the SMPOUT DD statement.
NTFND
The JCL did not contain the required DD statement. SMP/E tries to dynamically allocate the DD
statement using the DDDEF entries.
PATH
The DATA SET OR PATH field of the report is filled in with the path in a UNIX file system to which
the file was allocated.
PATHHFS
The DATA SET OR PATH field of the report is filled in with the name of the HFS data set containing
the path to which the file was allocated.
The PATHHFS line is generated for all commands in which a path in a UNIX file system has been
allocated.
PERM
The DD statement specified a permanent data set.
SYMHFS
The DATA SET OR PATH field of the report is filled in with the name of the HFS data set containing
a symbolic link for an element or load module that was updated in the path to which the file was
allocated.
Any SYMHFS lines will follow the PATHHFS line for an allocated file.
The SYMHFS lines will only be generated during APPLY, LINK LMOD, LINK MODULE, or RESTORE
processing. In APPLY, LINK LMOD, LINK MODULE, or RESTORE, the elements and load modules
updated or deleted from libraries allocated to a path will now be tracked. A list of all symbolic
links for these elements or load modules will be derived. The physical HFS data set containing the
symbolic link is then derived. A list of data sets containing symbolic links is thus determined. Any
duplicates are removed from the list. In addition, if the data set name matches the data set name
in the PATHHFS line it is also removed from the list. A SYMHFS line is written to the report for all
remaining data sets.
SYSIO
The DD statement specified a SYSIN or SYSOUT data set.
The SMPOUT entry in the sample report is an example of a SYSIO data set. The data set name in
this sample is the temporary JES2 data set name (shown as JES2.A.B…).
TEMP
The DD statement specified a temporary data set.
The entries for SMPWRK1 through SMPWRK6 in the sample report are examples of temporary
data sets allocated by SMP/E.
VIO
The DD statement specified is a VIO data set.
The entries for SYSUT1 through SYSUT4 in the sample report are examples of VIO data sets
specified by the user; their DDDEFNAM fields are blank.
DATA SET OR PATH
is the name of the data set or path specified in the DDDEF entry or in the JCL.
• For data sets, the full data set name (up to 44 characters) is displayed.
• For concatenated DD statements specified in the JCL, only the information from the first
concatenated library is displayed.
• For paths, the full pathname (up to 255 characters) is displayed. The pathname is enclosed by
apostrophes. If the pathname plus the enclosing apostrophes is greater than 44 characters, the
pathname spans several lines.
VOLSER
identifies the volume specified in the DDDEF entry, the JCL, or the catalog.
UNIT
identifies the unit where the data set resides. This field is filled in if SMP/E dynamically allocated the
DD statement and the DDDEF entry contained the unit information. Otherwise, this field is blank.
STATUS
is the status of the data set: NEW, OLD, MOD, or SHR.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
ZONE DDNAME DDDEFNAM SMPDDNAM TYPE --------------DATA SET OR PATH-------------- VOLSER UNIT STATUS
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Examples
The following sample reports are provided:
• “Example 1: No load modules with a SYSLIB allocation” on page 487
• “Example 2: Load modules with a SYSLIB allocation” on page 488
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT
OUTPUT
GZONEMERGE report
This report is produced during GZONEMERGE processing to show the entries that were merged. If an error
occurs and command processing stops, you can use this report to determine how far the merge operation
has been completed. This report is arranged by entry type and, within entry type, alphanumerically by
entry name. If no entries were merged, the GZONEMERGE report states NO ENTRIES MERGED. NO
APPLICABLE ENTRIES IN FROM GLOBAL ZONE.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
DDDEF
designates a DDDEF entry
FEATURE
designates the FEATURE entry
FMIDSET
designates an FMIDSET entry
GLOBALZONE
designates a GLOBALZONE entry
HOLDDATA(E)
designates a HOLDDATA entry with a hold category of ERROR
HOLDDATA(F)
designates a HOLDDATA entry with a hold category of FIXCAT
HOLDDATA(S)
designates a HOLDDATA entry with a hold category of SYSTEM
HOLDDATA(U)
designates a HOLDDATA entry with a hold category of USER
OPTIONS
designates an OPTIONS entry
ORDER
designates an ORDER entry
PRODUCT
designates the PRODUCT entry
SYSMOD
designates a SYSMOD entry
UTILITY
designates a UTILITY entry
ZONESET
designates a ZONESET entry
ENTRY NAME
is the name of the entry. This field is blank for the GLOBALZONE entry. This field contains the SYSMOD
ID specified on the ++HOLD MCS when the entry is HOLDDATA(E), HOLDDATA(F), HOLDDATA(S), or
HOLDDATA(U).
SUBENTRY TYPE
is generally blank but contains a subentry designation when the ENTRY TYPE is GLOBALZONE or one
of the HOLDDATA types. For a GLOBALZONE entry, the following values may appear:
• FMID
• OPTIONS
• SREL
• ZDESC
• ZONEINDEX
For a HOLDDATA type entry, the only value that can appear is HOLDREASON.
SUBENTRY VALUE
is the value of the field identified by the SUBENTRY TYPE field. This field is generally blank but
contains a value for the following subentry types:
• FMID
• OPTIONS
• SREL
• ZDESC
• ZONEINDEX
• HOLDREASON
When HOLDREASON is the subentry type, the subentry value is the reason-id specified in the
HOLDDATA entry. For other subentry types, the subentry value is one that was found in the
GLOBALZONE entry in the originating global zone.
ACTION
describes what SMP/E did with that entry.
MERGED
The specified entry or subentry was in the FROM GLOBAL ZONE but not in the TO GLOBAL ZONE;
so SMP/E added it to the TO GLOBAL ZONE.
NOT FOUND
The specified entry was not found in the FROM GLOBAL ZONE.
NOT MERGED
The specified entry or subentry was in both the FROM GLOBAL ZONE and the TO GLOBAL ZONE.
NOT SELECTED
The specified entry was not a valid FMIDSET name.
RENAMED
The specified entry was renamed.
REPLACED
The specified entry was in both the FROM GLOBAL ZONE and the TO GLOBAL ZONE. Because the
level of the FEATURE, PRODUCT, or SYSMOD was higher in the originating global zone than was in
the destination global zone, the entry was replaced.
REASON
is the reason associated with the action.
The following table depicts the various ACTION values with their associated REASON values and an
explanation of each.
Table 27. GZONEMERGE report REASON values
NOT FOUND FORFMID VALUE NOT FOUND IN GZONE FMID LIST The entry was not found in the
originating global zone's GZONE FMID
subentry, but was selected previously
by SMP/E as a valid FMID on the
FORFMID operand.
NOT MERGED DUPLICATE ENTRY NAME IN TO GLOBAL ZONE The entry was found in both the
originating global zone and the
destination global zone.
NOT SELECTED FORFMID VALUE NOT A VALID FMIDSET NAME The value specified on the FORFMID
operand was not a valid FMIDSET name
in the originating global zone.
REPLACED REWORK LEVEL IS GREATER IN FROM GLOBAL ZONE. The SYSMOD, FEATURE, or PRODUCT
entry was found in both the originating
and destination global zones. Because
the level of the SYSMOD, FEATURE, or
PRODUCT was higher in the originating
global zone than was in the destination
global zone, the entry was replaced.
The following table depicts the various ACTION values with their associated REASON values when the
ENTRY TYPE is GLOBALZONE. All other reason values are covered in Table 27 on page 491 and Table
29 on page 492.
Table 28. GZONEMERGE report REASON values for GZONE entry and subentries
FMID NOT MERGED DUPLICATE SUBENTRY VALUE IN TO The subentry value was found in both the originating global
GZONE ENTRY zone and the destination global zone.
OPTIONS NOT MERGED DUPLICATE SUBENTRY VALUE IN TO The subentry value was found in both the originating global
GZONE ENTRY zone and the destination global zone.
SREL NOT MERGED DUPLICATE SUBENTRY VALUE IN TO The subentry value was found in both the originating global
GZONE ENTRY zone and the destination global zone.
ZDESC NOT MERGED DUPLICATE SUBENTRY VALUE IN TO The subentry value was found in both the originating global
GZONE ENTRY zone and the destination global zone.
ZONEINDEX NOT MERGED DUPLICATE ZONE INDEX NAME WITH The subentry value was found in both the originating global
DIFFERENT DSN zone and the destination global zone. This occurs when the
name of the zone index is the same in both global zones,
but the associated dsn is different.
The following table depicts the various ACTION values with their associated REASON values when the
ENTRY TYPE is ORDER. All other reason values are covered in Table 27 on page 491 and Table 28 on
page 492.
Table 29. GZONEMERGE report REASON values for ORDER entry
NOT MERGED DUPLICATE ORDERID IN TO GLOBAL ZONE The ORDERID subentry value was found in an existing ORDER entry in
the destination zone.
NOT MERGED UNIQUE ORDER ENTRY NAME CANNOT BE An ORDER entry was found in the destination zone which has the same
GENERATED name as the ORDER entry in the originating zone. SMP/E was not able
to generate a unique ORDER entry name in the destination zone.
RENAMED DUPLICATE ENTRYorigname IN TO GLOBAL ZONE An ORDER entry was found in the destination zone which has the same
name as the ORDER entry in the originating zone. SMP/E was able to
generate a new ORDER entry name to be used in the destination zone.
Examples
The following sample report is provided:
• “Example: Merge global zone entries” on page 492
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
where nnnnnnnn is the ID of the SYSMOD containing the inline JCLIN. Several of these reports can be
produced during APPLY or ACCEPT, one for each SYSMOD with inline JCLIN.
Note: If SMP/E runs out of storage during JCLIN processing, the JCLIN Cross-Reference report may not be
produced.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
aaaaaaaa bbbbbbbb nnnn nnnn nnnn aaaaaaaa bbbbbbbb nnnn nnnn nnnn
aaaaaaaa bbbbbbbb nnnn nnnn nnnn aaaaaaaa bbbbbbbb nnnn nnnn nnnn
aaaaaaaa bbbbbbbb nnnn nnnn nnnn aaaaaaaa bbbbbbbb nnnn nnnn nnnn
aaaaaaaa bbbbbbbb nnnn nnnn nnnn aaaaaaaa bbbbbbbb nnnn nnnn nnnn
aaaaaaaa bbbbbbbb nnnn nnnn nnnn aaaaaaaa bbbbbbbb nnnn nnnn nnnn
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
where nnnnnnnn is the ID of the SYSMOD containing the inline JCLIN. Several of these reports can be
produced during APPLY or ACCEPT, one for each SYSMOD with inline JCLIN.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
aaaaaaaa bbbbbbbb cccccc dddddd eeeeeeee1 fffffff ggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmm nnnnnnnn
eeeeeeee2
eeeeeeeex
2. When going to a new page in the report, the LMOD NAME, LMOD SYSLIB, LMOD STATUS and LKED
SEQ# fields are repeated. If the load module exists in two SYSLIBS, the second SYSLIB is also
repeated along with its associated LMOD STATUS and LKED SEQ#. The MODULE FMID and MODULE
RMID fields are also repeated for the first line of the new page.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
FMID
is the FMID of the held SYSMOD.
HOLD CLASS
is the hold class specified on the CLASS operand of the ++HOLD MCS. If the CLASS operand is not
specified on the ++HOLD, this field is blank.
MISSING APAR
is the unresolved HOLD reason ID.
HELD SYSMOD
is the ID of a SYSMOD that has an unresolved HOLD condition.
RESOLVING SYSMOD NAME
is the list of SYSMODs that can resolve the HOLD reason ID. If a fixing SYSMOD is identified in the
RESOLVER operand on the ++HOLD MCS, then that SYSMOD is included in this list. If other SYSMODs
exist in the global zone that supersede the reason ID APAR, then they are also be included in this list.
If no SYSMODs are in the list, then this report field will contain the value ***NONE.
RESOLVING SYSMOD STATUS
describes the current state of the SYSMOD that resolves the HOLD.
GOOD
The SYSMOD is not held and has no known problems.
HELD
The SYSMOD is held because one or more error HOLDs exist for it.
RESOLVING SYSMOD RECEIVED
indicates whether the resolving SYSMOD has been received and is found in the global zone or not.
Resolving SYSMODs identified in the missing FIXCAT SYSMOD report might have a status of HELD. This
means one or more error HOLDs exists for them. To identify SYSMODs that resolve these error HOLDs, the
second part of the missing FIXCAT SYSMOD report is produced. In addition, any of the resolving SYSMODs
that are held for an error are also included in the second part of the report. If none of the resolving
SYSMODs identified in the first part of the report are held for an error, then this second part of the report is
not produced.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
MISSING FIXCAT SYSMOD REPORT FOR ZONE nnnnnnn - FIXES FOR HELD RESOLVING SYSMODS
GOOD
The SYSMOD is not held and has no known problems.
HELD
The SYSMOD is held because one or more error HOLDs exist for it.
RESOLVING SYSMOD RECEIVED
indicates whether the resolving SYSMOD has been received and is found in the global zone or not.
HOLD CLASS
is the hold class specified on the CLASS operand of the ++HOLD MCS.
PAGE nnnn - NOW SET TO GLOBAL ZONE DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
IBM.Device.zIIP
HBB7730 PSP AA15968 HBB7730 UA27113 GOOD NO
AA16005 HBB7730 UA26475 GOOD NO
HRM7730 PSP AA16458 HRM7730 UA28236 GOOD NO
AA18772 HRM7730 ***NONE
IBM.Function.DataSharing.MVS/ESA
HBB7730 PSP AA13335 HBB7730 UA24231 GOOD NO
AA16416 HBB7730 UA26375 GOOD NO
AA16534 HBB7730 UA29059 HELD NO
UA30114 GOOD YES
AA16640 HBB7730 UA27891 GOOD NO
AA17188 HBB7730 UA29175 GOOD NO
IBM.HealthChecker
HBB7730 PSP AA15593 HBB7730 UA28094 GOOD NO
AA16687 HBB7730 UA27678 GOOD NO
HRF7730 PSP AA15290 HRF7730 UA26196 GOOD NO
AA17429 HRF7730 UA28412 GOOD NO
PAGE nnnn - NOW SET TO GLOBAL ZONE DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
MISSING FIXCAT SYSMOD REPORT FOR ZONE TGT - FIXES FOR HELD RESOLVING SYSMODS
MOVE/RENAME/DELETE report
This report is produced when SMP/E has processed a SYSMOD containing ++MOVE, ++RENAME, or
++DELETE statements. It can be written for the following commands: ACCEPT, ACCEPT CHECK, APPLY,
APPLY CHECK, RESTORE, and RESTORE CHECK.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
was renamed, because the cross-zone module does not contain an XZLMOD subentry for the
renamed LMOD.
If the LMOD does contain the cross-zone module, use UCLIN to add an XZLMOD subentry for
the renamed LMOD to the cross-zone MOD entry. If the LMOD does not contain the cross-zone
module, use UCLIN to remove the XZMOD subentry for the cross-zone module from the LMOD
entry.
Note: If you use UCLIN to update the cross-zone connections, make sure the TIEDTO subentries
of the zone definition entry are still synchronized.
MOD ENTRIES UPDATED
For ++DELETE processing, the LMOD subentries in the MOD entries have been changed and the
LMOD entry has been deleted. For ++RENAME processing, the LMOD subentries in the MOD
entries have been changed.
NEW NAME EXISTS
An LMOD entry already exists (as either an LMOD entry or in one of the LMOD's SYSLIBs) for the
new name specified on a ++RENAME statement.
NOT FOUND
The definition side deck for the named load module was not found in the side deck library, or no
entry was found for the element or load module named.
NOT IN ALL SYSLIBS
The load module was not in all the target libraries indicated in the LMOD entry.
NOT IN CURRENT DISTLIB
The element was not in the distribution library named. The DISTLIB on the MCS does not match
the DISTLIB subentry in the element entry.
NOT IN CURRENT SYSLIB
The element or load module was not in the target library named. The SYSLIB on the MCS does not
match the SYSLIB subentry in the element or LMOD entry.
NOT INSTALLED
The element or load module named was not installed or being installed.
PREVIOUS ERROR
A previous error prevented SMP/E from updating the cross-zone MOD XZLMOD subentry to
indicate that the set-to LMOD was renamed. Use UCLIN to update the XZLMOD subentry for the
renamed LMOD.
SYSLIB SUBENTRY NOT FOUND
The SYSLIB subentry of the element was not changed, because the SYSLIB subentry was not
found in the element entry. This situation is common during ACCEPT processing for elements that
are packaged in a totally copied library.
SYSMOD TERMINATED
The SYSMOD containing the ++MOVE, ++RENAME, or ++DELETE statement previously failed.
XZLMOD SUBENTRY REPLACED
Cross-zone processing has been successful and the MOD entry has been updated with the load
module name.
Note: The report is limited to reporting on the first 20 aliases processed for a particular element. For
example, suppose a load module having 23 aliases is being moved by a ++MOVE statement. The first 20
aliases moved appear in the MOVE/RENAME/DELETE report.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
LMOD GXXLMOD UZ00442 MOVED FROM SYSLIB HFSPTH1 TO HFSPATH2 ALIAS(ES) '../Friendly_alternate_n
ame1_which_is_64_characters_long
_exactly.', '../The_other_altnam
e_is_SHORTER!!!!'
LMOD HFSLMOD UZ00440 ALIAS DELETED FROM SYSLIB HFSPTH1 - '../I_am_a_64_chara
cter_name,_wonderfully_friendly!__Think_so????'
ALIAS DELETED FROM SYSLIB HFSPATH2 - '../I_too_am_a_lon
g_name.__But_not_64_characters.'
LMOD HFSLMOD UZ00441 ALIAS NOT DELETED FROM SYSLIB HFSPTH1 - '../lo' ALIAS NOT IN SYSLIB
ALIAS NOT DELETED FROM SYSLIB HFSPATH2 - ../OK ALIAS NOT IN SYSLIB
LMOD LMODA UR08856 NOT MOVED FROM SYSLIB HFS001 TO HFS002 HAS ASSOCIATED SYMBOLIC LINKS
LMOD LMODC UR08822 NOT MOVED FROM SYSLIB LINKLIB TO LPALIB ALREADY MOVED
LMOD LMODD UR08544 NOT DELETED FROM SYSLIB LINKLIB NOT INSTALLED
NOT DELETED FROM SYSLIB PVTLIB NOT INSTALLED
LMOD LMODH UR06455 ALIAS DELETED FROM SYSLIB LINKLIB - LOTTO
ALIAS DELETED FROM SYSLIB PVTLIB - LOTTO
LMOD LMODM UR06455 ALIAS NOT DELETED FROM SYSLIB LINKLIB - LOTTO2 ALIAS NOT IN SYSLIB
ALIAS NOT DELETED FROM SYSLIB PVTLIB - LOTTO2 ALIAS NOT IN SYSLIB
LMOD LRMFD1 PREX014 NOT DELETED FROM SYSLIB HFSPTH1 MISSING ALIAS(ES) '../alternate_na
me1_which_is_friendly_but_long',
'../The_other_altname_is_SHORTER
!!!!'
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Examples
The following sample reports are provided:
• “Example 1: Report for internal HOLDDATA” on page 508
• “Example 2: Report for ++HOLD data from SMPHOLD” on page 509
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Figure 80. RECEIVE exception SYSMOD data report: sample report for internal HOLDDATA
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Figure 81. RECEIVE exception SYSMOD data report: sample report for external HOLDDATA
that might be assigned. If at least one FIXCAT HOLD with one or more assigned source IDs need to be
reported, the RECEIVE summary report might be written when only HOLDDATA is processed .
If SOURCEID was specified on the RECEIVE command, FOR SOURCEID=source-id appears on the report
heading.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
RECEIVED
The SYSMOD was successfully received.
RE-RECEIVED
A reworked version of the SYSMOD was successfully received again.
TYPE
is the SYSMOD type: APAR, FUNCTION, PTF, or USERMOD.
SOURCEID
is the source ID specified on the ++ASSIGN statement associated with this SYSMOD, the source ID
specified on the SOURCEID operand of the RECEIVE command, or a source ID assigned from a FIXCAT
HOLD.
FEATURE
is the feature name specified on the ++FEATURE statement associated with this SYSMOD.
STATUS FIELD COMMENTS
is additional information about the SYSMOD.
ALREADY APPLIED
A Receive Zone Group was defined in the active OPTIONS entry or the ZONEGROUP operand was
specified on the RECEIVE command, and the SYSMOD was applied in at least one of the zones in
the Receive Zone Group.
ALREADY ACCEPTED
A Receive Zone Group was defined in the active OPTIONS entry, or the ZONEGROUP operand was
specified on the RECEIVE command, and the SYSMOD was accepted in at least one of the zones in
the Receive Zone Group.
ALREADY APPLIED AND ACCEPTED
A Receive Zone Group was defined in the active OPTIONS entry, or the ZONEGROUP operand was
specified on the RECEIVE command, and the SYSMOD was applied and accepted in at least one
target and distribution zone in the Receive Zone Group.
*NO SYSMODS PROCESSED*
No SYSMODs were received.
*SYSMODS WITH SPECIFIED FMID(S) NOT FOUND IN SMPPTFIN*
Although RECEIVE FORFMID(xxxxxxx) was specified, no SYSMODs were received, because there
were no SYSMODs in the SMPPTFIN data set with an FMID matching the FMIDs specified on the
FORFMID operand.
ALREADY RECEIVED
The SYSMOD was already in the CSI and PTS data sets and, therefore, was not received.
CONSTRUCTION ERROR
The SYSMOD was not constructed correctly. See SMPOUT for messages describing this error.
I/O ERROR DURING PROCESSING
A severe error occurred on one of the SMP/E data sets during SYSMOD processing. See SMPOUT
for messages describing this error.
NO APPLICABLE ++VER
The SYSMOD did not contain a ++VER statement with SREL and FMID values that matched any
SREL and FMID values in the global zone definition.
REWORK LEVEL IS NOT GREATER THAN THE VERSION ALREADY RECEIVED
The SYSMOD was not received again, because the REWORK level on its header MCS was not
higher than the REWORK level for the previously received version of that SYSMOD.
SELECTED SYSMOD NOT FOUND ON SMPPTFIN
The SYSMOD was specified on the SELECT operand but was not in the input data set.
SELECTED SYSMOD NOT RECEIVED
The SYSMOD was specified on the SELECT operand but was not received because of an error.
Examples
The following sample reports are provided:
• “Example 1: Successful RECEIVE” on page 512
• “Example 2: Unsuccessful RECEIVE” on page 513
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Figure 83. RECEIVE summary report: sample report for successful RECEIVE processing
++FUNCTION(JXY5502).
++VER(Z038).
++HOLD(JXY5502)
SYSTEM
FMID(JXY5502)
REASON(FULLGEN)
COMMENT(A FULL SYSGEN MUST BE PERFORMED TO
INSTALL THIS FUNCTION)
.
++MOD(MOD0003) DISTLIB(DLIB) TXLIB(TXLIB).
++PTF(UZ00001).
++VER(Z038) FMID(JXY5502).
++MOD(MOD0003) DISTLIB(DLIB) TXLIB(TXLIB).
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Figure 84. RECEIVE summary report: sample report with failing SYSMOD
Example 3: RECEIVE summary report with source IDs assigned from FIXCAT
HOLDs
Figure 85 on page 514 shows a formatted report output with source IDs assigned from FIXCAT HOLDs.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Figure 85. RECEIVE summary report: source IDs assigned from FIXCAT HOLDs
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PRODID VRM
FEATURE STATUS STATUS COMMENTS DESCRIPTION
RE-RECEIVED
A reworked version of the ++FEATURE or ++PRODUCT MCS was successfully received again.
STATUS FIELD COMMENTS
is additional information about the ++FEATURE or ++PRODUCT MCS.
ALREADY RECEIVED
The FEATURE or PRODUCT was already in the CSI but the REWORK operand was not specified on
the incoming MCS. Therefore, the ++FEATURE or ++PRODUCT MCS was not received.
CONSTRUCTION ERROR
The ++FEATURE or ++PRODUCT MCS was not constructed correctly. See SMPOUT for messages
describing this error.
I/O ERROR DURING PROCESSING
A severe error occurred on one of the SMP/E data sets during FEATURE or PRODUCT processing.
See SMPOUT for messages describing this error.
NO APPLICABLE SREL
The ++PRODUCT MCS did not contain an SREL value that matched any SREL values in the global
zone definition.
NO APPLICABLE FMID
The FEATURE MCS did not contain an FMID value that matched any FMID values in the global zone
definition.
NO APPLICABLE PRODUCT
The ++FEATURE MCS did not specify a PRODUCT value matching any PRODUCT entries in the
global zone.
REWORK LEVEL IS NOT GREATER THAN THE VERSION ALREADY RECEIVED
The ++FEATURE or ++PRODUCT MCS was not received again, because the REWORK level on the
MCS was not higher than the REWORK level for the previously received version of the ++FEATURE
or ++PRODUCT MCS.
STOPPED BY EXIT ROUTINE
The RECEIVE installation exit routine passed SMP/E a return code indicating that the FEATURE or
PRODUCT should not be received.
SYNTAX ERROR
SMP/E found a syntax error in the ++FEATURE or ++PRODUCT MCS. See SMPOUT for messages
that describe this error.
DESCRIPTION
the DESCRIPTION value for the PRODUCT or FEATURE that was processed.
Example
This example shows an SMPPTFIN data set containing ++FEATURE and ++PRODUCT MCS, and the
resulting Receive Product Summary Report. For this example, assume that the "RECEIVE SYSMODS."
command was entered and that SREL P150 does not exist in the global zone.
++PRODUCT(5647-A01,2.5.0) DESCRIPTION(OS/390)
SREL(Z038).
++FEATURE(OS3250BA) DESCRIPTION(OS/390 Base)
PRODUCT(5647-A01,2.5.0)
FMID(HBB6605,HMP1B00).
++FEATURE(OS3250DD) DESCRIPTION(OpenEdition DCE User Privacy DES)
PRODUCT(5647-A01,2.5.0)
FMID(JMB3125).
++FEATURE(OS3250LD) DESCRIPTION(Language Environment Decryption)
PRODUCT(5647-A01,2.5.0)
FMID(JMWL755).
++FEATURE(OS3250PN) DESCRIPTION(PSF NetSpool)
PRODUCT(5647-A01,2.5.0)
FMID(HPRF226).
++PRODUCT(4697-949,1.3.0) DESCRIPTION(PUP/E)
SREL(P150).
++FEATURE(PUP130BA) DESCRIPTION(PUP/E Base)
PRODUCT(4697-949,1.3.0)
FMID(PUP1300,JUP1301).
++PRODUCT(5645-007,3.1.0) DESCRIPTION(NETVIEW)
SREL(Z038).
++FEATURE(NV310BAS) DESCRIPTION(NetView Entitled English (ENU))
PRODUCT(5645-007,3.1.0)
FMID(HPZ8100,HPZ8130,JPZ8101).
++PRODUCT(5668-911,2.3.0) DESCRIPTION(PL/I)
SREL(Z038).
++FEATURE(PLI230LI) DESCRIPTION(OS PL/I Library)
PRODUCT(5668-911,2.3.0)
FMID(HDL1202,HHL2302,JDL1212,JDL1214).
++PRODUCT(5695-013,1.3.0) DESCRIPTION(REXX)
SREL(Z038).
++FEATURE(RX130CMP) DESCRIPTION(REXX Compiler/370)
PRODUCT(5695-013,1.3.0)
FMID(HWK0130,JWK0131).
++FEATURE(RX130LIB) DESCRIPTION(REXX Library/370)
PRODUCT(5695-013,1.3.0)
FMID(HWJ9130,HWJ9133,JWJ9131).
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PRODID VRM
FEATURE STATUS STATUS COMMENTS DESCRIPTION
5655-DB2 05.01.00 NOT RECEIVED NO APPLICABLE SREL IBM Database 2 Server for OS/390
DB2B510 NOT RECEIVED NO APPLICABLE PRODUCT DB2 for OS/390
DB2N510 NOT RECEIVED NO APPLICABLE PRODUCT DB2 NET.DATA
DB2P510 NOT RECEIVED NO APPLICABLE PRODUCT DB2PM
5655-147 01.02.00 NOT RECEIVED REWORK LEVEL IS NOT CICS Transaction Server
GREATER THAN THE
VERSION ALREADY
RECEIVED
CTSB120 RECEIVED CICS TS ENU
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
SYSMOD COMMENTS
sssssss cccccccccccccccccccccccccccccccccccc
sssssss cccccccccccccccccccccccccccccccccccc
SYSMODS REJECTED
NAME DESCRIPTION
ffffffff ddddddddddddddddddddddddddddddddddddd…
ffffffff ddddddddddddddddddddddddddddddddddddd…
For mass or select mode, DLIB shows every distribution zone that was defined by a zone index in the
GLOBALZONE entry, unless the distribution zone was specified on the EXCLUDEZONE operand.
For PURGE mode, DLIB shows the distribution zones and ZONESETs that were specified, as well as
the distribution zones contained in any specified ZONESETs. Each ZONESET name is preceded with an
asterisk (*), and each distribution zone in the ZONESET is preceded with a pound sign (#).
If no distribution zones were checked, NONE appears instead of a zone name.
TARGET
lists the target zones that were checked during REJECT processing.
For mass or select mode, TARGET shows every target zone that was defined by a zone index in the
GLOBALZONE entry, unless the target zone was specified on the EXCLUDEZONE operand.
For PURGE mode, TARGET shows the target zones and ZONESETs that were specified, as well as the
target zones contained in any specified ZONESETs. Each ZONESET name is preceded with an asterisk
(*), and each target zone in the ZONESET is preceded with a pound sign (#).
If there are no entries for this heading, NONE appears instead of a zone name.
These are the fields in the NOT REJECTED section of the report:
FMIDS NOT DELETED FROM THE GLOBAL ZONE FMID SUBENTRY
lists each FMID specified on the DELETEFMID operand that did not exist in the GLOBALZONE entry.
FMIDs are listed only for NOFMID mode processing.
If there are no entries for this heading, NONE appears instead of an FMID.
SYSMOD
lists each SYSMOD that was a candidate to be rejected but then became ineligible. SYSMODs are only
listed for select or PURGE mode processing.
If some SYSMODs were successfully rejected and none failed, NONE appears instead of a SYSMOD ID.
COMMENTS
explains why the SYSMOD was not rejected:
REWORK LEVEL IS GREATER THAN THE VERSION IN ZONE aaaaaaa
The SYSMOD was not rejected because the REWORK level on its header MCS was greater than the
REWORK level for the version currently installed in the specified target or distribution zone.
SYSMOD ACCEPTED IN ZONE dlibzone
The SYSMOD was accepted in the specified distribution zone, and BYPASS(ACCEPTCHECK) was
not specified with the SELECT operand.
SYSMOD APPLIED IN ZONE tgtzone
The SYSMOD was applied in the specified target zone, and BYPASS(APPLYCHECK) was not
specified with the SELECT operand.
SYSMOD NOT ACCEPTED IN ZONE dlibzone
The SYSMOD was accepted in one or more of the distribution zones indicated on the PURGE
operand. However, it was not accepted in the specified zone, where it was applicable.
SYSMOD NOT APPLIED IN ZONE tgtzone
The SYSMOD was accepted in one or more of the distribution zones indicated on the PURGE
operand. However, it was not applied in this target zone, which was specified on the TARGETZONE
operand and in which the SYSMOD was applicable.
SYSMOD NOT FOUND IN THE GLOBAL ZONE
A SYSMOD specified on the SELECT operand was not in the global zone. It might not have been
received, or it might have already been rejected.
THERE ARE NO SYSMODS TO REJECT
None of the SYSMODs in the global zone met the criteria specified on the REJECT command. No
SYSMODs were rejected. No SYSMODs are listed in the NOT REJECTED section of the report, and
NONE appears in the SUCCESSFULLY REJECTED section.
These are the fields in the SUCCESSFULLY REJECTED section of the report:
Examples
The following sample reports are provided:
• “Example 1: REJECT summary report for PURGE-mode processing” on page 519
• “Example 2: REJECT summary report for NOFMID-mode processing” on page 520
• “Example 3: REJECT summary for mass-mode processing” on page 521
SET BDY(GLOBAL).
REJECT PURGE(MVSSET) TZONE(MVSSET).
Figure 90 on page 520 is an example of a REJECT Summary report that you might see after running
these commands.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
(NONE)
SYSMOD COMMENTS
(NONE)
SYSMODS REJECTED
UZ01245
UZ01345
UZ01723
UZ01803
NAME DESCRIPTION
(NONE)
(NONE)
Figure 90. REJECT summary report: sample report for PURGE-mode processing
SET BDY(GLOBAL).
REJECT DELETEFMID(HMX1101) NOFMID HOLDDATA.
Figure 91 on page 521 is an example of a REJECT Summary report that you might see after running
these commands.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
DLIB - (NONE)
TARGET - (NONE)
(NONE)
SYSMOD COMMENTS
(NONE)
HMX1101
SYSMODS REJECTED
UZ01245
UR02512
UR02522
NAME DESCRIPTION
(NONE)
(NONE)
Figure 91. REJECT summary report: sample report for NOFMID-Mode processing
SET BDY(GLOBAL).
REJECT.
Figure 92 on page 522 is an example of a REJECT Summary report that you might see after running
these commands.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
DLIB - DMVA
(NONE)
SYSMOD COMMENTS
(NONE)
(NONE)
SYSMODS REJECTED
UZ01245 UZ02512
UZ01629 UZ02522
UZ01845
UZ01852
UZ01924
NAME DESCRIPTION
(NONE)
(NONE)
Figure 92. REJECT summary report: sample report for mass-mode processing
SOURCEID report
This report is produced for REPORT SOURCEID processing to summarize the source IDs found in the
specified zones. A separate report is written for each zone specified on the REPORT SOURCEID command.
The format of the report depends on whether the SYSMODIDS operand was specified on the REPORT
SOURCEID command.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
cccccccc
ddddddd ddddddd ddddddd ddddddd ddddddd
ddddddd ddddddd ddddddd ddddddd
cccccccc
ddddddd ddddddd ddddddd
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
________________________SOURCEIDS_________________________
cccccccc
cccccccc
cccccccc
cccccccc
cccccccc
cccccccc
cccccccc
cccccccc
cccccccc
Figure 94. SOURCEID report: standard format (SYSMODIDS operand not specified)
Examples
The following sample reports are provided:
• “Example 1: SYSMODIDS operand specified” on page 523
• “Example 2: SYSMODIDS operand not specified” on page 524
SET BDY(GLOBAL).
REPORT SOURCEID
ZONES(TGT1)
SYSMODIDS.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PUT0703
UZ00023* UZ00024 UZ00035 UZ00037 UZ00039
UZ00052 UZ00073 UZ00076 UZ00077
PUT0704
UZ00015 UZ00023* UZ00044
SET BDY(GLOBAL).
REPORT SOURCEID
ZONES(TGT2).
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
________________________SOURCEIDS_________________________
PUT0706
PUT0707
PUT0708
PUT0701
PUT0702
PUT0703
PUT0704
Figure 96. SOURCEID report: sample report (SYSMODIDS operand not specified)
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
SUMMARY OF BYPASSED AND UNRESOLVED HOLD REASON REPORT FOR xxxxxx yyyyy PROCESSING
NOTE: SEE THE HOLDDATA REPORT OF UNRESOLVED HOLD REASON IDS TO DETERMINE HOLDS CAUSING SYSMOD TERMINATIONS.
SEE THE HOLDDATA REPORT OF BYPASSED HOLD REASON IDS TO DETERMINE HOLDS THAT WERE BYPASSED.
aaaaaa bbbbbbb cccccccccc ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd
ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd
ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd
aaaaaa bbbbbbb cccccccccc ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd
ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd
aaaaaa bbbbbbb cccccccccc ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd
ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd ddddddd
Figure 97. Summary of Bypassed and Unresolved HOLD Reason Report: Standard Format
FIXCAT
indicates a fix category hold.
SYSTEM
indicates a system hold.
USER
indicates a user hold.
REASON ID
is a reason ID that affected the processing of the following list of SYSMODs.
REPORT
The report where the type, reason, or sysmod can be found. The report is one of the following types:
BYPASSED
Data found in BYPASSED HOLDDATA Report
UNRESOLVED
Data found in the UNRESOLVED HOLDDATA Report
SYSMODS AFFECTED
is a list of the SYSMODs affected by the unresolved or bypassed HOLD condition.
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
SUMMARY OF BYPASSED AND UNRESOLVED HOLD REASON REPORT FOR APPLY CHECK PROCESSING
NOTE: SEE THE HOLDDATA REPORT OF UNRESOLVED HOLD REASON IDS TO DETERMINE HOLDS CAUSING SYSMOD TERMINATIONS.
SEE THE HOLDDATA REPORT OF BYPASSED HOLD REASON IDS TO DETERMINE HOLDS THAT WERE BYPASSED.
IPL BYPASSED UK12345 UK23456 UK34567 UK45678 UK56789 UK67890 UK78901 UK89012 UK901234
Figure 98. Summary of bypassed and unresolved HOLD reason report: sample report
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
SYSMOD COMPARISON REPORT FOR ztype ZONE zone1 AND ztype ZONE zone2
IN THE GLOBAL ZONE IN CSI globaldataset
MATCHING SREL(S) - aaaa, bbbb, …
To determine whether the SYSMOD is applicable to the comparison zone, you need to check
the program directory or installation manual for the FMID to find out its SREL. If that SREL is
supported by the comparison zone, the SYSMOD may be applicable. For more details, see the
description of REPORT SYSMODS processing in “Processing” on page 337.
If the SYSMOD is applicable, receive it again, and change the SMPPUNCH output so that the
SYSMOD is no longer commented out. If you could not determine whether the SYSMOD is
applicable, you can still use this approach. Messages issued during APPLY CHECK or ACCEPT
CHECK processing indicate whether the SYSMOD is applicable.
RECEIVED
indicates whether the SYSMOD being reported on has been received and is available in the global
zone. Either YES or NO may appear in this field.
SOURCEIDS
is a list of the source IDs associated with the SYSMOD in the input zone. If there are no source IDs
associated with the SYSMOD, this field is blank.
Note: If an applicable SYSMOD is not received, the source IDs may help you determine where to
obtain the SYSMOD.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
SYSMOD COMPARISON REPORT FOR TARGET ZONE TZONE1 AND TARGET ZONE TZONE2
IN THE GLOBAL ZONE IN CSI SYS1.PRODUCT.VSAM.CSI
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPHRPT OUTPUT
SYSMOD COMPARISON HOLDDATA REPORT FOR ztype ZONE zone1 AND ztype ZONE zone2
IN THE GLOBAL ZONE IN CSI csidataset
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ccccccc ddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
bbbbbbb ccccccc ddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ccccccc ddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
• the ++HOLD MCS that was received for the HOLD reason ID. This data can span several lines and is
provided for each reason ID, or
• an indication that the ++MCS has been suppressed for the reason IDs specified in the Suppress
HOLDDATA (SUPPHOLD) subentry of the OPTIONS entry.
PAGE 2 - NOW SET TO GLOBAL ZONE DATE 04/07/08 TIME 15:04:07 SMP/E 35.00 SMPHRPT OUTPUT
SYSMOD COMPARISON HOLDDATA REPORT FOR TARGET ZONE OS390 AND TARGET ZONE OS390A
IN THE GLOBAL ZONE IN CSI SYS2.PRODUCT.VSAM.CSI
In the SYSMOD Comparison HOLDDATA Report, each report entry includes the ++HOLD card image for the
subject HOLD. The SUPPHOLD subentry of the OPTIONS entry can be used to suppress the card images
for certain HOLD reason IDs.
If a HOLD reason ID exists in the SUPPHOLD subentry list, the card images for that HOLD will not be
included in the SYSMOD Comparison HOLDDATA Report. There will be one report entry per FMID for
reason IDs that are to be suppressed. Here again is the example from earlier, except this time the
suppressed entries are consolidated.
PAGE 2 - NOW SET TO GLOBAL ZONE DATE 04/07/08 TIME 15:04:07 SMP/E 35.00 SMPHRPT OUTPUT
SYSMOD COMPARISON HOLDDATA REPORT FOR TARGET ZONE OS390 AND TARGET ZONE OS390A
IN THE GLOBAL ZONE IN CSI SYS2.PRODUCT.VSAM.CSI
IPL HBB7740 * ONE OR MORE IPL HOLDs ARE SUPPRESSED FOR HBB7740
USER DELAY HBB2102 * ONE OR MORE DELAY HOLDs ARE SUPPRESSED FOR HBB212
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: '*' INDICATES THAT THE REGRESSED MODID IS SUPD BY ANOTHER SYSMOD BEING PROCESSED. THE REGRESSION MAY BE RESOLVED.
'-' INDICATES THE CURRENT RMID IS A HIGHER LEVEL SYSMOD THAN THE REGRESSING SYSMOD
xxxxxxxx
is the SMP/E command being processed: APPLY or ACCEPT.
yyyyy
is CHECK if CHECK was specified on APPLY or ACCEPT. Otherwise, this field is blank.
REGRESSING SYSMOD
identifies the SYSMOD that caused the listed elements to be regressed.
REGRESSED SYSMOD
is a list of SYSMODs that had previously changed the elements listed in the COMMON ELEMENTS
fields. These changes may have been overlaid.
COMMON ELEMENTS TYPE and NAME
lists the elements changed by the regressing SYSMOD.
CURRENT RMID
is the RMID for the highest level SYSMOD replacing this element in this SMP/E run. If the element is
not being replaced by the current SMP/E run, or is being deleted, this column may be blank.
OTHER POTENTIALLY REGRESSED SYSMODS
is a list of SYSMODs that were superseded by the regressed SYSMOD, but were not superseded by the
regressing SYSMOD. This list may include the SYSMOD IDs of APARs that were fixed (superseded) by
the regressed SYSMOD, but were not included in the regressing SYSMOD.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: '*' INDICATES THAT THE REGRESSED MODID IS SUPD BY ANOTHER SYSMOD BEING PROCESSED. THE REGRESSION MAY BE RESOLVED.
'-' INDICATES THE CURRENT RMID IS A HIGHER LEVEL SYSMOD THAN THE REGRESSING SYSMOD
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.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
aaaaaaa bbbbbbb cccccccc ddddddd eeeeeee fffffff…
aaaaaaa bbbbbbb cccccccc ddddddd eeeeeee fffffff…
aaaaaaa bbbbbbb cccccccc ddddddd eeeeeee fffffff…
aaaaaaa bbbbbbb cccccccc ddddddd eeeeeee fffffff…
aaaaaaa bbbbbbb cccccccc ddddddd eeeeeee fffffff…
SUPD
The SYSMOD is superseded by one or more SYSMODs being processed. The superseding
SYSMODs are shown in the REQUISITE AND SUPBY SYSMODS field.
Note: Not all superseded SYSMODs are listed in the report. For example, SYSMODs that were not
selected for processing and appear only in another SYSMOD's ++VER SUP operand are not listed.
TYPE
is the SYSMOD type: APAR, FUNCTION, PTF, or USERMOD. For superseded SYSMODs that have not
been received, this field is blank.
FMID
is the function SYSMOD that owns the SYSMOD. For superseded SYSMODs, this field is blank.
REQUISITE SYSMODS, SUPBY SYSMODS, HOLD REASON-IDs, AND CAUSER SYSMODS
lists SYSMODs or reason IDs associated with the SYSMODs being installed. If a SYSMOD was not
installed, these SYSMODs or reason IDs are preceded by a character indicating why (-, *, or #). The
list of SYSMODs or reason IDs is preceded by one of the following values, which indicate the type of
SYSMOD or reason ID.
CAUSER
SYSMODs whose failure led to the failure of the SYSMOD in the SYSMOD field. All the SYSMODs in
the CAUSER field are in the Causer SYSMOD Summary report, along with a summary of the related
error and, when feasible, a list of possible causes for the error. This holds true even when the
SYSMOD in the SYSMOD field and the causer SYSMOD are the same.
HOLDE
ERROR reason IDs for the SYSMOD.
HOLDF
FIXCAT reason IDs for the SYSMOD.
HOLDS
SYSTEM reason IDs for the SYSMOD.
HOLDU
USER reason IDs for the SYSMOD.
IFREQ
Conditional requisites for the SYSMOD, as defined by its associated ++IF statements or, if the
SYSMOD is a function, defined by previously processed SYSMODs.
PRE
Prerequisites for the SYSMOD.
REQ
Requisites for the SYSMOD.
SUPBY
SYSMODs that supersede the SYSMOD.
XZIFREQ
• For APPLY and ACCEPT processing, these are:
– Conditional requisites for the SYSMOD, as defined by its associated ++IF statements. Cross-
zone requisite checking has found that the FMID named on the ++IF exists in another zone.
– Conditional requisites (CIFREQ data) found in other zones for function SYSMODs being
installed into the set-to zone.
• For RESTORE processing, these are the causer SYSMODs in another zone. Cross-zone requisite
checking has found that another SYSMOD (a causer) has named the SYSMOD being restored as a
requisite on a ++IF statement.
XZIFREQ is listed as a parenthesized pair of names —for example, (SYSMOD2 ZONE3)— identifying
a SYSMOD and the participating cross-zone.
For HOLDE, HOLDS, HOLDU, IFREQ, PRE, REQ, and XZIFREQ:
• A dash (–) next to a listed SYSMOD means that SYSMOD has NOGO status and may not be available
for processing.
• If an asterisk (*) appears next to a listed SYSMOD, that SYSMOD has NOGO status, but the
appropriate option was specified in the BYPASS operand list on the APPLY or ACCEPT commands.
This means that even if the SYSMOD is not available for processing, the SYSMOD that has specified
it as a requisite can be processed.
For SUPBY:
• If a pound sign (#) appears next to a listed SYSMOD, that SYSMOD has not been successfully
processed. As long as at least one superseding SYSMOD has been successfully processed, the
superseded SYSMOD is considered to be installed.
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.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
UZ65375 NOGO(H) PTF HHM1302 IFREQ UZ61932 UZ61934 UZ62802 UZ65385 UZ65386 -UZ65387
-UZ65388 -UZ65389
XZIFREQ -(UZ33333 ZONE444) (UZ33333 ZONE5)
REQ UZ65376 UZ65377 UZ65378 UZ65379 UZ65380 UZ65381
UZ65382 UZ65383 UZ65384
CAUSER UZ65387 UZ65388
⋮
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
ENTRY-TYPE
is the type of entry SMP/E looked for. If no specific entries of a given type were selected, that entry
type is shown only once. If several specific entries of a given type were selected, that entry type is
shown for each of the selected entries.
ENTRY-NAME
is the name of an entry specified on the UNLOAD command. If no specific entries were selected, this
is blank.
STATUS
indicates whether any entries were found.
FOUND
The specified entry or entry type was found.
NOT FOUND
The specified entry or entry type was not found.
EMPTY ZONE – NO ENTRIES FOUND
This may appear for the UNLOAD command. No entries were found in the specified zone. This is
the only line in the report. The entry type and entry name fields are blank.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: THE SYSMODS LISTED IN THIS REPORT ALSO APPEAR IN THE CAUSER SYSMOD SUMMARY REPORT.
MISSING
the SYSMOD was either not available (not in the global zone) or was not selected for APPLY or
ACCEPT command processing.
NOGO
SYSMOD processing stopped before any library or zone updates were made for this SYSMOD. For
example, a required SYSMOD was missing.
NOGO(E)
SYSMOD processing stopped because a required SYSMOD was excluded.
NOGO(H)
SYSMOD processing stopped because a required SYSMOD was held.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: THE SYSMODS LISTED IN THIS REPORT ALSO APPEAR IN THE CAUSER SYSMOD SUMMARY REPORT.
Format and explanation of data for SYSTEM and USER HOLDS section
The standard format of the "Unresolved HOLD Reason Report" is illustrated in Figure 112 on page 538.
This last section of the report maintains the format and information in the previous version of the report.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: THE SYSMODS LISTED IN THIS REPORT ALSO APPEAR IN THE CAUSER SYSMOD SUMMARY REPORT.
ddddddd eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Figure 112. Unresolved HOLD reason report: SYSTEM and USER HOLD section
Examples
The following examples illustrate the three sections of the "Unresolved HOLD Reason Report":
• “Example 1: ERROR section of the unresolved HOLD reason report” on page 539
• “Example 2: FIXCAT section of the unresolved HOLD reason report” on page 539
• “Example 3: SYSTEM and USER section of the unresolved HOLD reason report” on page 539
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: THE SYSMODS LISTED IN THIS REPORT ALSO APPEAR IN THE CAUSER SYSMOD SUMMARY REPORT.
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: THE SYSMODS LISTED IN THIS REPORT ALSO APPEAR IN THE CAUSER SYSMOD SUMMARY REPORT.
Example 3: SYSTEM and USER section of the unresolved HOLD reason report
The example in Figure 115 on page 539 shows both a SYSTEM and a USER HOLD. In this report you will
note that the comment text supplies a lot of information about the HOLD.
PAGE nnnn - NOW SET TO TARGET ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
NOTE: THE SYSMODS LISTED IN THIS REPORT ALSO APPEAR IN THE CAUSER SYSMOD SUMMARY REPORT.
Figure 115. Unresolved HOLD reason report: sample of the SYSTEM and USER section of the report
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Examples
The following sample reports are provided:
• “Example 1: ZONEEDIT summary report for DDDEF entries” on page 541
• “Example 2: ZONEEDIT summary report for PATH subentries” on page 541
• “Example 3: ZONEEDIT summary report for XZENTRIES” on page 541
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Figure 117. ZONEEDIT summary report: sample report for DDDEF entries
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Figure 118. ZONEEDIT summary report: sample report for PATH subentries
After SMP/E processes these commands, the ZONEEDIT Summary report that is produced is similar to the
following sample report.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
ZONEMERGE report
This report is produced during ZONEMERGE processing to show the entries that were copied. If an error
occurs and command processing stops, you can use this report to determine how far the merge operation
has been completed. This report is arranged by entry type and, within entry type, alphanumerically by
entry name. If no entries were merged, the ZONEMERGE report states NO ENTRIES MERGED. NO
APPLICABLE ENTRIES IN FROM ZONE.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
SRELS MERGED
The specified entry was in the ZONE definition entry of the FROM zone that did not exist in the
ZONE definition entry of the TO zone. These SRELs were added to the ZONE definition entry of the
TO zone.
REASON
is the reason the entry was not merged if the ACTION field shows NOT MERGED. The only value for
this field is REPLACE NOT SPECIFIED.
Examples
The following sample reports are provided:
• “Example 1: Merge to null zone” on page 543
• “Example 2: Merge to existing zone with REPLACE operand” on page 543
• “Example 3: Merge to existing zone with NOREPLACE operand” on page 544
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
Figure 121. ZONEMERGE report: sample report for merging to a null zone
DDDEF ASAMPLIB
ASSEM ASSEM01
LMOD LMOD02
LMOD LMOD03
MACRO MAC02
MODULE MOD02
SOURCE SRC03
then the ZONEMERGE report looks like Figure 122 on page 544.
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
PAGE nnnn - NOW SET TO zzzzzz ZONE nnnnnnn DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPRPT OUTPUT
SMP/E keeps records of the highest return code for each command processed during a single SMP/E run.
Before SMP/E processes a command, it checks whether the return codes for previous commands are less
than the maximum allowed. If so, SMP/E can process the command; otherwise, the command fails.
You can change which return codes SMP/E checks for by specifying the RC operand on the command
you want to process. This operand must be the last one specified on the command. It indicates which
commands and return codes SMP/E is to check before processing the current command. The return code
must be a decimal number greater than or equal to 0 and less than 16. For example, if you want the
ACCEPT command to run unless the return code from a previous APPLY command is higher than 8, and
you want SMP/E to check the default values for JCLIN, UCLIN, and SET, you should code this RC operand
on the ACCEPT command:
RC(APPLY=08,JCLIN=08,UCLIN=08,SET=00)
Table 30 on page 545 shows the default maximum return codes for each SMP/E command. Using these
default values, for example, SMP/E processes an ACCEPT command if the return codes for previous
commands meet these conditions:
• The highest return code for a SET command was 0. This condition is required because if the SET
command fails, SMP/E does not know which zone to process for the subsequent commands.
• The highest return code for a JCLIN or UCLIN command was less than 8. This condition is required
because these commands prepare data sets, such as the CSI, for processing by subsequent commands.
If these commands fail, the other commands could either fail or run incorrectly.
• The highest return code for any other command was less than 12.
Table 30. Default maximum return codes for commands previously processed
Maximum for all
Command to be commands except Maximum for JCLIN or
processed JCLIN, UCLIN, and SET UCLIN Maximum for SET
ACCEPT 12 08 00
APPLY 12 08 00
BUILDMCS 12 08 00
CLEANUP 12 08 00
DEBUG 16 16 00
GENERATE 12 08 00
GZONEMERGE 12 08 00
JCLIN 12 08 00
LINK 12 08 00
LIST 16 12 00
LOG 12 08 00
RECEIVE 12 08 00
REJECT 12 08 00
REPORT 16 16 00
Table 30. Default maximum return codes for commands previously processed (continued)
Maximum for all
Command to be commands except Maximum for JCLIN or
processed JCLIN, UCLIN, and SET UCLIN Maximum for SET
RESETRC 16 08 00
RESTORE 12 08 00
SET 16 16 16
UCLIN 12 08 00
UNLOAD 12 08 00
UPGRADE 16 16 00
ZONECOPY 12 08 00
ZONEDELETE 12 08 00
ZONEEDIT 12 08 00
ZONEEXPORT 12 08 00
ZONEIMPORT 12 08 00
ZONEMERGE 12 08 00
ZONERENAME 12 08 00
Return code processing for the RC operand is similar to processing for the default maximum return codes.
Before SMP/E processes a command with the RC operand, it checks whether the return codes for previous
commands are less than or equal to the maximums specified on the RC operand. If so, SMP/E can
process the command; otherwise, the command fails. There is a difference, however. SMP/E checks return
codes only for the commands specified on the RC operand. Return codes for any commands not specified
do not affect processing for the current command. Therefore, if you use the RC operand, you should
specify every command whose return code you want SMP/E to check.
Processing any SMP/E command requires a number of resources, such as shared and exclusive use of
various data sets. These data sets include:
• The target libraries, distribution libraries, various temporary work data sets, and SYSOUT data sets
• All the CSI data sets and the SMPPTS data set
If you want to run more than one SMP/E job concurrently, either you must ensure data set integrity, or
SMP/E must automatically provide that integrity.
You can manage the first category of data sets through:
• The DISP=OLD or DISP=SHR DD statement parameters. For more information, see the section "Sample
SMP/E Cataloged Procedure" in z/OS SMP/E User's Guide.
• DDDEF entries. For more information, see the section on "Dynamic Allocation" in z/OS SMP/E User's
Guide, or the section "DDDEF Entry (Distribution, Target, and Global Zone)" in z/OS SMP/E Reference.
• GIMDDALC control statements in SMPPARM member GIMDDALC. For more information, see the
"Preparing to Use SMP/E" chapter in z/OS SMP/E User's Guide, or the "Defining Control Statements
in SMPPARM members" chapter in z/OS SMP/E Reference.
SMP/E itself controls how the CSI and SMPPTS data sets are shared for concurrent background jobs by:
• Using different types of access for different types of processing
• Dividing command processing into phases so each phase can use the correct type of access
• Using the system enqueue facility to obtain and release the data sets
• Providing special support for sharing the global zone and the SMPPTS
Types of access
Every SMP/E command needs access to the global zone. Some commands also require access to one or
more other zones. In addition, commands may need different types of access. For example, LIST only
reads data and can, therefore, share it with other LIST jobs. On the other hand, APPLY actually updates
the target zone, and, therefore, needs exclusive use of that data set to ensure data set integrity.
To meet the needs of all the commands, SMP/E supports three types of access:
• Read access with no control of the zone
This access is required primarily during initialization for each command. For example, SMP/E might
check the ZONEINDEX entries in the global zone to obtain the data set name for the target zone for the
APPLY command. With this type of access, however, the data in the zone can be changed while SMP/E is
checking it.
For this type of access no enqueue is issued. It is, therefore, called read without enqueue.
• Read access with shared control of the zone
This access is required during certain phases of processing to ensure that the data being checked is not
being changed by another command. For example, when selecting SYSMODs to be applied, SMP/E must
ensure that SYSMODs are not being received or rejected at the same time.
To gain this type of access, SMP/E issues a shared enqueue on the data set where the zone resides. This
type of access is called read with shared enqueue.
• Update access with exclusive control of the zone
This access is required when the zone may be updated during command processing (as the target zone
is during APPLY).
To gain this type of access, SMP/E issues an exclusive enqueue on the data set where the zone resides.
CSI data set. If you want to be able to process such concurrent changes, you should define the zones in
different data sets. This is important to consider in determining how many CSI data sets you need and
how to spread zones among them.
SMP/E often needs to build load modules during APPLY, LINK LMODS, LINK MODULE, and RESTORE
command processing. After determining which load modules must be built, SMP/E verifies that all the
modules needed to build the load modules are available. If a module is not found, SMP/E checks whether
the target zone contains a MOD entry for that module. If it finds one, it checks whether the entry points to
an existing LMOD entry and looks for these situations:
• If there is an LMOD entry and it contains a COPY indicator, SMP/E can include the module from the
target library indicated in the LMOD entry.
• If the LMOD entry does not contain a COPY indicator, SMP/E checks whether the load module is a
single-CSECT load module. If so, SMP/E can include the load module from the target library indicated in
the LMOD entry.
• If the LMOD entry does not contain a COPY indicator and is not a single-CSECT load module, SMP/E
assumes that the module has been assembled and looks for an ASSEM or SRC entry with the same
name as the module. If SMP/E finds an ASSEM entry in the target zone, it assembles the entry and
uses the output when it link-edits the load module. If SMP/E finds an SRC entry in the target zone,
the SMPSTS data set, or the distribution library, it assembles the source and uses the output when it
link-edits the load module.
If SMP/E could not find a usable copy of the module, SMP/E checks whether there is a DLIB entry
corresponding to the distribution library for the module. If so, SMP/E checks whether the module is in the
target library pointed to by the DLIB entry. If this is true, SMP/E uses that copy of the module when it
link-edits the load module.
If a module is missing from the target zone or the target libraries and is not a new module, SMP/E checks
for it in the distribution zone. If the FMID, RMID, and UMID in the distribution zone MOD entry match
those in the target zone MOD entry, SMP/E uses the distribution library version of the module to build the
load module.
If SMP/E does not find a required module by the previously described searches, it then tries to find a
copy of the module within the SYSMOD that last replaced the module in the target system. If the target
zone MOD entry for the module does not indicate that the module was assembled or updated since its
last replacement (RMIDASM is not set and there are no UMIDs), SMP/E locates the SYSMOD identified by
the RMID subentry in the SMPPTS data set. If the RMID SYSMOD is found in the SMPPTS data set, the
++MOD statement describing the required module is located within that SYSMOD. The ++MOD statement
describes how the module is packaged and where the module is located:
• If the module is found inline within the SYSMOD, SMP/E copies the object module from the SMPPTS
data set to the SMPWRK3 data set. Later, during the link-edit operation, the module is included from the
SMPWRK3 data set.
• If the module is packaged in a RELFILE data set, SMP/E allocates the associated SMPTLIB data
set that contains the module. Later, during the link-edit operation, the module is included from the
SMPTLIB data set. If the SMPTLIB data set cannot be allocated, SMP/E issues messages to describe the
allocation error and identify the modules that could not be found.
• If the module is packaged in either an LKLIB or TXLIB data set, SMP/E allocates the specified data set
that contains the module. Later, during the link-edit operation, the module is included from the LKLIB
or TXLIB data set. If the specified data set could not be allocated, SMP/E issues error messages to
describe the allocation error and identify the modules that could not be found.
If after this search, the module is still not found, SMP/E takes one of these actions:
• If the module had been previously installed in the target system, but not in the distribution system,
and no usable copy of the module could be found, then SMP/E issues error messages identifying each
incomplete load module that was to include the identified module.
• If the module had been previously installed in the target system and distribution system, but the service
level of the module in the distribution system does not match the service level of the module in the
Accessible publications for this product are offered through IBM Documentation (www.ibm.com/docs/en/
zos).
If you experience difficulty with the accessibility of any z/OS information, send a detailed message to
the Contact the z/OS team web page (www.ibm.com/systems/campaignmail/z/zos/contact_z) or use the
following mailing address.
IBM Corporation
Attention: MHVRCFS Reader Comments
Department H6MA, Building 707
2455 South Road
Poughkeepsie, NY 12601-5400
United States
Accessibility features
Accessibility features help users who have physical disabilities such as restricted mobility or limited vision
use software products successfully. The accessibility features in z/OS can help users do the following
tasks:
• Run assistive technology such as screen readers and screen magnifier software.
• Operate specific or equivalent features by using the keyboard.
• Customize display attributes such as color, contrast, and font size.
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.
This information could include technical inaccuracies or typographical errors. Changes are periodically
made to the information herein; these changes will be incorporated in new editions of the publication.
IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
This information could include missing, incorrect, or broken hyperlinks. Hyperlinks are maintained in
only the HTML plug-in output for IBM Documentation. Use of hyperlinks in other output formats of this
information is at your own risk.
Any references in this information to non-IBM websites are provided for convenience only and do not in
any manner serve as an endorsement of those websites. The materials at those websites are not part of
the materials for this IBM product and use of those websites 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.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the
exchange of information between independently created programs and other programs (including this
one) and (ii) the mutual use of the information which has been exchanged, should contact:
IBM Corporation
Site Counsel
2455 South Road
Such information may be available, subject to appropriate terms and conditions, including in some cases,
payment of a fee.
The licensed program described in this document 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.
Any performance data contained herein was determined in a controlled environment. Therefore, the
results obtained in other operating environments may vary significantly. Some measurements may have
been made on development-level systems and there is no guarantee that these measurements will be
the same on generally available systems. Furthermore, some measurements may have been estimated
through extrapolation. Actual results may vary. Users of this document should verify the applicable data
for their specific environment.
Information concerning non-IBM products was obtained from the suppliers of those products, their
published announcements or other publicly available sources. IBM has not tested those products and
cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of
those products.
All statements regarding IBM's future direction or intent are subject to change or withdrawal without
notice, and represent goals and objectives only.
This information contains examples of data and reports used in daily business operations. To illustrate
them as completely as possible, the examples include the names of individuals, companies, brands, and
products. All of these names are fictitious and any similarity to the names and addresses used by an
actual business enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs
in any form without payment to IBM, for the purposes of developing, using, marketing or distributing
application programs conforming to the application programming interface for the operating platform
for which the sample programs are written. These examples have not been thoroughly tested under
all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these
programs. The sample programs are provided "AS IS", without warranty of any kind. IBM shall not be
liable for any damages arising out of your use of the sample programs.
Applicability
These terms and conditions are in addition to any terms of use for the IBM website.
Personal use
You may reproduce these publications for your personal, noncommercial use provided that all proprietary
notices are preserved. You may not distribute, display or make derivative work of these publications, or
any portion thereof, without the express consent of IBM.
Commercial use
You may reproduce, distribute and display these publications solely within your enterprise provided
that all proprietary notices are preserved. You may not make derivative works of these publications, or
Rights
Except as expressly granted in this permission, no other permissions, licenses or rights are granted, either
express or implied, to the publications or any information, data, software or other intellectual property
contained therein.
IBM reserves the right to withdraw the permissions granted herein whenever, in its discretion, the use
of the publications is detrimental to its interest or, as determined by IBM, the above instructions are not
being properly followed.
You may not download, export or re-export this information except in full compliance with all applicable
laws and regulations, including all United States export laws and regulations.
IBM MAKES NO GUARANTEE ABOUT THE CONTENT OF THESE PUBLICATIONS. THE PUBLICATIONS
ARE PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT,
AND FITNESS FOR A PARTICULAR PURPOSE.
Notices 559
products. Therefore, z/OS and its product publications (for example, panels, samples, messages, and
product documentation) can include references to hardware and software that is no longer supported.
• For information about software support lifecycle, see: IBM Lifecycle Support for z/OS (www.ibm.com/
software/support/systemsz/lifecycle)
• For information about currently-supported IBM hardware, contact your IBM representative.
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be
trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at
Copyright and Trademark information (www.ibm.com/legal/copytrade.shtml).
Index 561
ACCEPT command (continued) ACCEPTCHECK (continued)
operands (continued) BYPASS option (continued)
FIXCAT 12 REJECT command 280
FORFMID 13 REJECT processing 290
FUNCTIONS 13 Access Method Services (AMS) 441
GROUP 14 accessibility
GROUPEXTEND 14 contact IBM 553
JCLINREPORT 15 features 553
NOJCLIN 15 ACCID
NOJCLINREPORT 15 ACCEPT processing 48
PTFS 15 SYSMOD entry
RC 15 global zone 389
REDO 16 ZONERENAME processing 455
RETRY 16 ACCJCLIN
REUSE 16 DLIBZONE entry 373
SELECT 16 JCLIN processing 153
SOURCEID 17 ACCTIME
USERMODS 18 SYSMOD entry
processing distribution zone 386
++JAR 45 ACTION reason ID 9, 55
++JARUPD 45 ADD UCL statement 365
++MAC 40 adding
++MACUPD 41 information to SMPLOG 229
++MOD 43 UCL statements 367
++SRC 41 ALIAS
++SRCUPD 41 data element entry 370
++ZAP 44 program element entry 384
COMPRESS 40 alias names
data elements 44 ACCEPT processing 22, 46
deleted SYSMODs 34 APPLY processing 70, 102
element installation 39 ALIAS statement
hierarchical file system elements 44 copy step
inline JCLIN 36 JCLIN processing 175, 176
modules 43 link-edit step
program elements 44 JCLIN processing 179, 181
summary 28 ALIGN2
SYSMOD selection 28 LMOD entry 378
reaccepting a SYSMOD 31 MOD entry 381
reports 24 ALLZONES
RMID updating 46 LIST command operand 209
storing CIFREQ data 48 AMODE=24
summary 5 LMOD entry 378
syntax 6 MOD entry 381
syntax notes 19 AMODE=31
SYSMODs LMOD entry 378
applicability 30 MOD entry 381
installation 34 AMODE=64
processing order 34 LMOD entry 378
reaccepting 24 MOD entry 381
selection 28 AMODE=ANY
termination 23 LMOD entry 378
UMID updating 46 MOD entry 381
updating AMS utility
alias names 46 merging CSIs 441
FMID 46 OPTIONS entry 383
RMID 46 AO reason ID 9, 55
SMPMTS 47 APAR fixes
SMPSCDS 47 ACCEPT processing 29
SMPSTS 47 APPLY processing 78
UMID 46 REJECT processing 289, 290
zone for SET BOUNDARY 5 SYSMOD entry for
ACCEPTCHECK distribution zone 386
BYPASS option target zone 386
RECEIVE command 235 APARs 29
Index 563
ASSEM entry (continued) BOUNDARY
unloading 399 SET command operand 359
ASSEMBLE building load modules
ACCEPT processing 42 by APPLY command 89
APPLY processing 93, 94 by LINK MODULE command 202
MOD entry 381 by RESTORE command 355
assembler opcodes description of 551
JCLIN processing 161 with CALLLIBS 552
assembler utility BUILDMCS command
ACCEPT processing 42 data set sharing 113
APPLY processing 93, 94 data sets used 108
GENERATE processing 133, 138 element versioning 109
JCLIN processing 154, 172 ENQ considerations 113
OPTIONS entry 383 example 109
specifying on JCLIN 154 macros causing assemblies 109
assemblies maintenance level 108
macros causing Move, Rename, and Delete MCS 109
ACCEPT processing 42 operands
APPLY processing 94 FORFMID 107
reusing output 109
ACCEPT processing 43 processing 110
APPLY processing 94 product intersections 108
source SMPPUNCH output 109
ACCEPT processing 42 summary 107
APPLY processing 93 syntax 107
assigning source IDs to SYSMODs zone for SET BOUNDARY 107
RECEIVE command BUILDMCS Entry Summary report 462
++ASSIGN processing 269 BUILDMCS Function Summary report 464
SOURCEID operand 241 BYPASS
assistive technologies 553 ACCEPT command operand 7
autocall 166 ACCEPT processing 23, 38
automatic library call function APPLY command operand 53
contrasted with LINK MODULE command 197 APPLY processing 71, 88
JCLIN for 166 example of bypassing system holds
LIBRARY statement to exclude modules from automatic ACCEPT command 27
library search 184 APPLY command 76
SYSLIB DD statement in link-edit steps 186 LIST command operand 210
automatic reaccept 24 RECEIVE command operand 235
automatic reapply 72 RECEIVE processing 267
automatic release of system holds REJECT command operand 280
APPLY command 76 REJECT processing 290
automatic rereceive 267 RESTORE command operand 344
RESTORE processing 348
SYSMOD entry
B distribution zone 386
backing off changes in the target libraries (RESTORE target zone 386
command) 343 BYPASS (IFREQ)
BACKUP ZONEMERGE command operand 442
LIST command operand 210 Bypassed HOLD Reason report 465
BACKUP entries
ACCEPT processing 47 C
APPLY processing 85, 86, 90, 103
listing 210 CALL
RESTORE processing 349, 352, 355 effect of CALLLIBS subentry on 95
UCLIN for 369 callable services
BDY 359 including modules from another product 186
BEGINDATE CALLLIBS
REPORT ERRSYSMODS command operand 307 ++JCLIN MCS operand 154
BINARY APPLY processing 69, 95, 96
hierarchical file system element entry 376 building load modules with 552
binder comment statement 156
UTILITY entry for 136 GENERATE processing 134
BLOCK JCLIN for 166
DDDEF entry 370 LINK LMODS command 191
Index 565
compressing data sets (continued) cross-zone load modules (continued)
REJECT processing 280 APPLY processing 83, 86
RESTORE processing 345, 352 creating 191, 197
CONCAT deleting 86
DDDEF entry 370 example 200
concatenating data sets GENERATE processing 134
not allowed in JCLIN 171 JCLIN processing 161, 189
conditional JCLIN comment statements 156, 158 LINK LMODS command 191
conditional requisites LINK MODULE command 197
ACCEPT processing 31, 48 listing LMOD entries for 222
APPLY processing 80, 104 renaming 86
checking for across zones RESTORE processing 355
REPORT CROSSZONE command 295 unloading entries for 405
contact cross-zone modules
z/OS 553 APPLY processing 83
CONTENT deleting 90
entries defined GENERATE processing 134
for GZONEMERGE 144 LINK LMODS command 191
ZONEMERGE command operand 442 LINK MODULE command 197
CONTENT operand listing MOD entries for 222
GZONEMERGE command operand 141 reincluding in load modules with a SYSLIB allocation 97
continuation character for link-edit statements 171 RESTORE processing 355
COPY unloading entries for 404
control statement Cross-Zone Requisite SYSMOD report 469
ACCEPT processing 45 cross-zone requisite
APPLY processing 98 SYSMODs
JCLIN command operand 154 ACCEPT processing 31
JCLIN processing 170, 174 APPLY processing 80
LMOD entry 378 cross-zone requisites
OPTIONS entry 383 checking for
copy utility REPORT CROSSZONE command 295
ACCEPT processing 40, 45 cross-zone subentries
APPLY processing 91, 100 ZONECOPY processing 412, 415
GENERATE processing 139 ZONEDELETE processing 418, 419
JCLIN processing 174 ZONEEDIT processing 421
OPTIONS entry 383 ZONEEXPORT processing 432, 433
restriction on copy input 174 ZONEIMPORT processing 436, 438
specifying on JCLIN 154 ZONEMERGE processing 443
copying a CSI 457 ZONERENAME processing 458
copying a zone Cross-Zone Summary report 472
from a sequential data set CROSSZONE
ZONEIMPORT command 435 REPORT CROSSZONE command operand 295
into a different CSI data set CSECT
ZONECOPY command 411 ACCEPT processing 46
into a sequential data set APPLY processing 103
ZONEEXPORT command 431 deleting 103
within the same CSI data set MOD entry 381
ZONEMERGE command 441 CSI
copying data set entries 397 copying 457
COPYJOB job merging
produced by GENERATE 137 AMS REPRO command 441
COPYMOD control statement ZONEMERGE command 441
ACCEPT processing 45 sharing 549
APPLY processing 100 CYLINDERS
corequisite SYSMODs DDDEF entry 370
ACCEPT processing 31
APPLY processing 80
cover letters
D
listing 216 DALIAS
printing 216 ACCEPT processing 22
creating installation job streams (GENERATE command) 127 APPLY processing 70
cross-product load modules MOD entry 381
example 200 RECEIVE processing 266
cross-zone load modules data element entry
Index 567
DISTLIB (continued) dynamic allocation
ACCEPT processing 21 effect of SET command 360, 361
APPLY processing 68 SMPTLIB 265
data element entry 370 DZONE
hierarchical file system element entry 376 REPORT CROSSZONE processing 304
JAR file element entry 377
MAC entry 380
MOD entry 381
E
program element entry 384 EC reason ID 9, 55
SRC entry 385 element
DISTMOD LIST command operand 211
ACCEPT processing 21 UNLOAD command operand 399
APPLY processing 68 Element Summary report 476
distribution libraries elements
compressing 40 deleted
installing SYSMODs in 5, 51 APPLY processing 90
distribution zone RESTORE processing 352
sharing 548 deleting
updating with JCLIN data 36 ACCEPT processing 35
DISTSRC APPLY processing 83
ACCEPT processing 21 moving
APPLY processing 68 ACCEPT processing 37
DLIB APPLY processing 86
LIST command operand 211 RESTORE processing 354
UNLOAD command operand 399 ELEMMOV
DLIB entry SYSMOD entry
created by JCLIN 175 distribution zone 386
listing 211 target zone 386
UCLIN for 373 END
unloading 399 EXEC statement parameter for GIMSMP 548
used to determine SYSLIB 175 ENDDATE
DLIBZONE REPORT ERRSYSMODS command operand 307
LIST command operand 211 ENDUCL command
REPORT CROSSZONE command operand 295 syntax 366
ZONEDELETE command operand 417 ENH reason ID 9, 55
DLIBZONE entry Enhanced HOLDDATA
listing 211 used by REPORT ERRSYSMODS command 313
UCLIN for 373 ENQ command
DOC reason ID 9, 55 GRS considerations 548
DOWNLD reason ID 9, 55 used for zone sharing 548
DSNTYPE ENTRY statement
SMPTLIB allocation 245 JCLIN processing 182
DSPREFIX ERREL class value 8, 54
DDDEF entry (global zone only) 370 ERROR
OPTIONS entry 383 LIST command operand 211
RECEIVE processing 265 SYSMOD entry
DSSPACE distribution zone 386
OPTIONS entry 383 target zone 386
RECEIVE processing 265 UNLOAD command operand 400
dummy entry for deleted SYSMODs 48, 104 errors, debugging 121
dummy entry for superseded SYSMODs 48, 104 ERRSYSMODS
dumping data with the DEBUG command REPORT ERRSYSMODS command operand 308
SMP/E storage and control blocks 121 exception SYSMOD management
VSAM RPL control blocks 121 processing
DUMPMSG ACCEPT 32
DEBUG command operand 122 APPLY 80
DUMPOFF RECEIVE 269
DEBUG command operand 122 REJECT 292
DUMPON RESTORE 349
DEBUG command operand 122 Exception SYSMOD report 480
DUMPRPL exception SYSMODs
DEBUG command operand 122 ACCEPT processing 32
dumps 121 APPLY processing 80
DYNACT reason ID 9, 55 checking for
Index 569
FORFMID operand (continued) GENERATE command (continued)
RECEIVE command operand syntax 127
effect on SYSMOD selection 267 usage notes 129
FORZONE zone for SET BOUNDARY 127
REPORT CROSSZONE command operand 296 generating installation job streams (GENERATE command)
REPORT CROSSZONE processing 304 127
FROMCSI operand GIMDDALC
GZONEMERGE command operand 141 GENERATE processing 137
FROMNETWORK GIMDTS
RECEIVE command operand 236 ACCEPT processing
FROMNTS data element 45
RECEIVE command operand 237 hierarchical file system element 45
FROMZONE APPLY processing 98
LINK MODULE command operand 198 GIMIAP 139
FTP server GIMOPCDE
use in RECEIVE processing 271 sample member supplied 154, 173
FTP.DATA file GIMPAF.XML
defining for RECEIVE FROMNETWORK processing 246 use in RECEIVE processing 271
FULLGEN reason ID 10, 55 GIMZPOOL
FUNCTION 386 not used for ZONERENAME processing 457
function SYSMODs required before ZONECOPY processing 412
deleting required before ZONEIMPORT processing 436
ACCEPT processing 34 global zone
APPLY processing 83 merging 141
explicit deletion 34, 83 RECEIVE processing 267
implicit deletion 34, 83 sharing 548, 549
reaccepting 39 unexpected changes for (pending updates) 549
reapplying 89 GLOBALZONE entry
FUNCTIONS LIST command operand 213
ACCEPT command operand 13 listing 213
ACCEPT processing 29 UCLIN for 375
APPLY command operand 59 GROUP
APPLY processing 78 ACCEPT command operand 14
REJECT command operand 281 ACCEPT processing 29
REJECT processing 289, 290 APPLY command 59
FUNCTIONSz APPLY processing 78
LIST command operand 213 RESTORE command operand 345
UNLOAD command operand 401 RESTORE processing 348, 351
FUNCTIONz GROUPEXTEND
SYSMOD entry ACCEPT command operand 14
distribution zone 386 ACCEPT processing 29
target zone 386 APPLY command operand 60
APPLY processing 78
GRS enqueue names used by SMP/E 548
G GZONEMERGE command
GENASM compaction of inline data by 150
MAC entry 380 operands
GENERATE command CONTENT 141
cross-zone load modules DEFINITION 141
134 FORFMID 142
cross-zone modules 134 FROMCSI 141
data set sharing 140 processing 141, 144
data sets required 128 SMPPTS data set for 142
ENQ considerations 140 summary 141
examples 130 syntax 141
operands
FORFMID 127 H
JOBCARD 128
RC 128 hash value
REPLACE 128 use in RECEIVE processing 270
processing 131 held SYSMODs 269
SMPPUNCH output 129 HFS 101
summary 127 HFSCOPY
summary report 486 OPTIONS entry 383
Index 571
implicitly deleting functions JAR entry
ACCEPT processing 34 listing 215
APPLY processing 83 unloading 401
implicitly including modules from another product 186, 197 JAR file element entry
implicitly-included modules UCLIN for 377
including through SYSLIB allocation and CALLLIBS 166 JARPARM
IMPORT 435 JAR file element entry 377
in-stream procedures JARUPD
not recognized in JCLIN 170 SYSMOD entry
INCLUDE statement distribution zone 386
JCLIN processing 183 target zone 386
utility input 183 Java Archive files
INDEX replacing 45, 101
ZONEEXPORT command operand 432 updating 45, 102
INFILE JCL generated by GENERATE command 135
ZONEIMPORT command operand 435 JCLIN
inline data created by BUILDMCS command 107
GZONEMERGE processing 150 inline
RECEIVE processing 270 ACCEPT processing 36
inline JCLIN APPLY processing 85
ACCEPT processing 36 RESTORE processing 352
adding new load modules 68 to add new load modules 68
APPLY processing 85 SYSMOD entry
JCLIN processing 153, 161, 170 distribution zone 386
packaging 160 target zone 386
RESTORE processing 352 JCLIN command
INSERT statement assembler steps 161
JCLIN processing 184 coding conventions
installation job streams, generating with the GENERATE assembler 172
command 127 copy 174
installation-wide exit routines for examples 171, 172
SMP/E link-edit 177
RECEIVE exit 246 other 189
INSTALLDATE summary 170
SYSMOD entry update 189
distribution zone 386 conditional JCLIN comment statements
target zone 386 description of 156
installing SYSMODs 51, 127 Conditional JCLIN Comment Statements
INSTALLTIME example of 158
SYSMOD entry cross-zone relationships 161, 189
distribution zone 386 data set sharing 189
target zone 386 data sets required 155
internal HOLDDATA 508 determining macros 173
INTO ENQ considerations 189
ZONECOPY command operand 411 in-stream procedures not recognized 170
ZONEIMPORT command operand 435 inline JCLIN 160
ZONEMERGE command operand 442 operands
INTOLMOD ASM 154
LINK MODULE command operand 198 CALLLIBS 154
INZONE COPY 154
REPORT SYSMODS command operand 329 JCLINREPORT 154
IOGEN reason ID 10, 55 LKED 154
IOSUP NOJCLINREPORT 154
OPTIONS entry 383 OPCODE 154
IPL reason ID 10, 56 PGM 155
RC 155
UPDATE 155
J processing 169
JAR processing assembly steps
LIST command operand 215 creating ASSEM entry 172
SYSMOD entry creating MAC entry 174
distribution zone 386 creating SRC entry 173
target zone 386 processing copy steps
UNLOAD command operand 401 creating DLIB entry 175
Index 573
LINK MODULE command (continued) LIST command (continued)
summary 197 operands (continued)
syntax 198 MAC 216
updating cross-zone subentries MCS 216
203 MOD 216
updating TIEDTO subentry 203 NOACCEPT 216
updating XZLMOD subentry 203 NOAPPLY 217
zone for SET BOUNDARY 197 NOSUP 218
link-edit autocall 166 OPTIONS 218
link-edit automatic library call function, JCLIN for 166 ORDER 218
link-edit return code PRODUCT 218
specifying highest acceptable PROGRAM 218
within JCLIN 185 PTFS 218
link-edit utility RESTORE 218
ACCEPT processing 43 SOURCEID 218
APPLY processing 95 SRC 219
GENERATE processing 138 SUP 219
JCLIN processing 177 SYSMODS 220
LINK MODULE command processing 203 TARGETZONE 220
OPTIONS entry 383 USERMODS 221
parameters UTILITY 221
ACCEPT processing 43 XREF 221
APPLY processing 95 XZLMODP 222
recognized by SMP/E 187 XZMODP 222
parameters recognized by SMP/E 187 ZONESET 222
specifying on JCLIN 154 processing 226
linking modules from another zone 191, 197 reports 223, 499
LIST summary 205
RECEIVE command operand 239 summary report 499
LIST command syntax 206
data set sharing 226 syntax notes 222
data sets required 223 usage notes 223
ENQ considerations 226 zone for SET BOUNDARY 205
examples 223 listing cover letters 216
modes of processing LKED
mass mode 226 JCLIN command operand 154
select mode 226 JCLIN processing 170, 177
operands OPTIONS entry 383
ALLZONES 209 LKSYSLIB job, built by GENERATE to link-edit load modules
APARS 210 having a SYSLIB concatenation 139
ASSEM 210 LLA
BACKUP 210 effect on APPLY processing 72
BYPASS 210 LMOD
DDDEF 210 ++MOD statement 68
DELETE 210 LIST command operand 215
DLIB 211 UNLOAD command operand 401
DLIBZONE 211 LMOD entry
element 211 created by JCLIN 176, 185
ERROR 211 listing 215
EXSRCID 211 UCLIN for 378
FEATURE 212 unloading 401
FMIDSET 212 updating cross-zone
FORFMID 212 subentries
FUNCTIONS 213 ZONEEDIT command 421
GLOBALZONE 213 LMODS
hfs_element 213 LINK LMODS command operand 191
HOLDDATA 213 load modules
HOLDERROR 214 adding new 68
HOLDFIXCAT 215 attributes
HOLDSYSTEM 215 ACCEPT processing 43
HOLDUSER 215 APPLY processing 95
JAR 215 building
LMOD 215 by APPLY command 89
LOG 215 by LINK MODULE command 202
Index 575
modes of processing (continued) NAME statement (continued)
RECEIVE command (continued) JCLIN processing 185
mass-mode 267 RC comment on 185
select-mode 267 navigation
REJECT command keyboard 553
mass mode 289 NCAL
NOFMID mode 291 effect of CALLLIBS subentry on 95
PURGE mode 290 used in GENERATE jobs for load modules with CALLLIBS
select mode 289 135
RESTORE command NE
group mode 348 LMOD entry 378
select mode 348 MOD entry 381
select mode negative prerequisite SYSMODs
ACCEPT command 29 ACCEPT processing 31
APPLY command 78 APPLY processing 80
REJECT command 277, 289 NEW
select-mode DDDEF entry 370
RECEIVE command 267 NEWDATASET
UNLOAD command ZONERENAME command operand 454
mass mode 406 NOACCEPT
select mode 406 LIST command operand 216
MODIDs 87 UNLOAD command operand 401
modification level 87 NOAPPLY
MODULE LIST command operand 217
LINK MODULE command operand 198 UNLOAD command operand 402
modules NOFMID
deleting REJECT command operand 282
ACCEPT processing 35 REJECT processing 277, 291
APPLY processing 83, 90 NOFMID mode processing
linking from another zone 191, 197 REJECT command 277, 291
reintroducing with MODDEL subentries 84 NOJCLIN
replacing ACCEPT command operand 15
ACCEPT processing 43 ACCEPT processing 36
APPLY processing 95 APPLY command operand 61
updating APPLY processing 86
ACCEPT processing 44 NOJCLINREPORT
APPLY processing 97 ACCEPT command operand 15
MOVE APPLY command operand 61
SYSMOD entry JCLIN command operand 154
distribution zone 386 NOPUNCH
target zone 386 REPORT CROSSZONE command operand 296
MOVE/RENAME/DELETE report 502 REPORT CROSSZONE processing 304
moving elements REPORT ERRSYSMODS command operand 308
ACCEPT processing 37 REPORT ERRSYSMODS processing 312
APPLY processing 86 REPORT MISSINGFIX command operand 316
RESTORE processing 354 REPORT MISSINGFIX processing 320
moving load modules REPORT SOURCEID command operand 323
RESTORE processing 354 REPORT SOURCEID processing 327
MSGMODID REPORT SYSMODS command operand 330
DEBUG command operand 122 REPORT SYSMODS processing 337
MSGSKEL reason ID 10, 56 NOPURGE
MTSMAC entry OPTIONS entry
ACCEPT processing 47 ACCEPT processing 48
RESTORE processing 353 ZONEEXPORT command operand 432
UCLIN for 382 NOREJECT
MULTSYS reason ID 10, 56 OPTIONS entry 383
RESTORE processing 349, 356
NOREPLACE
N ZONEMERGE command operand 442
name ZONEMERGE processing 446
ZONEMERGE command operand 442 NOSUP
NAME LIST command operand 218
UTILITY entry 390 UNLOAD command operand 402
NAME statement NPRE
Index 577
program elements (continued) RECDATE (continued)
deleting SYSMOD entry
ACCEPT processing 35 distribution zone 386
APPLY processing 83, 90 target zone 386
replacing RECEIVE command
ACCEPT processing 44 ++ASSIGN processing 269
APPLY processing 98 ++FEATURE processing 268, 269
PROGRAM entry ++HOLD processing 269
listing 218 ++PRODUCT processing 268, 269
PROTECT ++RELEASE processing 269
DDDEF entry 370 compaction of inline data by 270
PTF data set sharing 274
ACCEPT command operand 15 data sets required 242
ACCEPT processing 29 ENQ considerations 274
APPLY command operand 61 installation-wide exit routine 246
APPLY processing 78 modes of processing
LIST command operand 218 FORFMID operand 267
REJECT command operand 282 mass-mode 267
REJECT processing 289, 290 select-mode 267
SYSMOD entry operands
distribution zone 386 BYPASS 235
target zone 386 DELETEPKG 235
UNLOAD command operand 402 EXCLUDE 236
PURGE FORFMID 236
REJECT command operand 282 FROMNETWORK 236
REJECT processing 290 FROMNTS 237
ZONEEXPORT command operand 432 HOLDDATA 239
ZONEEXPORT processing 433 LIST 239
PURGE mode processing ORDER 237
REJECT command 277, 290 RC 239
RFPREFIX 240
SELECT 240
R SOURCEID 241
RC SYSMODs 241
ACCEPT command operand 15 ZONEGROUPs 241
APPLY command operand 61 output
CLEANUP command operand 116 listings 261
explanation 545 reports 261
GENERATE command operand 128 processing 264
JCLIN command operand 155 receiving SYSMODs created by BUILDMCS command
LINK LMODS command operand 192 245
LINK MODULE command operand 198 summary 233
NAME statement comment 185 summary report 509
RECEIVE command operand 239 syntax 234
REJECT command operand 283 syntax notes 241
RESTORE command operand 345 SYSMOD selection
SMP/E default threshold 545 effect of GLOBALZONE FMID list 267
UCLIN command operand 366 effect of GLOBALZONE SREL list 267
UTILITY entry 390 SELECT operand 267
ZONECOPY command operand 412 zone for SET BOUNDARY 233
ZONEDELETE command operand 417 RECEIVE Exception SYSMOD Data report 507
ZONEEDIT command operand 422 RECEIVE FROMNETWORK
ZONEEXPORT command operand 432 processing 270, 271
ZONEIMPORT command operand 436 restarting 245
ZONEMERGE command operand 442 RECEIVE FROMNTS
ZONERENAME command operand 454 processing 271
reaccepting SYSMODs 24, 39 RECEIVE ORDER
reading in SYSMODs from the distribution medium 233 processing 272
reapplying SYSMODs 72, 79, 89 RECTIME
reason IDs SYSMOD entry
ACCEPT processing 32 distribution zone 386
APPLY processing 80 target zone 386
RECEIVE processing 269 REDO
RECDATE ACCEPT command operand 16
Index 579
REPORT CROSSZONE command (continued) REPORT SOURCEID command (continued)
syntax 295 zone for SET BOUNDARY 323
usage notes 297 REPORT SYSMODS command
zone for SET BOUNDARY 295 data set sharing 339
REPORT ERRSYSMODS command data sets required 330
data set sharing 313 ENQ considerations 339
data sets required 309 example 332
Enhanced HOLDDATA 313 operands
ENQ considerations 313 COMPAREDTO 329
example 310 INZONE 329
Exception SYSMOD report 480 NOPUNCH 330
operands SYSMODS 330
BEGINDATE 307 output
ENDDATE 307 reports 330
ERRSYSMODS 308 SMPPUNCH 330
FORFMID 308 processing 337
NOPUNCH 308 reports 525
ZONES 308 summary 329
output syntax 329
reports 309 SYSMOD Comparison report 525
SMPPUNCH 309 zone for SET BOUNDARY 329
processing 312 reports
reports 480 BUILDMCS Entry Summary report 462
summary 307 BUILDMCS Function Summary report 464
syntax 307 Bypassed HOLD Reason report 465
usage notes 309 Causer SYSMOD Summary report 467
zone for SET BOUNDARY 307 CLEANUP Summary report 468
REPORT MISSINGFIX command Cross-Zone Requisite SYSMOD report 469
data set sharing 320 Cross-Zone Summary report 472
data sets required 316 Deleted SYSMOD report 475
ENQ considerations 320 description 461
example 318 Element Summary report 476
operands Exception SYSMOD report 480
FIXCAT 315 File Allocation report 483
FORFMID 316 GENERATE Summary report 486
MISSINGFIX 315 JCLIN Cross-Reference report 493
NOPUNCH 316 JCLIN Summary report 494
ZONES 316 LINK LMODS Summary report 497
output LIST Summary report 499
reports 317 Missing FIXCAT SYSMOD report 500
SMPPUNCH 317 MOVE/RENAME/DELETE report 502
processing 319 RECEIVE Exception SYSMOD Data report 507
summary 315 RECEIVE Summary report 509
syntax 315 REJECT Summary report 516
usage notes 316 SOURCEID report 522
zone for SET BOUNDARY 315 summary 461
REPORT SOURCEID command Summary of Bypassed and Unresolved HOLD Reason
data set sharing 328 Report 524
data sets required 324 SYSMOD Comparison report 525
ENQ considerations 328 SYSMOD Regression report 530
examples 325 SYSMOD Status report 531
operands UNLOAD Summary report 534
NOPUNCH 323 Unresolved HOLD Reason report 535
SOURCEID 323 ZONEEDIT Summary report 540
SYSMODIDS 323 ZONEMERGE report 542
ZONES 323 REPRO
output merging CSIs 441
reports 324 REQ
SMPPUNCH 324 ACCEPT processing 31
processing 327 APPLY processing 80
reports 522 BYPASS
SOURCEID report 522 ACCEPT command operand 10
summary 323 APPLY command operand 56
syntax 323 SYSMOD entry
Index 581
REWORK SERVER data set
RECEIVE processing 267 contents of 246
SYSMOD entry defining for RECEIVE FROMNETWORK processing 246
distribution zone 386 use in RECEIVE processing 270
target zone 386 SERVER tag 246
RFPREFIX service level of SMP/E 461
RECEIVE command operand 240 SET command
RMID common errors 362
ACCEPT processing 37 data set sharing 362
APPLY processing 87, 102 data sets required 359
data element entry 370 effect on dynamic allocation 360, 361
hierarchical file system element entry 376 ENQ considerations 362
JAR file element entry 377 examples 360
MAC entry 380 operands
MOD entry 381 BOUNDARY 359
program element entry 384 OPTIONS 359
SRC entry 385 processing 362
updating at ACCEPT 46 summary 359
RMIDASM syntax 359
MOD entry 381 SETSSI statement
RMODE=24 JCLIN processing 185
LMOD entry 378 SHA-1 hash value
MOD entry 381 use in RECEIVE processing 270
RMODE=ANY shell script
LMOD entry 378 APPLY processing 101
MOD entry 381 list command for
RPL control blocks, dumping 121 example 224
SHELLSCR operand
example 224
S shortcut keys 553
SAMEDATASET SHR
ZONERENAME command operand 455 DDDEF entry 370
SAVEMTS SHSCRIPT
OPTIONS entry 383 hierarchical file system element entry 376
SAVESTS JAR file element entry 377
OPTIONS entry 383 SMP/E comment statements 156
SCDS 47 SMP/E control blocks, dumping 121
SCTR SMP/E messages, tracing 121
LMOD entry 378 SMP/E problems, debugging 121
MOD entry 381 SMP/E reports 461
SELECT SMP/E return codes
ACCEPT command operand 16 resetting 341
ACCEPT processing 29 SMP/E service level 461
APPLY command operand 62 SMP/E storage, dumping 121
APPLY processing 78 SMPCSI
RECEIVE command operand 240 copying 457
RECEIVE processing 242 editing 421
REJECT command operand 283 listing 205
REJECT processing 289 unloading 398
RESTORE command operand 346 updating with UCLIN 365
RESTORE processing 351 SMPDEBUG
select-mode processing DEBUG processing 125
ACCEPT command 29 related to DUMPON operand for DEBUG 122
APPLY command 78 SMPE-ELSE comment statement 156
LIST command 226 SMPE-END comment statement 156
RECEIVE command 267 SMPE-IF comment statement 156
REJECT command 277, 289 SMPHOLD
RESTORE command 348 RECEIVE processing 268, 269
UNLOAD command 406 SMPJCLIN
sending to IBM used for JCLIN input 153
reader comments xxvii SMPLOG
SERVER listing 215, 230
FROMNETWORK option user-written updates for
RECEIVE command 236 229
Index 583
SRC entry (continued) SYMPATH (continued)
unloading 404 hierarchical file system element entry 376
SRCUPD JAR file element entry 377
SYSMOD entry on ALIAS statement 181
distribution zone 386 syntax of SMP/E commands
target zone 386 how to read 1
SREL rules for coding
DLIBZONE entry 373 commands 2
GLOBALZONE entry 375 SYSALLDA
RECEIVE processing 267 restriction for SMPTLIB data sets 244
TARGETZONE entry 390 SYSDEFSD DD statement
status report for SYSMODs 531 JCLIN processing 186
STD SYSGEN 127
LMOD entry 378 SYSLIB
MOD entry 381 allocation for link-edits 96
storage problems 57, 62 copied from DLIB entry 103
STORENX data element entry 370
ACCEPT processing 43 determining at APPLY 67
APPLY processing 95 DLIB entry 373
STSSRC entry hierarchical file system element entry 376
ACCEPT processing 47 JAR file element entry 377
RESTORE processing 354 LMOD entry 378
UCLIN for 385 program element entry 384
stub load modules SRC entry 385
APPLY processing 83, 86 SYSLIB DD statement
JCLIN processing 161 JCLIN processing 186
Summary of Bypassed and Unresolved HOLD Reason Report link-edit steps 186
524 PATH operand for UNIX pathname 186
summary of changes resolving external references 166
z/OS SMP/E Commands SYSLMOD DD statement
xxix JCLIN processing 187
SUP link-edit steps 187
LIST command operand 219 PATH operand for UNIX pathname 187
UNLOAD command operand 404 SYSMOD
SUPBY LIST command operand 220
SYSMOD entry RECEIVE command operand 241
distribution zone 386 RECEIVE processing 242
target zone 386 UNLOAD command operand 404
superseded SYSMODs SYSMOD Comparison report 525
ACCEPT processing 32, 47 SYSMOD entry
APPLY processing 80, 103 distribution zone
dummy entry for 48, 104 ACCEPT processing 47
superzap utility global zone
ACCEPT processing 44 ACCEPT processing 48
APPLY processing 97 APPLY processing 104
OPTIONS entry 383 listing 220
SUPING target zone
SYSMOD entry APPLY processing 103
distribution zone 386 UCLIN for
target zone 386 distribution zone 386
SUPPHOLD global zone 389
OPTIONS entry 383 target zone 386
symbolic link unloading 404
deleting 181 SYSMOD Regression report 530
on ALIAS statement 181 SYSMOD selection
replacing 181 for RECEIVE command 267
SYMLINK SYSMOD Status report 531
deleting 181 SYSMODIDS
hierarchical file system element entry 376 REPORT SOURCEID command operand 323
JAR file element entry 377 SYSMODS 330
on ALIAS statement 181 SYSMODs selected with an FMIDSET
replacing 181 excluding
SYMP 482 ACCEPT command 28
SYMPATH APPLY command 76
Index 585
UCL syntax (continued) UNIX file system (continued)
MOD entry (continued) load modules residing in
distribution zone 381 JCLIN for 168
target zone 381 LIBRARYDD comment statement 186, 187
MTSMAC entry 382 SYSLIB DD statement in link-edit steps 186
OPTIONS entry 383 SYSLMOD DD statement in link-edit steps 187
ORDER entry 384 UNIX shell script
PRODUCT entry 384 list command for
program element entry example 224
distribution zone 384 UNLOAD command
target zone 384 data set sharing 406
SRC entry data sets required 405
distribution zone 385 ENQ considerations 406
target zone 385 examples 406
STSSRC entry 385 modes of processing
SYSMOD entry mass mode 406
distribution zone 386 select mode 406
global zone 389 operands
target zone 386 EXSRCID 400
TARGETZONE entry 390 XZLMODP 404
UTILITY entry 390 XZMODP 405
ZONESET entry 390 processing 406
UCLDATE reports 406, 534
SYSMOD entry SMPPUNCH output 406
distribution zone 386 summary 397
target zone 386 summary report 534
UCLIN class value 8, 54 syntax 398
UCLIN command syntax notes 405
alternative to (ZONEEDIT) 421 zone for SET BOUNDARY 397
data set sharing 394 Unresolved HOLD Reason report 535
data sets required 391 UPDATE
ENQ considerations 394 JCLIN command operand 155
examples 391 JCLIN processing 170, 189
operands OPTIONS entry 383
RC 366 update utility
output ACCEPT processing 40
reports 391 APPLY processing 91
processing 393 JCLIN processing 189
summary 365 OPTIONS entry 383
syntax 366 specifying on JCLIN 155
UCL statements 367 updating data set entries
usage notes 391 UCL statements 367
zone for SET BOUNDARY 365 updating SMPLOG 229
UCLTIME updating the target zone with JCLIN data 153
SYSMOD entry UPGLEVEL subentry
distribution zone 386 APPLY processing 96
target zone 386 UPGRADE command
UMID data set sharing 410
ACCEPT processing 37, 46 data sets used 409
APPLY processing 87 ENQ considerations 410
JAR file element entry 377 example 409
MAC entry 380 output 409
MOD entry 381 processing 410
SRC entry 385 summary 409
updating at APPLY 103 syntax 409
unconditional requisites zone for SET BOUNDARY 409
ACCEPT processing 31 user interface
APPLY processing 80 ISPF 553
unexpected changes (pending updates) 549 TSO/E 553
UNIT user-written changes for SMPLOG 229
DDDEF entry 370 USERMOD
UNIX file ACCEPT command operand 18
permissions 101 ACCEPT processing 29
UNIX file system APPLY command operand 64
Index 587
ZONECOPY command (continued) ZONEEXPORT command (continued)
operands operands (continued)
INTO 411 RC 432
OPTIONS 412 processing 433
RC 412 summary 431
RELATED 412 syntax 431
processing 414 usage notes 432
reports 413 zone for SET BOUNDARY 431
summary 411 ZONEGROUP
syntax 411 RECEIVE command operand 241
usage notes 412 ZONEIMPORT command
zone for SET BOUNDARY 411 cross-zone subentries 436,
ZONEDELETE command 438
cross-zone subentries 418, data set sharing 439
419 data sets required 436
data set sharing 419 ENQ considerations 439
data sets required 418 examples 437
ENQ considerations 419 moving zones with 437
examples 419 operands
operands INFILE 435
DLIBZONE 417 INTO 435
RC 417 OPTIONS 436
TARGETZONE 418 RC 436
output 419 RELATED 436
processing 419 processing 438
summary 417 summary 435
syntax 417 syntax 435
usage notes 418 usage notes 436
zone for SET BOUNDARY 417 zone for SET BOUNDARY 435
ZONEDESCRIPTION ZONEINDEX
DLIBZONE entry 373 deleting with the ZONEEXPORT command 432
GLOBALZONE entry 375 GLOBALZONE entry 375
TARGETZONE entry 390 ZONEINDEX subentry
ZONEEDIT command required before ZONECOPY processing 412
alternative to UCLIN 421 ZONEMERGE command
data set sharing 429 cross-zone subentries 443
data sets required 426 data set sharing 450
ENQ considerations 429 data sets required 443
examples 426 ENQ considerations 450
operands examples 444
CHANGE 422 operands
entry type 422 BYPASS (IFREQ) 442
from value 423 CHECK 442
IF THEN 424 CONTENT 442
RC 422 DEFINITION 442
subentry 422 INTO 442
to value 423 name 442
processing 428 NOREPLACE 442
summary 421 RC 442
summary report 540 REPLACE 443
syntax 421 VERIFY 443
zone for SET BOUNDARY 421 processing 446, 448, 449
ZONEEXPORT command summary 441
cross-zone subentries 432, summary report 542
433 syntax 442
data set sharing 433 usage notes 443
data sets required 432 zone for SET BOUNDARY 441
ENQ considerations 433 ZONERENAME command
examples 433 cross-zone subentries 458
operands data set sharing 459
INDEX 432 data sets required 455
NOPURGE 432 ENQ considerations 459
OUTFILE 431 examples 456
PURGE 432 operands
Index 589
590 z/OS: z/OS SMP/E Commands
IBM®
SA23-2275-50