ICS 321

This document covers the following topics:


Data Scope and Data Handling

ICS 321 provides all of the available ICU customization data, modulated in so-called Data Items. The dataset containing the data items is part of the delivery, along with the ICS 321 load modules SAGICU and SAGICUA9.

A data item (collator, converter) is located on the disk in the dataset. The data item is loaded in the memory on demand (e.g. by a MOVE ENCODED statement). Once a data item is loaded, it is available for future use instantly without the need to reload.

This allows for the ICS 321 load modules SAGICU and SAGICUA9 to be kept minimal in size.

A new SYSCP function to list all loaded data items has been introduced (see SYSCP function Loaded Code Pages in section Utilities > SYSCP Utility - Code Page Administration).

The CFICU STEPLIB Parameter

Data files provided by Software AG are no longer supported with ICS 321. ICU localization data is loaded only dynamically from a dataset containing the data items (collators, converters, etc.).

The name of this dataset can be:

  • statically specified in the JCL as a Natural Steplib.

  • dynamically allocated with the CFICU STEPLIB parameter (see section The CFICU STEPLIB Parameter in Unicode and Code Page Support > ICS 321).

ICS uses both allocation methods to search for data items, starting from the CFICU STEPLIB dataset (if given) and the statically specified Natural Steplibs in the JCL.

This dynamic approach allows for flexibility. The JCL must not be changed in order to run Natural, only a Natural session parameter must be added.

The dataset given by the CFICU STEPLIB parameter will be dynamically allocated only once by the first Natural session in a given TP system under the DD Card ICSxxxDD (xxx corresponds to ICS version) and used by all Natural sessions afterwards.

Example: CFICU=(STEPLIB='I321ITEMS.LOAD')

Validating the CFICU STEPLIB Parameter

The first Natural session in a given TP system will try to validate the CFICU STEPLIB parameter. If the validation is successful, ICS will initialize. All following Natural sessions in the TP system will disregard the CFICU STEPLIB parameter and use the dynamically allocated dataset of the first session. Validation criteria for the dataset name include the following:

  • the dataset must exist.

  • the dataset name must be enclosed in ' ' - see example above.

  • the dataset name must conform to the z/OS naming conventions:

    • maximal length of 44 characters

    • no special characters allowed

    • must not be a high level qualifier, i.e. must contain at least one dot '.'

If the validation is not successful, Natural error NAT3414 STEPLIB DSN <data set name> cannot be loaded will be issued. The next Natural session will try to validate the STEPLIB parameter and initialize ICS again. This iteration will continue until a successful ICS initialization is reached. All sessions after a successful ICS initialization will disregard the STEPLIB parameter and use the already allocated resource.

Using ICS32 in Natural subtask (needs APF-authorized ICS load library)

Under the current implementation of NPR, the PRD.ICSnnn.MVSLOAD must always be APF-authorized. This is independent of whether it is part of the STEPLIB concatenation or specified with the STEPLIB parameter of CFICU.

The scenarios for using ICS31 in a Natural subtask are:

  • When running multiple Natural sessions / subtasks from an Entire System Server (NPR) node.

  • When NOP, NOM, EOR are automated to be run by an ESS/NPR node.

  • When running an NDV server.