Use the SETPROG LPA command anytime after IPL to specify:
- Modules to add to the LPA
- Modules to delete from the LPA
- The minimum amount of CSA storage that must remain available after
an ADD operation.
You can also initiate a change to the LPA from a program via the
CSVDYLPA macro, or by an operator using the SET PROG command. You
can use the PROG system parameter to specify CSA threshold values,
but not to request ADD or DELETE operations.
You can exercise certain controls over the modules to be loaded:
- You specify a data set from which the system is to load the modules.
You must be authorized to make the request.
- You can request that the modules be placed into fixed common storage.
- You can request that only the full pages within a load module
be page-protected. This does leave the likelihood of the beginning
and/or end of a load module not being page protected. By default,
each module is individually page-protected. This is, however, wasteful
of common storage, as each module needs then to occupy a whole number
of 4096-byte pages. In all cases the module will be in key 0 storage.
- You can specify that the module being replaced is
the routine for a specific SVC. The system then updates the SVC table
with the new entry point address.
- You can specify that the system must process aliases
of the specified modules even if the aliases are not explicitly specified.
The system considers LPA modules as coming from an authorized library.
As part of its LPA search, the system will find modules that had been
added dynamically. It will find a module that had been added dynamically
before it finds one of the same name that had been added during IPL.
Use the SETPROG LPA command to replace modules only where the owning
product verifies the replacement. Otherwise, replacement could result
in partial updates. If the owning product has already saved the module
address, the system will not conduct an LPA search and will not find
the updated module. Also, the addresses of all modules that are accessed
via a program call (PC) instruction are stored in the PC table. That
table is not updated by the SETPROG LPA command. Therefore, these
modules cannot be replaced using the SETPROG LPA command.
You must IPL for the updates to take effect.Note: If you specify the SVCNUMDEC keyword,
dynamic LPA can update the SVC table. Specifying SVCNUMDEC can be
used to replace an SVC routine. To add an SVC routine however, the
user of the SETPROG LPA command, or the owner of the SVC, must write
a program that gets control as the CSVDYLPA exit routine, looks for
a given routine name, and then issues the appropriate SVCUPDTE service
call to update the SVC table. For more information about the CSVDYLPA
exit routine, see "Monitoring
Dynamic LPA Processing" in z/OS MVS Programming: Authorized Assembler Services Guide.
It is sometimes necessary to re-IPL the system to replace LPA modules.
For example, many service updates of LPA modules will require a re-IPL.
The complete syntax for the SETPROG LPA command is:
SETPROG LPA,{ADD,MODNAME=(modname...,modname) | MASK=mask}
[,DSNAME=dsname | LNKLST]
[,FIXED] [,PAGEPROTPAGE]
[,SVCNUMDEC=svcnum | ,SVCNUMDEC=(svcnum,routcode)]
[,ADDALIAS | ,NOADDALIAS]
{DELETE,MODNAME=(modname...,modname) }
FORCE=YES [CURRENT | OLDEST]
{CSAMIN=(below,above) }
|
Note: - You may alternatively express the parameters associated
with the keywords MASK, DSNAME, and FORCE in the preceding syntax
diagram using parentheses rather than equals signs, as shown in the
descriptions below.
- This command requires a /* */ around comments.
Refer to System command formats for further information.
- LPA
- Statement type indicating that an action may be performed on the
LPA.
- ADD
- Specifies that one or more modules be added to the LPA.
Default Value: None
Attention: Modules added to the system by dynamic LPA processing are placed
into CSA or ECSA storage. Therefore, it is important to ensure that
the system CSA and ECSA sizes are adequately defined to handle the
additional consumption of CSA storage resulting from the issuance
of the dynamic LPA request. Further protection can be gained through
the use of the CSAMIN parameter described below.
- DELETE
- Specifies that one or more modules be deleted from the LPA. Only
modules added to the LPA after an IPL are eligible for dynamic deletion.
Default Value: None
- CSAMIN
- Specifies the minimum amount of CSA and ECSA that must remain
after a module is added to the LPA. If the requested ADD operation
would reduce the CSA or ECSA below the defined minimum, the system
rejects the operation.
Default Value: (0,0)
- below
- The minimum amount of below-16M CSA storage that must remain after
the ADD operation. The value can be expressed as n, nK, and nM.
- above
- The minimum amount of above-16M CSA storage that must remain after
the ADD operation. The value can be expressed as n, nK, and nM.
- MODNAME(modname,...,modname) | MODNAME=(modname,...,modname)
- modname is the 1-8 character LPA module name
or alias. If a modname has aliases, you must specify the module name
and all of its aliases. If the last character of the modname is an
asterisk (*), it will be treated as X'C0' -- which lets you specify
the name of a load module that ends with that nonprintable character.
You cannot use wildcard characters within modname. You can submit up to 128 module names, and can use MOD or MODULE
as synonyms of MODNAME.
Default Value: None
- MASK(mask) | MASK=mask
- mask is the 1-8 character mask that is to be
applied to all the members of the specified data set. It can contain
wildcard characters "*" and "?" and all members that match will be
processed.
Default Value: None
- DSNAME(dsname) | DSNAME=dsname
- dsname is the 1-44 character data set name
that contains the module(s) or alias(es). When MODNAME is specified,
you can specify DSNAME(LNKLST) if you want the system to search the lnklst instead of a particular data set. The data set must be cataloged. It may be allocated
as a PDS or PDSE program library.
The attribute of the CSA
for each module is assigned as OWNER=SYSTEM. DSN, LIB, and LIBRARY
can be used as synonyms of DSNAME.
Default Value: None
- FIXED
- Indicates that the modules are to be placed in fixed storage.
Default Value: If FIXED is not specified, the modules will
be placed in pageable storage.
- PAGEPROTPAGE
- Indicates whether or not to page protect entire modules. You can
use PPPAGE or PPP as synonyms of PAGEPROTPAGE. Protecting entire modules
requires more storage than just that necessary to contain the modules,
because each module gets allocated a number of whole pages.
PAGEPROTPAGE
causes the system to protect only the full pages within each load
module. This reduces the storage requirement, but makes it possible
for a storage overlay of the beginning or end of the load module to
occur.
Default Value: Page protect entire modules.
- SVCNUMDEC=svcnum | SVCNUMDEC=(svcnum,routcode)
- SVCNUMDEC, or SVCDEC, identifies the entry within the SVC table
to update. The SVC number, svcnum, can be from
0 - 255. For an extended SVC (109, 116, 122, 137), you must specify
the routcode, which is the extended SVC routing
code. The routcode must be within the range that
is supported by the SVC. The routcode for SVC 109
must be from 0 - 255. The routcode for other extended
SVCs depends on the release of z/OS®. Use the SVCNUMDEC function for updating already-defined
SVC Table entries. You should not use it to create new entries as
you might not get all of the attributes that you need.
Default
Value: This is not an SVC routine. The SVC table is not updated.
- ADDALIAS | NOADDALIAS
- ADDALIAS, or ALIAS, indicates to process provided names and aliases
of the provided names. NOADDALIAS, or NOALIAS, indicates to process
only the names provided. You can use NOADDALIAS to override the default
values set by DEFAULTS LPA ADDALIAS.
Default Value: NOADDALIAS,
or the value set by DEFAULTS LPA ADDALIAS | NOADDALIAS.
- FORCE(YES) | FORCE=YES
- Confirms that the delete requestor understands the ramifications
of deleting a module from the LPA, when the system can have no knowledge
of whether any code is currently executing within the specified module.
Default Value: None. Required parameter.
- CURRENT | OLDEST
- CURRENT specifies to delete the current copy. OLDEST specifies
to delete the oldest dynamic copy. You can use CUR as a synonym of
CURRENT and OLD as a synonym of OLDEST.
Default Value:
CURRENT