z/OS TSO/E REXX Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Changing the maximum number of environments in an address space

z/OS TSO/E REXX Reference
SA32-0972-00

Within an address space, language processor environments are chained together to form a chain of environments. There can be many environments on a single chain. You can also have more than one chain of environments in a single address space. There is a maximum number of environments that can be initialized at one time in an address space. The maximum is not a specific number because the maximum depends on the number of chains in an address space and the number of environments on each chain. The default maximum TSO/E provides should be sufficient for any address space. However, if IRXINIT initializes a new environment and the maximum number of environments has been reached, IRXINIT completes unsuccessfully and returns with a return code of 20 and a reason code of 24. If this error occurs, you can change the maximum value.

The maximum number of environments the system can initialize in an address space depends on the maximum number of entries defined in the environment table known as IRXANCHR, and on the kind of environments being initialized. To change the number of environment table entries, you can use the IRXTSMPE sample that TSO/E provides in SYS1.SAMPLIB or you can create your own IRXANCHR load module. The IRXTSMPE sample is a System Modification Program/Extended (SMP/E) user modification (USERMOD) to change the number of language processor environments in an address space. The prolog of IRXTSMPE has instructions for using the sample job. The SMP/E code that is included in the IRXTSMPE sample handles the installation of the load module.

Guideline: To determine the number of entries needed in IRXANCHR and to ensure that at least "n" environments can be initialized in an address space, use the following formula:
      Number_of_entries = (2*n) + 1

For example, if you require 100 environments, set the number of entries to 201. You can then initialize at least 100 environments.

If you create your own IRXANCHR load module, you must assemble the code and then link-edit the module as non-reentrant and reusable. You can place the data set in a STEPLIB or JOBLIB, or in the linklist. The data set cannot be in the LPALIB. When running in a TSO/E address space, IRXANCHR must come from an APF-authorized library.

Table 1 describes the environment table. TSO/E provides a mapping macro, IRXENVT, for the environment table. The mapping macro is in SYS1.MODGEN.

The environment table consists of a table header followed by table entries. The header contains the ID, version, total number of entries, number of used entries, and the length of each entry. Following the header, each entry is 40 bytes long.

Table 1. Format of the environment table
Offset (decimal) Number of bytes Field name Description
0 8 ID An eight-character field that identifies the environment table. The field contains the characters ‘IRXANCHR’.
8 4 VERSION The version of the environment table. The value must be 0100 in EBCDIC.
12 4 TOTAL Specifies the total number of entries in the environment table.
16 4 USED Specifies the total number of entries in the environment table that are used.
20 4 LENGTH Specifies the length of each entry in the environment table. The length of each entry is 40 bytes.
24 8 Reserved.
32 40 FIRST The first environment table entry. Each entry is 40 bytes long. The remaining entries follow.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014