Z/OS provides system wide symbols. This is very useful because you can have configuration with &SYSNAME. within it – and so you can have one definition – and the value depends which system you are on.
The process of changing these symbols without an IPL may be trivial – or not.
What is my system currently using?
You can use the operator command D SYMBOLS . This gives output like
IEA007I STATIC SYSTEM SYMBOL VALUES 607 &SYSALVL. = "2" &SYSCLONE. = "1A" &SYSNAME. = "S0W1" &SYSOSLVL. = "Z1020500"
Where do these come from?
The system was IPLed with parm A80GK, this points to a member LOADGK in SYS1.IPLPARM, or the PARMLIB concatenation. This member had
IODF 99 SYS1 INITSQA 0000M 0008M SYSCAT A5SYS1113CCATALOG.Z25A.MASTER SYSPARM NZ IEASYM (AU,GK) NUCLST 00 PARMLIB USER.Z25A.PARMLIB A5CFG1 PARMLIB FEU.Z25A.PARMLIB A5CFG1 PARMLIB ADCD.Z25A.PARMLIB A5SYS1 PARMLIB SYS1.PARMLIB A5RES1 NUCLEUS 1 SYSPLEX ADCDPL
At the start of the IPL it displays
SYS1.IPLPARM ON DEVICE 0A82 SELECTED FOR IPL PARAMETERS LOAD ID GK SELECTED NUCLST ID 00 SELECTED IODF DSN = SYS1.IODF99 CONFIGURATION ID = OS390 . IODF DEVICE NUMBER = 0A82 NUCLEUS 1 SELECTED IPL DEVICE: 00A80 VOLUME: A5RES1 MASTER CATALOG SELECTED IS CATALOG.Z25A.MASTER MEMBER IEASYMAU FOUND IN FEU.Z25A.PARMLIB MEMBER IEASYMGK FOUND IN FEU.Z25A.PARMLIB
Which matches the LOADGK member.
This shows the symbols came from definitions IEASYMAU and IEASYMGK.
You can use DISPLAY IPLINFO to get
IEE254I 13.34.36 IPLINFO DISPLAY 594 SYSTEM IPLED AT 13.10.56 ON 09/12/2022 RELEASE z/OS 02.05.00 LICENSE = z/OS USED LOADWS IN SYS1.IPLPARM ON 00A82 ARCHLVL = 2 MTLSHARE = N IEASYM LIST = 00 IEASYS LIST = WS (OP) IODF DEVICE: ORIGINAL(00A82) CURRENT(00A82) IPL DEVICE: ORIGINAL(00A80) CURRENT(00A80) VOLUME(A5RES1)
So you can see for this IPL, LOADWS and member IEASYM00 was used.
Changing symbols dynamically.
You can update members in the PARMLIB concatenation, but activating them gets a bit harder.
The DISPLAY PARMLIB command displays the PARMLIB concatenation for example
PARMLIB DATA SETS SPECIFIED AT IPL ENTRY FLAGS VOLUME DATA SET 1 S A5CFG1 USER.Z25A.PARMLIB 2 S A5CFG1 FEU.Z25A.PARMLIB 3 S A5SYS1 ADCD.Z25A.PARMLIB 4 S A5RES1 SYS1.PARMLIB
I copied a member from ADCD.Z25A.PARMLIB, to USER.Z25A.PARMLIB with the same name, and edited that. The next time the member is used, the copy from USER.Z25A.PARMLIB will be used. This means you keep the original unchanged, and only change the copy. You may want to have a LOADxx without the USER…PARMLIB, in case you make a mistake and the IPL fails!
The SETLOAD command can be used to refresh system symbols via a LOADxx member.
- If you have the LOADxx members in the PARMLIB concatenation, (and so are not using SYS1.IPLPARM) the SETLOAD WS,IEASYM, command will refresh the symbols, defined by LOADWS.
- If you have the LOADxx members in SYS1.IPLPARM, then you need to use the command like
- SETLOAD xx,IEASYM,DSN=SYS1.IPLPARM or
- SETLOAD xx,IEASYM,DSN=SYS1.IPLPARM,VOL=A5SYS1
- giving the name, and optionally the volume of the dataset containing the LOADxx member.
You can use a different LOADxx to that used at IPL – so you can change your symbols after the IPL has finished.
Note: The entire set of symbols are deleted, and the specified symbols added, so you need to reload all of them. For example if you specified IEASYM (xx,yy) at IPL, using SETLOAD with just IEASYMyy, you will lose the symbols from IEASYMxx.