Changing the Default Values for Initializing an Environment - IBM-REXX

TSO/E provides default values in three parameters modules (load modules) for initializing language processor environments in non-TSO/E, TSO/E, and ISPF. In most cases, your installation probably need not change the default values. However, if you want to change one or more parameter values, you can provide your own load module that contains your values.

You can also call the initialization routine, IRXINIT, to initialize a new environment. On the call, you can pass the parameters whose values you want to be different from the previous environment. If you do not specifically pass a parameter, IRXINIT uses the value defined in the previous environment.

This topic describes how to create a load module containing parameter values for initializing an environment.

To change one or more default values that IRXINIT uses to initialize a language processor environment, you can provide a load module containing the values you want. You must first write the code for a parameters module. TSO/E provides three samples in SYS1.SAMPLIB that are assembler code for the default parameters modules. The member names of the samples are:

  • IRXREXX1 (for IRXPARMS — MVS)
  • IRXREXX2 (for IRXTSPRM — TSO/E)
  • IRXREXX3 (for IRXISPRM — ISPF)

When you write the code, be sure to include the correct default values for any parameters you are not changing. For example, suppose you are adding several function packages to the IRXISPRM module for ISPF. In addition to coding the function package table, you must also provide all of the other fields in the parameters module and their default values.

After you create the code, you must assemble the code and then link- edit the object code. The output is a member of a partitioned data set. The member name must be either IRXPARMS, IRXTSPRM, or IRXISPRM depending on the load module you are providing. You must then place the data set with the IRXPARMS, IRXTSPRM, or IRXISPRM member in the search sequence for an MVS LOAD macro. The parameters modules that TSO/E provides are in the LPALIB, so you could place your data set in a logon STEPLIB, a JOBLIB, or in linklist.

If you provide an IRXPARMS load module, your module may contain parameter values that cannot be used in language processor environments that are integrated into TSO/E. When IRXINIT initializes an environment for TSO/E, IRXINIT uses the IRXTSPRM parameters module. However, if a parameter value in IRXTSPRM is null, IRXINIT uses the value from the IRXPARMS module. Therefore, if you provide your own IRXPARMS load module that contains parameters that cannot be used in TSO/E, you must place the data set in either a STEPLIB or JOBLIB that is not searched by the TSO/E session.

The new values you specify in your own load module are not available until the current language processor environment is terminated and a new environment is initialized. For example, if you provide a load module for TSO/E (IRXTSPRM), you must log on TSO/E again.

Providing Your Own Parameters Modules

There are various considerations for providing your own parameters modules. The different considerations depend on whether you want to change a parameter value only for an environment that is initialized for ISPF, for environments that are initialized for both the TSO/E and ISPF sessions, or for environments that are initialized in a non-TSO/E address space. The following topics describe changing the IRXISPRM, IRXTSPRM, and IRXPARMS values.

TSO/E provides the following samples in SYS1.SAMPLIB that you can use to code your own load modules:

  • IRXREXX1 (for IRXPARMS — MVS)
  • IRXREXX2 (for IRXTSPRM — TSO/E)
  • IRXREXX3 (for IRXISPRM — ISPF)

Changing Values for ISPF
If you want to change a default parameter value for language processor environments that are initialized for ISPF, you should provide your own IRXISPRM module. IRXINIT only locates the IRXISPRM load module when IRXINIT is initializing a language processor environment for ISPF. IRXINIT does not use IRXISPRM when initializing an environment for either a TSO/E session or for a non-TSO/E address space.

When you create the code for the load module, you must specify the new values you want for the parameters you are changing and the default values for all of the other fields.

After you assemble and link-edit the code, place the data set with the IRXISPRM member in the search sequence for an MVS LOAD. For example, you can put the data set in a logon STEPLIB or linklist.The new values are not available until IRXINIT initializes a new language processor environment for ISPF. For example, if you are currently using ISPF, you must return to TSO/E READY mode and then invoke ISPF again. When the system calls IRXINIT to initialize an environment for ISPF, IRXINIT locates your load module and initializes the environment using your values.

There are many fields in the parameters module that are intended for use only if an environment is not being integrated into TSO/E. There are also several flag settings that you must not change in the IRXISPRM parameters module for ISPF.

Changing Values for TSO/E
If you want to change a default parameter value for environments that IRXINIT initializes for TSO/E only, you probably have to code both a new IRXTSPRM module (for TSO/E) and a new IRXISPRM module (for ISPF). This is because most of the fields in the default IRXISPRM parameters module are null, which means that IRXINIT uses the value from the previous environment. The previous environment is the one that IRXINIT initializes for the TSO/E session.

For example, in the default IRXTSPRM module (for TSO/E), the USERPKFL, LOCPKFL and SYSPKFL flags are 0. This means the user, local, and system function packages defined for the previous environment are also available to the environment IRXINIT initializes for the TSO/E session. In the default IRXISPRM module (for ISPF), the masks for these three flags are 0, which means IRXINIT uses the flag settings from the previous environment.

IRXINIT initialized the previous environment (TSO/E) using the IRXTSPRM module. Suppose you do not want the function packages from the previous environment available to an environment that IRXINIT initializes for TSO/E. However, when IRXINIT initializes an environment for ISPF, the function packages defined for the TSO/E environment should also be available in ISPF. You must code a new IRXTSPRM module and specify a setting of 1 for the USERPKFL, LOCPKFL, and SYSPKFL flags.You must code a new IRXISPRM module and specify a setting of 1 for the following mask fields:

  • USERPKFL_MASK
  • LOCPKFL_MASK
  • SYSPKFL_MASK

