This Natural profile parameter can be used to set the minimum size of
the local data buffer (DATSIZE
).
Possible settings | 10 - 2097151 |
Minimum buffer size in KB. |
---|---|---|
Default setting | 32 |
|
Dynamic specification | yes | |
Specification within session | no |
Notes:
DS
or macro
NTDS
to specify the size of the buffer.
DATSIZE
buffer is a "variable
size" buffer. If more storage for local data areas is required during
the session, the DATSIZE
buffer is expanded dynamically. In a
thread environment, the DATSIZE
may be temporarily allocated
outside the storage thread if it becomes too large. The size of the
DATSIZE
buffer is reduced back to the minimum size when the
application does not need the space any longer.
At execution time, the DATSIZE
buffer holds the
local data used by the Natural main program being executed and the local data
of all subordinate objects (except "FETCHed" programs) invoked by
this program.
When you use Natural in a development environment, the minimum
DATSIZE
required is the default setting (that is, 32
KB). A smaller DATSIZE
is only possible when using
Natural as a runtime-only environment without any Natural utilities being
available.
The actual DATSIZE
requirement can be
calculated as follows (refer to the illustration below):
If another object is invoked by the main program, the local data of
this object are also held in the DATSIZE
buffer.
If other objects are invoked from the invoked object (with a
CALLNAT
,
PERFORM
,
FETCH RETURN
,
INPUT USING MAP
statement, a helproutine/help map being invoked), their local data are also
held in the DATSIZE
buffer; the local data of an invoked object is
held in the DATSIZE
buffer until control is returned from the
invoked object to the invoking object.
If another main program is invoked with a
FETCH
statement, the
local data of all previously invoked objects are deleted from the
DATSIZE
buffer and the local data of the "FETCHed"
program are held in the DATSIZE
.
In addition, an amount of approximately 128 bytes of general control
information for execution are held in the DATSIZE
buffer, plus
approximately 128 bytes of control information for each object whose local data
are being held in the DATSIZE
buffer. This is illustrated in the
figure below.