Accommodate system symbol names that contain underscores

Description

z/OS V2R2 enhances the use of system symbols in the following ways:
  • Longer system symbol names (up to 16 characters) and longer symbol substitution values
  • Underscores (_) can be specified in any character position other than the first one.

System symbols are typically used in started procedures and jobs, parmlib members, and other objects. Information about using system symbols is provided in z/OS MVS Initialization and Tuning Reference.

For objects that undergo system symbol substitution, be aware that the use of underscores in symbol names can result in an incompatibility if a symbol reference is followed immediately by an underscore (that is, without a symbol-delimiting period). For example, in previous releases, specifying &SYM_A in a file would match the symbol &SYM and add "_A". In z/OS V2R2, this specification can match the symbol &SYM or the symbol &SYM_A. Here, a match is attempted first for &SYM_A (with the underscore). If no match is found, an attempt is made to match &SYM.

Note: As of z/OS z/OS 2.1, underscores can be specified in JES symbol names. Thus, this migration action does not apply to JES symbol names.

Table 1 provides more details about the migration action. Use this information to plan your changes to the system.

Table 1. Information about this migration action
Element or feature: BCP.
When change was introduced: z/OS V2R2.
Applies to migration from: z/OS V2R1 and z/OS V1R13.
Timing: Before the first IPL of z/OS V2R2.
Is the migration action required? Yes, if you have situations in which a symbol name might be followed immediately by an underscore.
Target system hardware requirements: None.
Target system software requirements: None.
Other system (coexistence or fallback) requirements: In a sysplex of mixed releases of z/OS systems, if you use symbol names with underscores, you must ensure that earlier systems can handle the symbol names. Install the toleration PTF for APAR OA46739 on the earlier systems. The PTFs for this APAR are identified with the SMP/E FIXCAT IBM.Coexistence.z/OS.V2R2.
Restrictions: None.
System impacts: None.
Related IBM Health Checker for z/OS check: None.

Steps to take

In z/OS V2R2, IBM provides a REXX exec, ASASYMUN, to help you locate data that might encounter unexpected results if symbol names have underscores. You can run the exec on z/OS V2R2 and older systems.

ASASYMUN scans a PDS or PDSE for situations where a symbol name that contains an underscore might cause different results than expected. For example, it checks for a symbol (an ampersand followed by other characters) followed immediately by an underscore with no delimiting period. Change these lines to add a period before the underscore to delimit the symbol.

ASASYMUN is supplied by IBM in the SBLSCLI0 data set. To use ASASYMUN, you must invoke it from an ISPF environment.

Follow these steps:
  1. From the ISPF command line, run the exec as follows:
    TSO EXEC execdsn(ASASYMUN) 'scandsn'
    Where:
    execdsn
    is the cataloged data set containing the ASASYMUN exec. Use 'execdsn(ASASYMUN)' if the data set name is fully qualified. You can use alternative forms of execdsn(ASASYMUN) if the data set is in the SYSEXEC or SYSPROC concatenation of the user. For example, you might be able to specify just (ASASYMUN).
    scandsn
    is the PDS or PDSE you want to scan. Specify a data set contain statements subject to symbol substitution, like JCL or parmlib statements. If the data set name is fully qualified, double the quotations around the name in addition to the single quotation marks that surround the parameter. For example, specify '''fully.qual.dsn''' for a fully qualified data set.
  2. For any references you find that were intended to be resolved by a symbol, add a period before the underscore to delimit the symbol. For example:
    &SYM._A

Reference information

For information about specifying system symbols, see z/OS MVS Initialization and Tuning Reference.