Changing system symbols
System symbols can be changed, added, or deleted by the SETLOAD xx,IEASYM command (see z/OS MVS System Commands for full details) and can be changed or added by the IEASYMU2 program. Updated symbols cannot be transported to other systems and therefor may not be usable, for example, for job JCL interpretation or automatic restart manager (ARM) processing. Update symbols with care. If you are not careful in how you update symbols, you could end up with different tasks using different values for a symbol you have changed. For example, if you have a long-running REXX exec, it could obtain the value of a symbol when it starts, and then continue to use that value thereafter. So even though you have updated the value of the symbol, that REXX exec will continue to use the old value. One safe use of updated symbols is for symbols that are used only in catalog aliases.
- 4
- Number_Of_Symbols multiplied by 16
- Length of every symbol name (including the leading ampersand and trailing period)
- Length of the value for every symbol
SY1 IEA994I STATIC SYSTEM SYMBOL INFO
SYMBOLS DEFINED: 12
CURRENT TABLE SIZE: 344 BYTES
MAX TABLE SIZE: 57088 BYTES Also, z/OS® V2R1 provides CHECK(IBMSUP,SUP_SYMBOL_TABLE_SIZE) as part of the IBM® Health Checker for z/OS to let you view the current size and to let you set a threshold so that you are alerted if the current size approaches the maximum size too closely.
The IEASYMU2 program is provided in SYS1.LINKLIB in z/OS V2R1 as a replacement for the IEASYMUP program, which had been provided only by OBJ in SYS1.SAMPLIB and with documentation only in the IBM Redbook SG24-5451. As of z/OS V2R1, IEASYMUP must not be used. If the IEASYMUP OBJ provided in SYS1.SAMPLIB is re-linked and then executed, it will indicate that you must use either the new SETLOAD xx,IEASYM command or the IEASYMU2 program. Do not use a pre-z/OS V2R1 IEASYMUP on a z/OS V2R1 system.
IBM recommends that you not use both the IEASYMU2 program and the SETLOAD xx,IEASYM command unless you do so intentionally and carefully. Updates made by the IEASYMU2 program are temporary and will be lost if you subsequently issue the SETLOAD xx,IEASYM command unless you have made corresponding updates in the appropriate IEASYMxx parmlib members. You could use RACF® profiles to enforce that either IEASYMU2 or SETLOAD xx,IEASYM not be used. The SETLOAD xx,IEASYM command is protected by the MVS™.SETLOAD.IEASYM entity in the OPERCMDS class; the IEASYMU2 program is protected by IEASYMUP.symbolname entities in the FACILITY class.
//IEASYMU2 JOB ...
//IEASYMU2 EXEC PGM=IEASYMU2,PARM='...'PARM=′SYMNAME1=VALUE1 SYMNAME2=VALUE2 ...SYMNAMEN=VALUEN′where:- All updates by IEASYMU2 are controlled by RACF facility class entity IEASYMUP.symbolname (without the leading ampersand and trailing period). If the security product does not grant UPDATE access to the requester for every symbol requested by the job, the job does not complete successfully and the symbol table is not updated.
- The name of each
SymnameN
should not contain the leading&
or the trailing.
. - The symname is not thoroughly checked as a valid symbol as in IEASYMxx parmlib processing or SETLOAD xx,IEASYM command processing.
- The first symname=value specification must begin at the first character of the parameter. Each symname=value specification must be separated from the preceding one by exactly one blank.
- There must be no trailing blanks at the end of the parm string.
- The value must not have blanks.
- No translation to uppercase is done by the processing, so be careful to put everything in uppercase as needed.
- You can change the values of symbols (including the length).
- You can add new symbols.
- You cannot have an
&
as part of the symbol name - You can use symbolics in defining the value if you invoke this as a started task or started job. In this case, the symbols are resolved by the system before IEASYMU2 runs.
- When there are symbolics used in defining the value that are not
resolved by the system before IEASYMU2 runs (perhaps because you ran
this as a batch job):
- They must be resolvable by the system symbol table that existed before this running of IEASYMU2.
- The resolved value must be no longer than the initial unresolved value.
- The input parameter area can be modified by the IEASYMU2 processing.
The specified symbol name must be no longer than 16 characters (as it does not
contain the leading &
or the trailing.
).
- You cannot specify the system-defined symbols SYSPLEX, SYSNAME, SYSCLONE, SYSR1, SYSALVL, SYSOSLVL.
- The specified value must be no longer than the specified symbol name plus one unless the sybol name ends with an underscore, in which case the value must be no longer than 44.
- Less syntax checking of operands might be done for the IEASYMU2 program than is done for the SETLOAD xx,IEASYM command.
- If the parameter string exceeds 100 bytes (or even if it does
not), you can use the PARMDD (also known as LONGPARM) support of z/OS V2R1 to specify the parameters
within the DD identified by using PARMDD=ddname on the EXEC PGM= statement
of the JCL. Care must be taken if using PARMDD, due to the PARMDD
rule of stripping off all trailing blanks on a given line. Thus:
- The first symname=value pair must start in column 1 of the first line
- Do not split a symname=value pair across lines (primarily for clarity)
- When continuing onto a second or subsequent line, begin that line with the symname=value pairs starting in column 2
- For example, (the first line of the example is not part of your
input; it is just used for showing the starting column)
1-------------------------------- SYMNAME1=VALUE1 SYMNAME2=VALUE2 SYMNAME3=VALUE3 SYMNAME4=VALUE4 SYMNAME5=VALUE5
- You cannot provide more than 255 input symbols
- The resulting system symbol table must not exceed 57088 bytes.
- Output messages are written by WTO with routing code 11 and MCSFlag indicating hardcopy-only.
- As with the SETLOAD xx,IEASYM command, a change to the system symbol table results in sending ENF signal 73 and also rerunning CHECK(IBMSUP,SUP_SYMBOL_TABLE_SIZE).
- Messages IEASYMU01I, IEASYMU02I, IEASYMU03I, and IEASYMU04I might be issued.
IEASYMU2 return codes
xxxxxxidentifies which input symbol is the source of the error (
000001corresponds to the first input symbol, and so on).
| Return code | Explanation |
|---|---|
| 0 | Success |
| 00000008 | Missing parameter. No parameters were provided. Correct the input. |
| xxxxxx0C | Symbol name contains ampersand The symbol name has an ampersand; this is not allowed. Correct the input. |
| xxxxxx10 | Bad symbol name length
|
| xxxxxx14 | Bad symbol value length A symbol value length is longer than the symbol name length plus one (when the name does not end with an underscore) or 44 (when the name does end with an underscore). Correct the input. |
| 00010018 | Too many symbols More than 255 input symbols were specified. Correct the input. |
| xxxxxx1C | Reserved symbol An attempt to define or change a reserved symbol (one of the symbols defined by z/OS - SYSPLEX, SYSNAME, SYSCLONE, SYSR1, SYSALVL, SYSOSLVL). Correct the input. |
| xxxxxx20 | RACF denied access RACF denied access to this symbol. Correct the input or contact the security administrator to gain access. |
| xxxxxx24 | Symbol value contains ampersand after substitution The symbol value still has an ampersand after all symbol substitution has been done; this is not allowed. Correct the input. |
| xxxxxx28 | Too much symbol data The resulting symbol table would exceed the maximum symbol table size. Correct the input. |
| xxxxxx2C | Bad symbol value length due to a substitution The symbol value specification contained a symbol or symbols and the resolved symbol value was longer than the symbol value specification - this is not allowed. |
| xxxxxx30 | Underscore
conflict The symbol violated one of the following rules:
|
| 00000FFF | Improper release The IEASYMU2 program cannot be used on this release of z/OS. Use IEASYMU2 on z/OS V2R1 or later. |