New and Changed Features of Base Natural


Operations and Performance

Message Buffer Pools

Default value for the SIZE Function Parameter

The default size of a Message Buffer Pool for TYPE=MSG is changed from 100 MB to 1 MB because most of the memory went unused. A pool of size 1 MB can hold up to 7000 error messages.

For more information, see SIZE - Size of Message Buffer Pool function parameter in the Operations documentation.

Syntax, Compiler and Runtime Enhancements

Provide TO clause for READ BY ISN statement

If running against Adabas for Mainframe 8.6, the READ BY ISN statement has been enhanced by a TO clause that specifies an ending value, which is passed and evaluated by Adabas.

See READ statement for further information.

To mark an Adabas database version 8.6, use the NTDB macro or the DB parameter. For more information about the NTDB macro and the DB parameter, see DB - Database Types and Options.

The new functionality can already be used with Adabas for Mainframe version 8.5, provided that Adabas zap AY854180 has been applied. Such a database must also be marked as "ADAV86" with the NTDB macro or the DB parameter to indicate that this Adabas 8.6 functionality is available for this database.

Enchanced error message text for some errors indicating a parameter position.

When a parameter provided in an INPUT USING MAP, CALLNAT or PERFORM (external subroutine) does not conform with the corresponding parameter in the called object, an error is raised that shows the position number of the parameter in error.

Since it is not always easy to identify the parameter variable using only the position, the field name will now also be provided in some error messages.

The change affects the first insert position (:1:) in error messages (NAT0936, NAT0937, NAT0938, NAT0648, NAT0965, NAT0966, NAT0969).

Note:
The variable name is only available at compile time. If received at runtime, the extra field name is not inserted. It is recommended to use the compiler option PCHECK=ON to benefit from this improvement.

Example:

CALLNAT  'SUBPGM'  #P1  #P2  #P3  /* assume #P3 does not match to parameter 3 in SUBPGM
     
Old: NAT0936 Format/length conflict in parameter 3         (Subprogram SUBPGM/../../..)
New: NAT0936 Format/length conflict in parameter 3  (#P3)  (Subprogram SUBPGM/../../..)

Validation of parameters of CALL statement

The generation of parameters in a CALL statement is now more precise. The received parameter address list is now exactly in the form that corresponds to the parameters provided in the CALL statement. In earlier Natural versions, parameter addresses of former CALL statements were not always cleared properly when the address list for a new CALL statement is generated. This could lead to finding additional parameter address fields after the provided parameters. If a called 3GL program is faulty and accesses more parameters than specified in the CALL statement, this can now lead to runtime errors of any kind which have not been issued before Natural 9.2.3.

If an error occurs in a CALL statement starting with Natural version 9.2.3, please check the parameters used in the CALL statement. A mismatch of parameters between the calling Natural object and the called 3GL program is the mostly like reason for this error. In this case, please adapt the Natural program accordingly.

Programming Language

New or Changed Statements

The statements listed in the following table are new or have been changed or enhanced. Unless otherwise noted, refer to the updated descriptions of these statements in the Statements documentation.

PARSE JSON

The new PARSE JSON statement allows you to parse JSON documents from a Natural program. For more information, see PARSE JSON in Statements.

System Commands

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

LASTMSG Enhancement

For LASTMSG, date and time are added behind each error message.

Additional options:

PF1 - Help
PF2 - Clear all error messages
PF5 - Detailed information of the error

See LASTMSG in the Natural System Commands documentation.

SCAN

The SCAN command will now continue to scan/replace even if the Natural error NAT0886 ('Storage overflow in extended buffer') occurred for an object. The objects which could not be scanned/replaced due to this error are called skipped objects.

For more information, see SCAN in System Commands.

Utilities

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

Object Handler

The Data area format of the Transfer options is enhanced with the value ‘D’ to convert data areas to the DEFINE DATA format. Due to the enhanced parameter values, the Profile Maintenance command UPDATE must be executed to update the changes into the Object Handler profile. For more information, see the enhanced Data area format of the Transfer option described in Settings. For more information about the profile in the Object Handler utility, see the chapter Profile Settings.

SYSTP

The display of the license information has been improved. A new sub menu show the available product licenses.

Profile Parameters

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

Changed/Enhanced Profile Parameters

NATBUFFER - Buffer size

For the Natural buffer pool (TYPE=NAT), the default size was limitied to 256 KB. This could result in error NAT0777 (Buffer pool full). Therefore, the buffer pool has been increased to a default value of 2MB.

Application Programming Interfaces

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

API Task Enhancement
USR9206N Write an SMF record

This new API writes a z/OS system management facility (SMF) record to the SMF dataset. The SMF record is written regardless whether the application is currently running in task control block (TCB) mode or in service request block (SRB) mode on a zIIP. No switching between the two modes will be performed.

The authorized service manager (NATASM) must be installed and started.

For further information, read the according IBM documentation (Writing SMF records).

USR9207N Get information about ZAPs

This new API returns information about installed ZAPs for Natural and dependant products. A list of installed products which can have ZAPs can also be obtained.