longpelaexpertise.com.au/ezine/GuideSymbols1.php?ezinemode=printfriend

LongEx Mainframe Quarterly - September 2026

technical: The Ultimate Guide to z/OS System Symbols Part 1 – What Are They?

Wouldn't it be nice if you could use a system-level variable anywhere: in JCL, PARMLIB, z/OS commands, UNIX shells.

It would be even better if you could trust this variable: it would be set by the z/OS systems administrator or z/OS itself: no one else. Well, there's good news, and it's called z/OS System Symbols.

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:

  • z/OS static: variables set automatically by z/OS that don't change.
  • z/OS dynamic: variables set automatically by z/OS that do change.
  • User static: variable set by the systems programmer using the IEASYMxx PARMLIB member.

Let's look at some examples. z/OS automatically sets the following symbols:

  • &SYSNAME: the 1–8-character z/OS system name: set in IEASYSxx or IEASYMxx PARMLIB member.
  • &SYSOSLVL: the z/OS version.
  • &SYSPLEX: the sysplex name.
  • &SYSCLONE: a two-character 'nickname' for the current z/OS system.
  • &SYSR1: SYSRES volume serial number.
  • &SYSALVL: CEC architectural level. 1=OS/390 (31 bit), 2=IBM Z (64 bit).

z/OS also sets the dynamic symbols including:

  • &YYMMDD: the current date.
  • &JOBNAME: the name of the current job executing.
  • &HHMMSS: the current time.

You can see a full list of such symbols in the z/OS Initialization and Tuning Reference.

Symbols vs Environment Variables

It'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 Symbols

The 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 IPCS

Static 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 Symbols

z/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 Symbols

z/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.


David Stephens