LT - Limit für Verarbeitungsschleifen

#### Search Results

Search

# LT - Limit für Verarbeitungsschleifen

Mit diesem Natural Profil- und Session-Parameter können Sie das allgemeine Limit für Verarbeitungsschleifen in Natural-Programmen festlegen, d.h. wieviele Datensätze eine Verarbeitungsschleife in einer Natural-Anwendung maximal verarbeiten darf.

Mögliche Werte | `1 - 2147483647` `0` | Maximale Anzahl der Datensätze, die in einer gegebenen Verarbeitungsschleife gelesen werden können. Hierbei werden alle gelesenen Datensätze mitgezählt, auch solche, die aufgrund einer `WHERE`-Klausel zurückgewiesen und nicht weiterverarbeitet werden. `LT=0` legt fest, dass für Verarbeitungsschleifen kein Limit gelten soll. Anmerkung Innerhalb einer Session: `0` bis `n`; dabei ist `n` = Wert des Profilparameters `LT` beim Start der Session.
Standard-Einstellung | `99999999` |
Dynamische Angabe | yes |
Angabe innerhalb der Session | yes |
Gültige Statements | `SET GLOBALS` | Anmerkung: Wird der `LT`-Parameter mit einem `SET GLOBALS`-Statement oder einem `SET GLOBALS`-Systemkommando benutzt, kann der einstellbare Limit-Wert nicht größer als der `LT`-Wert sein, der im Natural-Parametermodul gesetzt wurde.
Gültiges Kommando | `GLOBALS`
Programmierschnittstelle (API) | `USR1005N` | Siehe SYSEXT Utility im Dokumentensatz Debugger und AE-Dienstprogramme.

Anmerkungen:

1. Dieses Limit gilt für alle Statements, mit denen Datensätze aus der Datenbank gelesen werden; d.h., Statements, die eine Verarbeitungsschleife auslösen, wie zum Beispiel `READ`, `FIND`, `HISTOGRAM` oder `SELECT`, und Statements, mit denen nur ein einzelner Datensatz gelesen wird, wie zum Beispiel `FIND UNIQUE`, `FIND NUMBER`, `FIND FIRST`, `GET` (`SAME`) und `SELECT SINGLE`.
2. Alle gelesenen Datensätze werden gezählt und das Ergebnis dieser Zählung wird mit dem im `LT`-Parameter gesetzten Wert verglichen. Hierbei werden alle gelesenen Datensätze mitgezählt, auch solche, die aufgrund einer `WHERE`-Klausel eines `FIND`-, `READ`- oder `HISTOGRAM`-Statements zurückgewiesen und nicht weiterverarbeitet werden. Das mit dem `LT`-Parameter gesetzte Limit hat keine Auswirkung auf die Statements `STORE`, `UPDATE`, `DELETE`, `END TRANSACTION` und `BACKOUT TRANSACTION`.
3. Wird ein Datensatz von der Datenbank gelesen, wird die Anzahl der gelesenen Datensätze erhöht, bevor sie mit dem Wert des `LT`-Parameters verglichen wird. Übersteigt der erhöhte Zählwert den aktuellen `LT`-Wert, wird der Natural-Fehler NAT1003 (`Global limit for database calls reached`) ausgegeben. Der Wert der gezählten gelesenen Datensätze wird immer dann auf Null gesetzt, wenn ein Natural-Programm auf Level 1 gestartet wird. Der Wert wird jedoch nicht zurückgesetzt, wenn das Programm auf Level 1 ein anderes Natural-Objekt aufruft (weitere Informationen hierzu siehe Mehrere Stufen (Levels) aufgerufener Objekte im Leitfaden zur Programmierung). Deshalb wird mit dem `LT`-Parameter die Anzahl der Datensätze begrenzt, die von einem Level 1-Programm und von den Objekten gelesenen wurden, die von diesem Programm auf einem anderen Level als Level 1 aufgerufen wurden.
4. Wird der Wert des `LT`-Parameters dynamisch in einem Programm mittels einem `SET GLOBALS LT=n`-Statement geändert, wird der neue Limit-Wert beim nächsten Statement wirksam, das einen Datensatz von der Datenbank liest.
5. In einer Natural-Session kann die Einstellung des Profilparameters `LT` mit dem Session-Parameter `LT` überschrieben werden.