When you code the new load modules, you must include the default values for all of the other parameters.

Changing Values for TSO/E and ISPF
If you want to change a default parameter value for language processor environments that IRXINIT initializes for TSO/E and ISPF, you may be able to simply provide your own IRXTSPRM module for TSO/E and use the default IRXISPRM module for ISPF. Whether you need to create one or two parameters modules depends on the specific parameter value you want to change and whether that field is null in the IRXISPRM default module.If the field is null in IRXISPRM, when IRXINIT initializes a language processor environment for ISPF, IRXINIT uses the value from the previous environment (TSO/E), which is the value in the IRXTSPRM module.

For example, suppose you want to change the setting of the NOLOADDD flag so that the system searches SYSPROC only when you invoke an exec. The value in the default IRXTSPRM (TSO/E) module is 0, which means the system searches SYSEXEC followed by SYSPROC. In the default IRXISPRM (ISPF) module, the mask for the NOLOADDD flag is 0, which means IRXINIT uses the value defined in the previous environment.You can code a IRXTSPRM load module and specify 1 for the NOLOADDD flag. You do not need to create a new IRXISPRM module. When IRXINIT initializes a language processor environment for ISPF, IRXINIT uses the value from the previous environment.

You may need to code two parameters modules for IRXTSPRM and IRXISPRM depending on the parameter you want to change and the default value in IRXISPRM. For example, suppose you want to change the language code. You must code two modules because the value in both default modules is ENU. Code a new IRXTSPRM module and specify the language code you want. Code a new IRXISPRM module and specify either a null or the specific language code. If you specify a null, IRXINIT uses the language code from the previous environment, which is TSO/E.

You also need to code both an IRXTSPRM and IRXISPRM load module if you want different values for TSO/E and ISPF. If you provide your own load modules, you must also include the default values for all of the other fields as provided in the default modules.

After you assemble and link-edit the code, place the data set with the IRXTSPRM member (and IRXISPRM member if you coded both modules) in the search sequence for an MVS LOAD. For example, you can put the data sets in a logon STEPLIB or linklist. The new values are not available until IRXINIT initializes a new language processor environment for TSO/E and for ISPF. You must log on TSO/E again. During logon,IRXINIT uses your IRXTSPRM load module to initialize the environment. Similarly, IRXINIT uses your IRXISPRM module when you invoke ISPF.

There are many fields in the parameters module that you must not change for certain parameters modules.

Changing Values for Non-TSO/E
If you want to change a default parameter value for language processor environments that IRXINIT initializes in non-TSO/E address spaces, code a new IRXPARMS module. In the code, you must specify the new values you want for the parameters you are changing and the default values for all of the other fields.

There are many fields in the parameters module that are intended for use in language processor environments that are not integrated into TSO/E. If you provide IRXPARMS with values that cannot be used in TSO/E, provide the IRXPARMS module only for non-TSO/E address spaces. When you assemble the code and link-edit the object code, you must name the output member IRXPARMS. You must then place the data set with IRXPARMS in either a STEPLIB or JOBLIB that is not searched by the TSO/E session. You can do this using JCL. You must ensure that the data set is not searched by the TSO/E session.

If you provide your own IRXPARMS module that contains parameters values that must not be used by environments that are integrated into TSO/E (for example, TSO/E and ISPF), and IRXINIT locates the module when initializing a language processor environment in the TSO/E address space, IRXINIT may terminate or errors may occur when TSO/E users log on TSO/E or invoke ISPF.For example, you can provide your own replaceable routines only in language processor environments that are not integrated into TSO/E. The values for the replaceable routines in the three default parameters modules are null.

You can code your own IRXPARMS load module and specify the names of one or more replaceable routines. However, your module must not be in the TSO/E search order. When IRXINIT is invoked to initialize a language processor environment for TSO/E, IRXINIT finds a null value for the replaceable routine in the IRXTSPRM parameters module. IRXINIT then uses the value from the previous environment, which, in this case, is the value in IRXPARMS.

In the TSO/E address space, you can call IRXINIT and initialize an environment that is not integrated into TSO/E.

Considerations for Providing Parameters Modules

The previous topics describe how to change the default parameter values that IRXINIT uses to initialize a language processor environment. You can provide your own IRXISPRM, IRXTSPRM, and IRXPARMS modules for ISPF, TSO/E, and non-TSO/E.Generally, if you want to change environment values for REXX execs that run from ISPF, you can simply provide your own IRXISPRM parameters module. To change values for TSO/E only or for TSO/E and ISPF, you may have to create only a IRXTSPRM module or both the IRXTSPRM and IRXISPRM modules. The modules you have to provide depend on the parameter you are changing and the value in the IRXISPRM default module.

If you provide an IRXPARMS module and your module contains parameter values that cannot be used in environments that are integrated into TSO/E, you must ensure that the module is available only to non-TSO/E address spaces, not to TSO/E and ISPF.

Before you code your own parameters module, review the default values that TSO/E provides. In your code, you must include the default values for any parameters you are not changing. In the ISPF module IRXISPRM, many parameter values are null, which means IRXINIT obtains the value from the previous environment. In this case, the previous environment was defined using the IRXTSPRM values. If you provide a IRXTSPRM module for TSO/E, check how the module affects the definition of environments for ISPF.

TSO/E provides three samples in SYS1.SAMPLIB that are assembler code samples for the three parameters modules. The member names of the samples are:

  • IRXREXX1 (for IRXPARMS — MVS)
  • IRXREXX2 (for IRXTSPRM — TSO/E)
  • IRXREXX3 (for IRXISPRM — ISPF)

All rights reserved © 2020 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

IBM-REXX Topics