Neue und geänderte Merkmale des Basisprodukts Natural


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

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

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

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

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

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.