New and Changed Features of Base Natural

Note:
The SYSEXV utility gives you access to examples of new features available in the current and in some earlier versions of Natural. SYSEXV is described in the Utilities documentation.


Customer Feature Requests for Base Natural

This is an overview of the customer feature requests submitted in the Brainstorm portal of Software AG's Empower web site at https://empower.softwareag.com/ and the enhancement proposals that have been implemented in base Natural:

Request Number Feature Request
00459 Enhance the Service Directory Maintenance function of the SYSRPC utility to improve migration with NATCLTGS.
00905, 1036158 Provide API that supports ACBX: see the new API USR8219N in Application Programming Interfaces.
00104 Enhance the description of the DS profiler parameter to estimate the initial buffer size required to store all entries in the fast locate table: see the updated description of the FLTUSER subparameter in Table of Buffer Sizes in the Parameter Reference documentation.
01273 Route zIIP statistics generated with the ZIIP profile parameter to a particular print file: see the new PNR option of the ZIIP profile parameter in Changed/Enhanced Profile Parameters.
01277 Provide option to check whether Natural Security is installed in the current Natural environment: see the new API USR8215N in Application Programming Interfaces.
01317 Provide name of Predict file in data area: see the section Data Area Editor.
02673 Increase limit of 65535 records in the TEST DBLOG output (see DBLOG Trace Screen in the Utilities documentation).
02850 Enhance API USR8205N to check subroutines: see Application Programming Interfaces.

See also Customer Feature Requests for Natural Add-On Products.

Operations and Performance

Thread Compression/Decompression Moved to Natural Roll Server

The following applies only if the zIIP Enabler for Natural is installed in a CICS environment on z/OS and has been activated for a Natural session with the ZIIP profile parameter set to ON.

The new Natural Roll Server module NATRSM83 takes over the task of compressing and decompressing the Natural thread during roll-out and roll-in operations. This reduces CPU usage by the Natural nucleus, and thus CPU consumption of the hosting TP system (CICS or IMS TM) or the Natural server (Natural RPC server or Natural Development Server). The compression routines of the Natural Roll Server run on an IBM System z Integrated Information Processor (zIIP), if available, improving overall performance of Natural.

The module NATRSM83 is an optional replacement for the module NATRSM82 which performs as before. For the changes in installation, see Create and Start the Natural Roll Server in Installing Natural on z/OS in the Installation for z/OS documentation.

You can exploit the new functionality after activating the Natural selectable units module with the profile parameter setting SELUNIT=(U1=ON) (see the Parameter Reference documentation). See also Selectable Units Available for New Roll Server Feature on z/OS.

Handling of Storage Key Enhanced under Com-plete

The Natural buffer pool is now allocated either in a system key (only possible for global buffer pools on z/OS) or in the storage key 9. Therefore, it is no longer required to start Natural with profile parameter SKEY=ON (see the Parameter Reference documentation) set for performance reasons if the storage threads used by Natural are allocated in a storage key other than the storage key used by Com-plete or the storage key 9.

Notes:

  1. If you use local buffer pools, you must ensure that the first Natural session referencing a local buffer pool runs with Natural under Com-plete Version 8.2.6 or higher.
  2. If your Natural application uses the editor buffer pool, Zap NA96025 must be applied in your environment.

Unicode and Code Page Support

ICU Version Upgrade

The ICU (International Components for Unicode) version has been upgraded to ICU Version 54.1 which supports Unicode Version 7.0.

ICU Version 54.1 enhancements include increased thread safeness and improved efficiency for the collation service through a new universal cache.

For a summary of all changes in ICU Version 54.1 and Unicode Version 7.0, see the Download ICU 54 website at http://site.icu-project.org/download/54 and the Unicode 7.0.0 website at http://www.unicode.org/versions/Unicode7.0.0/, respectively.

See also New ICU Data Modules.

Caution with Old ICU Data Items

ICS (International Components for Unicode for Software AG) Version supports dynamic loading of single ICU data items during runtime.

Since some code pages have been added or removed in ICU Version 54.1, make sure to use a data set with ICU data item modules delivered with ICS Version 2.1.1. Using a data set with data item modules of an older ICS version can lead to unpredictable results during code page conversion.

