Neue und geänderte Merkmale des Basisprodukts Natural

#### Search Results

Search

# Neue und geänderte Merkmale des Basisprodukts Natural

- Operations und Performance

- Syntax-, Compiler- und Laufzeitverbesserungen

- Programmiersprache

- Systemkommandos

- Dienstprogramme (Utilities)

- Profilparameter

- Anwendungsprogrammierschnittstellen

## Operations und Performance

### Message Buffer Pools

#### Standardwert für Funktionsparameter SIZE

Die Standardgröße eines Message Buffer Pool für `TYPE=MSG` wurde von 100 MB auf 1 MB geändert, da der größte Teil des Speichers ungenutzt blieb. Ein Pool der Größe 1 MB kann bis zu 7000 Fehlermeldungen aufnehmen.

Weitere Informationen siehe Funktionsparameter SIZE - Größe des Message Buffer Pool in der Operations-Dokumentation.

## Syntax-, Compiler- und Laufzeitverbesserungen

- TO-Klausel beim READ BY ISN-Statement

- Verbesserter Fehlermeldungstext bei Fehlern mit Angabe einer Parameterposition

- Validierung von Parametern beim CALL-Statement

### TO-Klausel beim READ BY ISN-Statement

Für den Einsatz mit Adabas for Mainframe ab Version 8.6 wurde das `READ BY ISN`-Statement um eine `TO`-Klausel erweitert, die einen Endwert angibt, der an Adabas übergeben und dort ausgewertet wird.

Weitere Informationen siehe `READ`-Statement in der Statements-Dokumentation.

Um eine Adabas-Datenbank der Version 8.6 zu wählen, können Sie das Makro `NTDB` oder den Profil-Parameter `DB` verwenden. Weitere Informationen über das Makro `NTDB` und den Profil-Parameter `DB` finden Sie unter DB - Datenbanktypen und -optionen in der Parameter-Referenz-Dokumentation.

Die neue Funktionalität kann bereits mit Adabas for Mainframes Version 8.5 genutzt werden, sofern der Adabas zap AY854180 angewendet wurde. Eine solche Datenbank muss außerdem mit dem Makro `NTDB` oder dem Profil-Parameter `DB` als Typ `ADAV86` gekennzeichnet sein, um anzuzeigen, dass die neue Adabas 8.6-Funktionalität für diese Datenbank verfügbar ist.

### Verbesserter Fehlermeldungstext bei Fehlern mit Angabe einer Parameterposition

Wenn ein Parameter, der in einem Statement `INPUT USING MAP`, `CALLNAT` oder `PERFORM` (externe Subroutine) übergeben wird, nicht mit dem entsprechenden Parameter im aufgerufenen Objekt übereinstimmt, wird ein Fehler ausgelöst, der die Positionsnummer des fehlerhaften Parameters zeigt.

Da es nicht immer einfach ist, die Parametervariable nur anhand der Position zu identifizieren, wird in einigen Fehlermeldungen nun auch der Feldname angegeben.

Die Änderung betrifft die erste Einfügeposition (:1:) in Fehlermeldungen (NAT0936, NAT0937, NAT0938, NAT0648, NAT0965, NAT0966, NAT0969).

Anmerkung
Der Variablenname ist nur zur Kompilierzeit verfügbar. Wenn er zur Laufzeit empfangen wird, dann wird der zusätzliche Feldname nicht eingefügt. Es wird empfohlen, die Kompilierungsoption `PCHECK=ON` zu verwenden, um von dieser Verbesserung zu profitieren.

