Natural Parameter Modifications for DL/I

Natural parameter default values for DL/I can be changed to meet your particular requirements. The object module NDLPARM, which is used for Natural static parameter assignment in a DL/I environment, must then be appropriately modified and reassembled.

This section covers the following topics:


Parameters in NDLPARM

The following parameters are contained in NDLPARM:

DFBNUM - Maximum Entries in Translated Format Buffer

Possible Values Default Value
5 - 200 25

This parameter is used to indicate the maximum number of entries in the table of translated format buffers.

An entry in this table is created for each active Natural input/output statement (FIND, READ, UPDATE, STORE).

When increasing DFBNUM or DFFNUM, take into consideration that the allocated storage area size is obtained by multiplying these values and not by adding them.

DFFNUM - Maximum Fields in Single Entry of Translated Format Buffer

Possible Values Default Value
5 - 1000 10

This parameter is used to indicate the average number of fields contained in each single entry of the table of translated format buffers.

A field entry in this table is created for each field referenced in a Natural input/output statement (FIND, READ, UPDATE, STORE).

When increasing DFFNUM or DFBNUM, take into consideration that the allocated storage area size is obtained by multiplying these values and not by adding them.

FLBNUM - Number of Entries in Fast Locate Buffer

Possible Values Default Value
0 - 32767 50

This parameter is used to indicate the number of entries in the Fast Locate Buffer. This buffer holds absolute addresses of Natural for DL/I objects (that is, NDBs, NSBs, UDFs) in the buffer pool.

The addresses are stored in wrap-around technique.

This buffer is especially useful if Natural for DL/I objects have been marked as "resident" in the buffer pool (see the related parameters RESINDB, RESINSB, RESIUDF).

It allows Natural for DL/I to use the Fast Locate algorithm of the Natural buffer pool manager when locating objects.

INGSIZE - Initial Size of Buffer to Copy Parameter List

Possible Values Default Value
1000 - 32767 (bytes) 1000

This parameter is used to indicate the initial size of the buffer which is used to copy the DL/I call parameter list and the call parameters below 16 MB if Natural operates in a z/OS environment. If the initial size is not sufficient, Natural automatically increases the size of this buffer accordingly.

INGOSIZ - Initial Size of I/O Area for DL/I Calls

Possible Values Default Value
1000 - 32767 (bytes) 1000

This parameter is used to indicate the initial size of the I/O area for DL/I calls. This area is re-used for subsequent DL/I calls if no GET HOLD call has been issued.

If the initial size is not sufficient, Natural automatically increases the size of this buffer accordingly.

INITCAL - Issues INIT Call at Transaction Start

Possible Values Default Value
NO/YES NO

This parameter is used to inform IMS TM that Natural is prepared to accept status codes BA or BB regarding data unavailability.

The setting of this parameter only applies if Natural runs in a BMP or MPP region.

PCBLEV - Maximum Number of PCB Levels

Possible Values Default Value
1 - 15 10

This parameter is used to indicate the maximum number of PCB levels which can be processed by Natural.

When increasing PCBLEV, take into consideration that the allocated storage area size is obtained by multiplying these values and not by adding them.

PCBNUM - Maximum Number of PCBs in a PSB

Possible Values Default Value
1 - 255 25

This parameter is used to indicate the maximum number of PCBs which can be contained within a single PSB.

When increasing PCBNUM, take into consideration that the allocated storage area size is obtained by multiplying these values and not by adding them.

RELEVNT - Requests Relocation Event

Possible Values Default Value
NO/YES NO

This parameter is used to inform the Natural nucleus whether or not Natural for DL/I requests relocation events.

With RELEVNT=YES, Natural for DL/I is called for relocation on every relocation event, that is, even if no DL/I call has been issued since the last relocation event.

With RELEVNT=NO, Natural for DL/I is not called for relocation. Instead, it checks itself whether relocation is required before a DL/I call is issued.

RESINDB - NDB Resident in Buffer Pool

Possible Values Default Value
NO/YES YES

This parameter is used to indicate whether NDBs are to be kept resident in the buffer pool.

RESINSB - NSB Resident in Buffer Pool

Possible Values Default Value
NO/YES YES

This parameter is used to indicate whether NSBs are to be kept resident in the buffer pool.

RESIUDF - UDF Resident in Buffer Pool

Possible Values Default Value
NO/YES YES

This parameter is used to indicate whether UDFs are to be kept resident in the buffer pool.

SASIZE - Size of Natural Save Area for DL/I

Possible Values Default Value
1000 - 3000 (bytes) 1000

This parameter is used to indicate the size of the save area.

Do not increase the default value, unless you receive an error message which indicates that a save area overflow has occurred.

SEQNUM - Maximum Number of Nested Sequential Accesses

Possible Values Default Value
5 - 100 20

This parameter is used to indicate the maximum number of nested sequential accesses which can be processed by Natural.

When increasing the values for the SEQNUM and SEQSSA parameters, remember that the storage area allocated is dependent on the product of these areas, not their sum.

SEQSSA - Maximum Size of an SSA

Possible Values Default Value
10 - 500 (bytes) 50

This parameter is used to indicate the maximum size of an SSA related to sequential access.

When increasing the values for the SEQNUM and SEQSSA parameters, remember that the storage area allocated is dependent on the product of these areas, not their sum.

THCSIZE - Table Size to Save Natural Field Values

Possible Values Default Value
2000 - 32000 (bytes) 3000