For more information, see ICU Data Items in the Unicode and Code Page Support documentation.

Programming Language

Statements

REQUEST DOCUMENT

The HEADER/VALUE option of the RETURN clause now also supports arrays in addition to scalar values. Arrays are required if more than one occurrence of the same header is returned by the HTTP server.

For more information, see the header-value-in operand of the return-clause described in the Statements documentation.

System Commands

Note:
The sections indicated for more information are contained in the System Commands documentation, unless otherwise noted.

COMPOPT System Command

Under Natural for DB2 Version 8.4.1, the COMPOPT system command provides the new DB2PKYU compiler option: see New Compiler Option for Update of DB2 Primary Keys.

LIST System Command

Architecture Level Now Shown for Cataloged Objects

The LIST system command now displays the IBM architecture level used when cataloging Natural sources with the ARCH option of Natural Optimizer Compiler (see the Natural Optimizer Compiler documentation). Prerequisite is Natural Optimizer Compiler Version 8.3.3 or above.

The architecture level is displayed in the object directory and in a new column of the object list. You can also use the new ARCHLEVEL option of the LIST range-clause to list objects for a specific level or a range of levels.

Optimized Code Now also Shown in Object List

The size of code generated with the Natural Optimizer Compiler (if used) is now also displayed in a column of the object list.

CODE-PAGE Options no longer Supported
  • The DISPLAY-CODE-PAGE-IN-LIST parameter of the LIST profile is no longer supported. As a result, this parameter will be removed from your LIST profile the next time you execute the UPDATE function of the LIST profile maintenance (invoked with the LIST subcommand LISTPROF).

  • The LIST subcommands CODE-PAGE ON|OFF and CP ON|OFF are no longer supported. Code-page information is always shown in the object directory or object list.

Editors

Note:
The sections indicated for more information are contained in the Editors documentation, unless otherwise noted.

Data Area Editor

The data area editor has been enhanced. When a Predict file is included into a data area, the name of that file is written into a field of the Miscellaneous column of the data area editor. This allows identifying the origin of the imported fields.

Utilities

Note:
The sections indicated for more information are contained in the Utilities documentation, unless otherwise noted.

DBLOG Utility

The DBLOG utility has been enhanced to report more than 65535 records in the output produced by TEST DBLOG system command: see DBLOG Trace Screen.

Profiler Utility

Additional Statistics in Batch

In batch mode, the Profiler utility now provides additional statistics on a running Natural batch application: the code page used by the application, the libraries and programs opened/executed first during the session, and the highest level of an object invoked during program execution.

For detailed information, see Profiler Statistics in the section Natural Profiler.

Enhanced Event Data Processing in Batch

The Profiler utility can now also be used to read the event data from the Profiler resource files and process it further.

The Profiler utility provides new functions for data consolidation (aggregation), event tracing and program tracing. It also provides a program summary and displays the Profiler properties and statistics. The resulting data can be exported in text or CSV (comma-separated values) format, or in the format expected by the Natural Profiler MashApp (see the following section).

For detailed information, see Using the Profiler Utility in Batch Mode in the section Natural Profiler.

Presentation of Profiler Data on an Interactive Dashboard

The new Natural Profiler MashApp is used to evaluate Profiler event data with MashZone.

MashZone is a browser-based application from Software AG which is used to visualize data on a graphical, interactive dashboard.

For detailed information, see Natural Profiler MashApp in the section Natural Profiler.

SYSRDC Utility

A Natural RPC server that waits for the next client request is now recorded as a separate event of the new type RW (wait for RPC client request). Before, it was recorded as an event of the type RO (outbound RPC message).

SYSRPC Utility

The SYSRPC utility is a subcomponent of Natural RPC: see SYSRPC Utility in the section Natural RPC.

Profile Parameters

Note:
The sections indicated for more information are contained in the Parameter Reference documentation, unless otherwise noted.

Changed/Enhanced Profile Parameters

Parameter

Corresponding
Macro

Task Change/Enhancement
CMPO NTCMPO   DB2PKYU – Place Primary Key Fields into the Natural DML UPDATE Statement

The new DB2PKYU option is provided for Natural for DB2 Version 8.4.1: see New Compiler Option for Update of DB2 Primary Keys.

