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.

DATSIZE requirement

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