Beispiel:

    CALLNAT  'SUBPGM'  #P1  #P2  #P3  /* assume #P3 does not match to parameter 3 in SUBPGM

    Old: NAT0936 Format/length conflict in parameter 3         (Subprogram SUBPGM/../../..)
    New: NAT0936 Format/length conflict in parameter 3  (#P3)  (Subprogram SUBPGM/../../..)

### Validierung von Parametern beim CALL-Statement

Die Generierung von Parametern in einem `CALL`-Statement ist jetzt präziser. Die empfangene Parameteradressenliste hat jetzt genau die Form, die den im `CALL`-Statement angegebenen Parametern entspricht. In früheren Natural-Versionen wurden die Parameteradressen früherer `CALL`-Statements nicht immer korrekt gelöscht, wenn die Adressliste für ein neues `CALL`-Statement generiert wurde. Dies konnte dazu führen, dass nach den übergebenen Parametern zusätzliche Parameteradressfelder gefunden wurden. Wenn ein aufgerufenes 3GL-Programm fehlerhaft ist und auf mehr Parameter zugreift als in dem `CALL`-Statement angegeben, kann dies nun zu Laufzeitfehlern jeglicher Art führen, die vor Natural 9.2.3 nicht aufgetreten sind.

Wenn in einem `CALL`-Statement ab Natural-Version 9.2.3 ein Fehler auftritt, sollten Sie die in dem `CALL`-Statement verwendeten Parameter überprüfen. Eine Nichtübereinstimmung der Parameter zwischen dem aufrufenden Natural-Objekt und dem aufgerufenen 3GL-Programm ist die häufigste Ursache für diesen Fehler. In diesem Fall müssen Sie das Natural-Programm entsprechend anpassen.

## Programmiersprache

- Neue oder geänderte Statements

- Systemvariablen

### Neue oder geänderte Statements

> PARSE JSON

>   Das Statement `PARSE JSON` ermöglicht es, JSON-Dokumente innerhalb eines Natural-Programms zu parsen.

>   Weitere Informationen siehe Abschnitt PARSE JSON im Kapitel Statements für den Internet- und JSON-XML-Zugriff im Leitfaden zur Programmierung und Kapitel PARSE JSON in der Statements-Dokumentation.

### Systemvariablen

> Systemvariablen für JSON

>   Die folgenden Systemvariablen sind hinzugekommen. Sie stehen bei Verwendung des Statements `PARSE JSON` zur Verfügung und gelten nur im Kontext der aktuellen Verarbeitungsschleife:

>   `*PARSE-LEVEL (r)`

>   `*PARSE-INDEX (r)`

>   `*PARSE-TYPE (r)`

>   Weitere Informationen siehe Abschnitt Systemvariablen mit Bezug zu JSON in der Systemvariablen-Dokumentation.

## Systemkommandos

- LASTMSG

- SCAN

### LASTMSG

Beim Systemkommando `LASTMSG` wird jetzt hinter jeder Meldung das Datum und die Uhrzeit angezeigt, wann der betreffende Fehler auftrat.

Zusätzliche Optionen:

PF1 | (Help) | Hilfe aufrufen.
PF2 | (Clear) | Alle Meldungen löschen.
PF5 | (Info) | Ausführliche Informationen zum Fehler.

Weitere Informationen siehe Systemkommando `LASTMSG` in der Natural Systemkommandos-Dokumentation.

### SCAN

Das Systemkommando `SCAN` setzt nun das Scannen/Ersetzen auch dann fort, wenn für ein Objekt der Natural-Fehler NAT0886 (Storage overflow in extended buffer/Speicherüberlauf im erweiterten Pufferspeicher) aufgetreten ist. Die Objekte, die aufgrund dieses Fehlers nicht gescannt/ersetzt werden konnten, werden als übersprungene Objekte ("Skipped Objects") bezeichnet.

Weitere Informationen siehe Systemkommando `SCAN` in der Systemkommandos-Dokumentation.

## Dienstprogramme (Utilities)

- Object Handler

- SYSTP

### Object Handler

Das Datenbereichsformat der Übertragungsoptionen wurde um den Wert `D` erweitert, um Datenbereiche (Data Areas) in das `DEFINE DATA`-Format zu konvertieren. Aufgrund der erweiterten Parameterwerte muss das Profilverwaltungskommando `UPDATE` ausgeführt werden, um die Änderungen im Object Handler-Profil zu aktualisieren. Weitere Informationen finden Sie unter dem erweiterten Datenbereichsformat der Option Transfer, das im Abschnitt Übertragungsoptionen unter Einstellungen beschrieben ist. Weitere Informationen über das Profil im Dienstprogramm Object Handler finden Sie im Kapitel Profileinstellungen (Profile Settings) in der Debugger und Dienstprogramme (Utilities)-Dokumentation.

### SYSTP

Die Anzeige der Lizenzinformationen wurde verbessert. Ein neues Untermenü zeigt die verfügbaren Produktlizenzen an.

Weitere Informationen siehe Natural-Lizenzinformationen im Kapitel Allgemeine SYSTP-Funktionen in der Debugger und Dienstprogramme (Utilities)-Dokumentation.

## Profilparameter

- NATBUFFER - Buffer-Größe

### NATBUFFER - Buffer-Größe

Beim Natural Buffer Pool (`TYPE=NAT`) betrug der Standardwert für die Buffer-Größe bisher nur 256 KB. Dies könnte zu dem Fehler NAT0777 `Buffer pool full` führen. Daher wurde der Standardwert jetzt auf 2 MB erhöht.

Weitere Informationen siehe Funktionsparameter NATBUFFER - Buffer-Größe, Modus, Textblockgröße im Abschnitt Funktionsparameter des globalen Buffer Pools in der Operations-Dokumentation.

## Anwendungsprogrammierschnittstellen

Die folgenden Natural-Anwendungsprogrammierschnittstellen (APIs) sind in der System-Library `SYSEXT` hinzugekommen oder geändert worden.

API | Aufgabe | Verbesserung
--- | --- | ---
`USR9206N` | Schreiben eines SMF-Datensatzes | Diese neue API schreibt einen z/OS System Management Facility (SMF)-Datensatz in den SMF-Dataset. Der SMF-Datensatz wird unabhängig davon geschrieben, ob die Anwendung derzeit im Modus Task Control Block (TCB) oder im Modus Service Request Block (SRB) auf einem zIIP läuft. Ein Wechsel zwischen den beiden Modi wird nicht durchgeführt. Der Authorized Service Manager (`NATASM`) muss installiert und gestartet sein. Weitere Informationen finden Sie in der entsprechenden IBM-Dokumentation (Writing SMF records).
`USR9207N` | Informationen über Zaps abrufen | Diese neue API liefert Informationen über installierte Zaps für Natural und abhängige Produkte. Außerdem kann eine Liste der installierten Produkte abgerufen werden, die Zaps haben können.

### On this page

- Operations und Performance
- Syntax-, Compiler- und Laufzeitverbesserungen
- Programmiersprache
- Systemkommandos
- Dienstprogramme (Utilities)
- Profilparameter
- Anwendungsprogrammierschnittstellen