RPC NTRPC Remote-Procedure-Call Settings Translate Subprogram Name into Upper Case

The default setting of the RPCUCT keyword subparameter has changed from OFF to ON.

This corresponds to the default upper case translation Natural performs on UNIX and Windows platforms.

DFS - Specify RPC Client's Default Server Address

The maximum possible value for a node name specified with the DFS keyword subparameter has increased to 192 characters.

SRVNODE - Name of Node

The maximum possible value for a node name specified with the SRVNODE keyword subparameter has increased to 192 characters.

ZIIP NTZIIP zIIP Processing (z/OS Only) Route zIIP Processing Information to Print File

The new PNR keyword subparameter determines the print file to be used for the zIIP processing information output with the PRINT keyword subparameter of ZIIP.

Issue Natural zIIP Support Message

The new IMSG keyword subparameter determines whether a Natural system message is issued when Natural zIIP support is provided at session start.

Application Programming Interfaces

The following Natural application programming interfaces (APIs) are new in the SYSEXT system library or have changed:

API Task Enhancement
USR1009N Convert store clock to microseconds. Performance of these APIs has been improved: see Improved Performance of Time Conversion APIs.
USR1023N Convert date and time format.
USR2036N Convert binary variable (B8) to numeric variable (P20).

Can be used to convert the system variable *TIMESTMP to a numeric variable.

USR8205N Get called subprograms and subroutines with parameters. This API now also returns the names and parameters of the called external subroutines of a cataloged Natural object.
USR8215N Get the Natural and NSC versions. This new API returns the Natural and Natural Security versions installed at your site.
USR8216N Maintain the RPC service directory.

This new API retrieves a Natural RPC service directory and creates, changes and deletes the node and server definitions in the directory.

USR8217N Search execution library for a Natural object. This new API searches in the Natural search path the execution library for a given object. If the object name is not specified, the name of the calling program is used.
USR8218N Get all databases accessed by Natural. This new API returns the versions, types and options of all databases accessed during a Natural session.
USR8219N Perform Adabas direct calls with ACBX interface. This new API enables you to issue Adabas direct calls by using the extended Adabas control block (ACBX) interface. All Adabas buffers you can specify with this API are defined as dynamic variables of the format A.
USR8220N Trigger termination of current RPC server. This new API causes an active RPC server to terminate if it is called by a Natural RPC server subprogram. Explicit server termination through this API is useful when severe errors occur.

See also the changes to Natural RPC-specific APIs and Natural Security APIs.

Improved Performance of Time Conversion APIs

Performance of the time conversion APIs USR1009N, USR1023N and USR2036N has been improved significantly. We recommend that you replace any previous versions of these APIs with the new API versions supplied with this Natural release.

For USR1023N and USR2036N, in addition to the usual example programs (USRnnnnP) and text objects (USRnnnnT), the following new copycode objects are supplied to further improve conversion performance for time-related values:

Copycode Task
USR1023W Convert microseconds to a store clock value.
USR1023X Convert microseconds to Natural time.
USR1023Y Convert a store clock value (such as *TIMESTMP) to microseconds.
USR1023Z Convert Natural time to microseconds.
USR2036Z Convert a binary variable of the Natural format/length B8 to a numeric variable of the Natural format/length P20.

This copycode can be used to convert the system variable *TIMESTMP to a numeric variable.

For instructions on implementing the copycodes, see Using a Natural API in the SYSEXT Utility section of the Utilities documentation.

The following graphic illustrates a performance comparison between the old and new versions of the APIs tested with a Natural program that converts the following one million times:

  • Converts a store clock value to microseconds by using the old USR1009N API, compared with the corresponding new API and its related USR1023Y copycode.

  • Converts a store clock value to microseconds and Natural time by using the old USR1023N API and the function S, compared with the corresponding new API and its related copycodes USR1023Y and USR1023X.

  • Converts a store clock value to a numeric variable (P20) by using the old USR2036N API, compared with the corresponding new API and its related copycode USR2036Z.

graphics/rel_notes_api_performance.png

The new versions of the time conversion APIs perform about three times faster than the old ones. The new copycodes are about 16 times faster than the old APIs.