DATSIZE - Minimale Größe des lokalen Daten-Puffers

#### Search Results

Search

# DATSIZE - Minimale Größe des lokalen Daten-Puffers

Mit diesem Natural-Profilparameter können Sie die minimale Größe des lokalen Daten-Puffers (DATSIZE) angeben.

Mögliche Werte | `10 - 2097151` | Minimale Größe des lokalen Daten-Puffers in KB.
Standard-Einstellung | `32` |
Dynamische Angabe | ja |
Angabe innerhalb der Session | nein |

Anmerkungen:

1. Alternativ können Sie den äquivalenten Natural-Profilparameter `DS` oder das Parametermakro `NTDS` benutzen.
2. Der `DATSIZE`-Puffer ist ein Puffer mit variabler Größe. Er wird dynamisch erweitert, wenn während der Session mehr Speicherplatz für lokale Datenbereiche benötigt wird. In einer Thread-Umgebung kann der `DATSIZE`-Puffer temporär außerhalb des Speicher-Thread zugewiesen werden, wenn er zu groß wird. Die Größe des `DATSIZE`-Puffer wird wieder auf die Minimalgröße zurückgesetzt, sobald die Anwendung den Speicherplatz nicht mehr benötigt.

#### Funktion des DATSIZE-Puffer

Zur Ausführungszeit enthält der `DATSIZE`-Puffer die lokalen Daten, die vom zurzeit ausgeführten Natural-Hauptprogramm verwendet werden, und die lokalen Daten aller, von diesem Programm aufgerufenen, untergeordneten Objekte (Ausnahme: per `FETCH`-Statement aufgerufene Programme).

Wenn Sie Natural in einer Entwicklungsumgebung benutzen, entspricht die erforderliche minimale `DATSIZE` der Standard-Einstellung (d.h. 32 KB). Eine geringere `DATSIZE` ist nur möglich, wenn Sie Natural nur als Laufzeitumgebung benutzen und wenn dabei keine Natural-Utilities zur Verfügung stehen.

#### Berechnung der benötigten DATSIZE

Die tatsächlich benötigte `DATSIZE` kann wie folgt berechnet werden (siehe Abbildung weiter unten):

Falls vom Natural-Hauptprogramm ein weiteres Objekt aufgerufen wird, werden die lokalen Daten dieses Objekts ebenfalls im `DATSIZE`-Puffer vorgehalten.

Werden von dem aufgerufenen Objekt weitere Objekte aufgerufen (mit einem der Statements `CALLNAT`, `PERFORM`, `FETCH RETURN` oder `INPUT USING MAP` oder per Aufruf einer Helproutine/Helpmap), werden ihre lokalen Daten ebenfalls im `DATSIZE`-Puffer vorgehalten; die lokalen Daten eines aufgerufenen Objekts werden solange im `DATSIZE`-Puffer vorgehalten, bis die Kontrolle vom aufgerufenen Objekt an das aufrufende Objekt zurückgegeben wird.

Wenn mit einem `FETCH`-Statement ein weiteres Hauptprogramm aufgerufen wird, dann werden die lokalen Daten aller zuvor aufgerufenen Objekte aus dem `DATSIZE`-Puffer gelöscht und die lokalen Daten des mit dem `FETCH`-Statement aufgerufenen Programms werden im `DATSIZE`-Puffer vorgehalten.

Darüber hinaus wird ein Betrag von ca. 128 Bytes mit allgemeinen Informationen zur Ausführung im `DATSIZE`-Puffer vorgehalten. Hinzu kommen ca. 128 Bytes mit Steuerungsinformationen zu jedem Objekt, dessen lokale Daten im im `DATSIZE`-Puffer vorgehalten werden; siehe Abbildung.

Das Systemkommando `LIST` bietet eine Option, mit der Sie sich Verzeichnisinformationen zu einem Objekt anzeigen lassen können. Dort finden Sie auch Angaben zum `DATSIZE`-Speicherbedarf des Objekts (ohne die Steuerungsinformationen).