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.