This parameter only applies under IMS TM or under CICS in pseudo-conversational mode.

This parameter is used to indicate the size of the table which is used to save field values in hold status when running under IMS TM or under CICS in pseudo-conversational mode.

TRACE - Trace Options

Possible Values Explanation
ALL Trace all modules
CMD Trace command execution
REQ Trace request modules
ROU Trace routines
SER Trace service modules
OFF Trace is not active. Default value.

This parameter is used to indicate whether Natural trace information is to be created and printed or not.

The options CMD, REQ, SER and ROU can be combined.

TYPCHCK - Numeric/Packed Data Check

Possible Values Default Value
NO/YES NO

This parameter is used to indicate whether numeric or packed segment fields from DL/I are to be checked for valid data and repaired, if necessary.

With TYPCHCK=NO, no data check is performed. Natural for DL/I would abend with data exception if, for example, a packed field contained blanks.

With TYPCHCK=YES, a data check is performed. If the field does not contain format compatible data, it is filled with zeroes. In addition, a message is issued, depending on the setting of the parameter TYPWARN (see below).

TYPWARN - Issues Data Check Warning

Possible Values Default Value
NO/YES NO

This parameter only applies if TYPCHCK has been specified (see above).

This parameter is used to indicate whether a message is to be issued if a data check and repair has been performed.

With TYPWARN=NO, no message is issued if a data repair has been performed.

With TYPWARN=YES, a message is issued if a data repair has been performed. This message displays the short name of the field in error. The message is issued as a warning (only), which means that:

  • The message is not issued via the Natural error exit but is directly inserted into the page buffer.

  • The message(s) is (are) only issued when the page buffer is full.

  • There is no backout transaction.

  • The program flow is not interrupted.

VALNSB - Validate NSB (against PSB)

Possible Values Default Value
NO/YES YES

This parameter is used to indicate whether the NSB is to be validated (against the PSB).

With VALNSB=YES, the NSB is validated. The NSB name in the NATPSB command is checked against the PSB name in the EXEC statement of the batch environment.

If the names are not identical, a message is issued.

With VALNSB=NO, NSB validation is bypassed. This allows for multiple business units sharing the same application. Improper use may cause mismatch problems or abends.

WORKLGH - Size of Work Areas

Possible Values Default Value
1000 - 3000 1000

This parameter is used to indicate the size of the work areas. Natural allocates six work areas of this size.

Do not increase the default value, unless you receive an error message which indicates that a work area overflow has occurred.

Storage Estimates

The memory size required by Natural for DL/I is determined by the following items:

  1. Object code: 90 KB.

  2. Save areas: 3 KB.

  3. Work areas: 6 KB.

  4. Fast Locate Buffer: 12 bytes for each entry.

  5. XRST buffer: 2 KB.

  6. Internal tables: the amount of storage allocated depends on parameters specified in the module NDLPARM. The following formula can be used to compute the amount of storage required for initial table allocation:

    Amount of Storage =

    SEQNUM * (SEQSSA + 64) + 32 +
    DFBNUM * (28 + (DFFNUM * 12)) + 20 +
    PCBNUM * (24 + 12 + (PCBLEVL * 5)) + 20 +
    TCHSIZE

    The above formula can be described as follows:

    Term Computational Expression
    Sequential Access Table SEQNUM * (SEQSSA + 64) + 32
    Field Table DFBNUM * (28 + (DFFNUM * 12)) + 20
    PCB Map PCBNUM * (24 + 12 + (PCBLEVL * 5)) + 20
    Table of Fields in Hold TCHSIZE

    If the standard values of these NDLPARM parameters are used in the above formula, 14 KB of storage is allocated.

  7. Segment I/O areas are to be added on additionally.

Note:
The object code is shared among all Natural sessions. There is a copy of all other areas for each active Natural session.

The storage required for save areas, work areas, Fast Locate Buffer, XRST buffer and internal tables is allocated from the thread at the initialization of the Natural session. Six GETMAINs are performed, the sizes of which are determined by the values of the parameters in the NDLPARM module. If the default values of the NDLPARM parameters are used, the total size required is 27 KB.

The total size available is determined by the profile parameter DLISIZE in the Natural parameter module; see the Natural Parameter Reference documentation.

The BUS (Buffer Usage Statistics) command can be used to obtain information on the sizes of the buffers allocated by Natural for DL/I. The following information is provided:

Buffer Content
DLISIZE0 contains the Fast Locate Buffer, the XRST buffer, and the save areas.
DLISIZE1 contains the work areas.
DLISIZE2 contains the sequential access table.
DLISIZE3 contains the field table .
DLISIZE4 contains the PCB map .
DLISIZE5 contains the table of fields in hold status.

Natural for DL/I in z/OS Environments

Before Natural issues a DL/I call in a z/OS environment, it checks whether the call parameter list or any of the call parameters reside above the 16 MB line. This is the case if the Natural threads have been placed above this line. If so, the parameter list and all parameters are copied into a buffer which has been allocated below the line via GETMAIN. The pointers in the parameter list are modified accordingly to point to the new parameters.

The initial size of this buffer is set by the INGSIZE parameter of NDLPARM. If the initial size is not sufficient, Natural automatically increases the size of this buffer accordingly.

This overhead is required because DL/I terminates programs abnormally if parameter addresses passed in DL/I calls do not refer to code or storage areas below the 16 MB line.