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:
The following parameters are contained in NDLPARM:
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.
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.
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 NDL objects (that is, NDBs, NSBs, UDFs) in the buffer pool.
The addresses are stored in wrap-around technique.
This buffer is especially useful if NDL 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.
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.
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.
Possible Values | Default Value |
---|---|
NO/YES | NO |
This parameter is used to inform IMS 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.
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.
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.
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.
Possible Values | Default Value |
---|---|
NO/YES | YES |
This parameter is used to indicate whether NDBs are to be kept resident in the 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.
Possible Values | Default Value |
---|---|
NO/YES | YES |
This parameter is used to indicate whether UDFs are to be kept resident in the buffer pool.
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.
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.
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.
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.
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.
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).
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.
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.
The memory size required by Natural for DL/I is determined by the following items:
Object code: 90 KB.
Save areas: 3 KB.
Work areas: 6 KB.
Fast Locate Buffer: 12 bytes for each entry.
XRST buffer: 2 KB.
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.
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 (NATPARM); 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. |
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.