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 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.
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 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.
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.