LongEx Mainframe Quarterly - September 2026
What Are System Symbols?z/OS system symbols are variables that are z/OS system wide and can contain any text. The symbol name can be anything up to 16 characters in length and are identified by an ampersand (&) character before the symbol name. The value for each symbol can be any string up to 44 characters in length. There are three basic types of system symbol:
Let's look at some examples. z/OS automatically sets the following symbols:
z/OS also sets the dynamic symbols including:
You can see a full list of such symbols in the z/OS Initialization and Tuning Reference. Symbols vs Environment VariablesIt's easy to think System Symbols are the same as Environment variables, but they're not. System symbols are system-wide: only dynamic symbols could be different for different address spaces. Environment variables are a UNIX feature for variables at the address space level: each job, started task or UNIX shell could have a different value for the same variable name. Environment variables can be set by anyone: System symbols can only be set by z/OS systems administrators or z/OS itself. System symbols and environment variables are used in different ways and using different APIs. We cover this in more detail in our partner article. Viewing SymbolsThe z/OS console command D SYMBOLS shows all system symbols defined: static and dynamic: D SYMBOLS IEA007I STATIC SYSTEM SYMBOL VALUES 412 &SYSALVL. = "2" &SYSCLONE. = "1A" &SYSNAME. = "MVSP" &SYSOSLVL. = "Z1020500" &SYSPLEX. = "PRDPLX" &SYSR1. = "RESV01" &HRDWNAME. = "+++++" &LPARNAME. = "+++++" &OSLEVEL. = "020500" &SMFID. = "MVSP" The SDSF SYM command also shows these symbols: SDSF SYSTEM SYMBOLS MVSP MVSP LINE 1-25 (48)
COMMAND INPUT ===> SCROLL ===> CSR
NP SYMBOL Value Type S
&DAY. 19 DYNAMIC M
&HHMMSS. 032210 DYNAMIC M
&HR. 03 DYNAMIC M
&HRDWNAME. +++++ STATIC M
&JDAY. 200 DYNAMIC M
&JOBNAME. DSTEPHE DYNAMIC M
&LDAY. 18 DYNAMIC M
&LHHMMSS. 232211 DYNAMIC M
&LHR. 23 DYNAMIC M
&LJDAY. 199 DYNAMIC M
&LMIN. 22 DYNAMIC M
&LMON. 07 DYNAMIC M
&LPARNAME. +++++ STATIC M
&MIN. 22 DYNAMIC M
&MON. 07 DYNAMIC M
&OSLEVEL. 020500 STATIC M
Most z/OS monitors including Broadcom SYSVIEW and BMC AMI Ops provide features to view symbols, as do some free tools like IBM TASID: -------- TASID: Static System Symbols LINE 00000000 COL 001 079
COMMAND ===> SCROLL ===> CSR
----------------------------+----------------------+------------------------
APF - APF Authorized libs | PAR - LPAR info | SPA - DASD space
LIN - Linklst PRM - Parmlib | STG - Storage info | SVC - SVC list
LPA - LPA lib SYM - Symbols | NUC - Nucleus map | UCB - Active devices
LPD - Link Pack Directory | SUB - Subsystems | UNI - Available units
----------------------------+----------------------+------------------------
Static System Symbols
Symbol Value
******************************** Top of Data **********************************
&HRDWNAME +++++
&LPARNAME +++++
&OSLEVEL 020500
&SMFID MVSP
&SYSALVL 2
&SYSCLONE 1A
&SYSNAME MVSP
&SYSOSLVL Z1020500
Finally, z/OSMF provides a RESTful API to view system symbols in JSON format. Symbols and IPCSStatic system symbols are also stored in SVC and standalone dumps. The IPCS IEASYM command shows all symbols defined to IPCS, including system symbols: Symbol... SYSALVL
Subtext.. 2
System-defined Symbol
Symbol... SYSCLONE
Subtext.. P1
System-defined Symbol
Symbol... SYSNAME
Subtext.. MVSP
System-defined Symbol
Symbol... SYSPLEX
Subtext.. PRDPLX
System-defined Symbol
Changing Symbolsz/OS systems programmers can set any symbol they want. For example, a site may set a symbol to show if the z/OS system is production or non-production or specify the geographic location of a z/OS system. User static symbols can be set and changed anytime. This can be done by the system administrator by changing the IEASYMxx PARMLIB member and using the z/OS console command SETLOAD. An easier way for authorised users is to use the IEASYMU01 batch program. Here's JCL to set a new symbol %DLYBATCH: //STEP1 EXEC PGM=IEASYMU2,PARM='DLYBATCH=Y' A site could set this symbol to 'Y' at the beginning of the batch cycle, and 'N' at the end. Other batch jobs could have conditional execution depending on the value. One thing to note about IEASYMU2: it will only change the symbols specified in the PARM. If other symbols are based on this symbol, they won't be changed. The Value of Symbolsz/OS system symbols are a system-wide variable that is only set by the z/OS systems administrator or z/OS itself. Originally, symbols were used by z/OS systems administrators to share PARMLIB and master catalogs amongst multiple z/OS systems, making systems administration easier in a sysplex. Today, they can be used for a whole lot more. We take a closer look at how to use system symbols in our partner article. |