What are system symbols?

System symbols are elements that allow systems to share parmlib definitions while retaining unique values in those definitions. They act like variables in a program; they can take on different values, based on the input to the program. When you specify a system symbol in a shared parmlib definition, the system symbol acts as a “place holder”. Each system that shares the definition replaces the system symbol with a unique value during initialization.

Restriction: A symbol definition will fail if it begins with a number. If any symbol in a symbol file is in error, the entire file of symbols is invalidated.

Before you begin to share parmlib definitions, you must understand the types of system symbols and the elements that comprise them.

The following terms describe the elements of system symbols:
Symbol Name
The name that is assigned to a symbol. It begins with an ampersand (&) and optionally ends with a period (.). System symbols should usually be specified in uppercase. There are places, for example, operator commands, where system symbols can be specified in lowercase.
Substitution Text
The character string that the system substitutes for a symbol each time it appears. Substitution text can identify characteristics of resources, such as the system on which a resource is located, or the date and time of processing. When you define static system symbols in the IEASYMxx parmlib member (see Step 4. Create an IEASYMxx parmlib member), the substitution text can contain other static system symbols; the resolved substitution text refers to the character string that is produced after all symbols in the substitution text are resolved.
The following terms describe the types of symbols:
Dynamic System Symbol
A system symbol whose substitution text can change at any point in an IPL. Dynamic system symbols represent values that can change often, such as dates and times. A set of dynamic system symbols is defined to the system; your installation cannot provide additional dynamic system symbols.
Static System Symbol
A symbol whose substitution text is defined at system initialization and remains fixed for the life of an IPL unless the SETLOAD xx,IEASYM command is issued. The SETLOAD xx,IEASYM command can be used to make changes to system symbols in the local system symbol table without initiating an IPL. See z/OS MVS System Commands. (One exception, &SYSPLEX, has a substitution text that can change at an additional point in an IPL; see Step 5. Code support for system symbols in LOADxx for details.) Static system symbols are used to represent fixed values such as system names and sysplex names.
Static system symbols have two types:
  • System-defined static system symbols already have their names that are defined to the system. Your installation defines substitution texts or accepts system default texts for the static system symbols, which are:
    • &SYSCLONE
    • &SYSNAME
    • &SYSOSLVL (Your installation cannot define substitution text for &SYSOSLVL.)
    • &SYSPLEX
    • &SYSR1 (Your installation cannot define substitution text for &SYSR1.)
    • &SYSALVL (Your installation cannot define substitution text for &SYSALVL.)
  • Installation-defined static system symbols are defined by your installation. The system programmer specifies their names and substitution texts in the SYS1.PARMLIB data set.
In addition to the static symbols that were previously listed, the system allows you to define and use the following types of symbols:
  • JCL symbol: A symbol that represents variable information in JCL. You can define JCL symbols on EXEC, PROC, and SET statements in JCL, and use them only in:
    • JCL statements in the job stream
    • Statements in cataloged or in-stream procedures
    • DD statements that are added to a procedure.

    For more information about using JCL symbols, see z/OS MVS JCL Reference.

  • IPCS symbol: A symbol that IPCS uses to represent data areas in dumps that are processed with IPCS subcommands.

    For more information about using IPCS symbols, see z/OS MVS IPCS User's Guide.

The following sections describe the static and dynamic system symbols that you can define and use in parmlib.

Note: Although IBM® suggests the use of ending periods on system symbols, the text in the documentation does not specify them, except in examples, out of consideration for readability.