ICS 311

This document covers the following topics:


Customizing and Using ICU Data Libraries Provided by Software AG

ICS 311 is based on ICU 65.1 and Unicode 12.0. The new ICU Data Build Tool, introduced with ICU 64.1 , can be used to customize the ICU locale data file. This change no longer guarantees the integrity and completeness of ICU data libraries provided by Software AG with ICS 311. It compels the change of direction for the new ICS 311.

The following items will not be available with ICS 311 due to the changes in the method of compiling and loading localization data in newer ICU releases:

Data Scope and Data Handling

ICS 311 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 311 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 311 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 311. 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 311).

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='I311ITEMS.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.