Natural unter Com-plete/SMARTS

Dieses Kapitel beschreibt die Funktionalität der Natural Com-plete/SMARTS-Schnittstelle (Produktcode NCF) sowie den Betrieb und die einzelnen Komponenten von Natural in einer Com-plete-Umgebung.

Anmerkung
SMARTS ist ein Akronym für "Software AG Multi-Architecture Runtime System". Es stellt eine Laufzeitschicht dar, die es ermöglicht, POSIX-ähnliche Anwendungen auf Großrechner-Betriebssystemen auszuführen. Die Produkte der Software AG kommunizieren mit dem Betriebssystem über die SMARTS-Schicht.

Die folgenden Themen werden behandelt:

Verwandte Dokumente:


Treiberparameter für die Natural Com-plete/SMARTS-Schnittstelle

Informationen zu den Treiberparametern, die für die Natural Com-plete/SMARTS-Schnittstelle zur Verfügung stehen, finden Sie in der Beschreibung des Profilparameters COMP oder des Parametermakros NTCOMP in der Parameter-Referenz-Dokumentation. COMP (bzw. NTCOMP) besteht aus mehreren Schlüsselwort-Subparametern, deren Verwendung in den folgenden Abschnitten erläutert wird.

Verwendung der Abend-Exits

Die ABEXIT-Exits können generell deaktiviert werden, indem der Schlüsselwort-Subparameter SPIEA auf OFF gesetzt wird.

Der ABEXIT-Exit wird während der EOJ-Behandlung von Com-plete bei einer abnormalen Programmabbruchverarbeitung aufgerufen.

Standardmäßig wird ein 0CX-Abbruch von der Exit-Routine ABEXIT interpretiert.

  • Bei der Ausführung mit DU=ON wird ein Speicher-Dump generiert und die Natural-Sitzung mit der Fehlermeldung NAT9974 ordnungsgemäß beendet.

  • Bei der Ausführung mit DU=SNAP wird wie bei DU=ON ein Speicher-Dump generiert, aber die Sitzung wird nicht beendet.

    Anmerkung
    Nach dem Dump wird die Natural-Sitzung fortgesetzt, als ob sie mit DU=OFF laufen würde.

  • Bei der Ausführung mit DU=ABEND wird ein Speicher-Dump der Natural-Sitzung generiert, ohne die Sitzung zu beenden.

  • Bei der Ausführung mit DU=FORCE wird die Exit-Routine ABEXIT deaktiviert, und es wird ein sofortiger Dump während der Com-plete-Ausführung erstellt.

  • Wenn LE370=ON im NTCOMP-Makro angegeben ist oder dynamisch angegeben wird und der Abbruch auftritt, während ein LE-Programm die Kontrolle hat, werden vom Benutzer geschriebene oder sprachspezifische Condition-Handler ignoriert. Der Abbruch wird von der Exit-Routine ABEXIT behandelt, und es tritt die Natural-Fehlermeldung NAT0950 oder NAT9967 auf.

Ist DU=OFF, antwortet Natural mit der Fehlermeldung NAT0950, NAT0954, NAT0955 oder NAT0956, und das gesamte Abbruch-PSW und die Register 0 bis 15 sind im IOCB mit dem Offset x'290' enthalten.

Speichernutzung

Bei der Sitzungsinitialisierung wird der mit dem Schlüsselwort-Subparameter NTHSIZE definierte Speicherplatz je nach Einstellung des Schlüsselwort-Subparameters THABOVE als Thread GETMAIN oberhalb oder unterhalb der 16-MB-Grenze für die Verwendung durch Natural zugeordnet.

Der Natural-Profilparameter WPSIZE bestimmt die Größe der Workpools unterhalb und oberhalb der 16 MB-Grenze. Standardmäßig ist die Größe des unterhalb gelegenen Subpools auf 32 KB eingestellt.

Daher müssen Sie den Natural-Com-plete-Frontteil mit det Com-plete Utility ULIB katalogisieren, RG-Größe = 36 KB oder größer.

Die verbleibenden Bereiche innerhalb der Com-plete-Thread-Teile unterhalb und/oder oberhalb (Com-plete ULIB RG=specification and/or THABOVESIZE=specification) werden von Com-plete für Folgendes verwendet:

  • Benutzer-Subroutinen,

  • Vergrößerung von variablen Puffern innerhalb des Natural-Threads,

  • Unterprodukte, die "physische" GETMAIN-Anforderungen ausführen. Dadurch wird die Zuordnung des Natural-Workpool erzwungen.

Weitere Einzelheiten zu den Parametern ULIB RG und THABOVESIZE finden Sie in der Com-plete Utilities-Dokumentation.

Unterstützung für Backend-Programme

Natural übergibt den folgenden String an ein Backend-Programm:

  • den Natural-Rückgabecode (Vollwort),

  • die Natural-Beendigungsmeldung (A72),

  • die Länge des Beendigungsbereichs (Vollwort),

  • die Beendigungsdaten.

Dieser String wird durch das Makro NAMBCKP gemapped.

Das Quellcode-Modul XNCFBACK ist ein Beispiel für ein Natural-Backend-Programm in einer Com-plete-Umgebung. Es ist als reentranter Code geschrieben und kann als RESIDENTPAGE-Programm oder einmal pro Benutzer geladen werden.

Unterstützung von Com-plete in Natural-Batch-Läufen

Wenn Sie die Com-plete-Dienste in einem Natural-Batch-Lauf verwenden, bleibt die Batch-Benutzerkennung am Ende des Batch-Laufs angemeldet.

Um diese Situation zu vermeiden, müssen Sie das Modul COMPBTCH aus der Com-plete Distribution Library in den Natural-Batch-Nukleus aufnehmen. Dadurch wird der Einstiegspunkt für das Modul EOJ aufgelöst, das am Ende des Natural-Batch-Jobs zur Beendigungsbereinigung aufgerufen wird.

Das Modul NCFAM wird für den Zugriff auf Com-plete-Druck-/Arbeitsdateien verwendet. Er muss beim Verlinken des Natural-Nukleus zusammen mit dem Modul COMPBTCH aus der Com-plete Distribution Library eingebunden werden.

Asynchrone Natural-Verarbeitung unter Com-plete/SMARTS

Die asynchrone Natural-Verarbeitung wird im Kapitel Asynchrone Verarbeitung in der Natural-Operations-Dokumentation behandelt. Allerdings gelten einige zusätzliche Überlegungen, wenn Natural unter Com-plete ausgeführt wird.

Stellen Sie sicher, dass für eine asynchrone Natural-Sitzung geeignete SENDER- und OUTDEST-Destinationen angegeben sind. Andernfalls führt jede Ausgabe zu einer abnormalen Beendigung.

Zusätzlich zu den Com-plete-Terminalkennungen für SENDER und OUTDEST werden die folgenden Schlüsselwörter von der Natural Com-plete/SMARTS-Schnittstelle unterstützt:

Profilparameter Mögliche Werte Erläuterung
SENDER DUMMY Ausgabe wird ignoriert.
TID Ausgabeziel.
LUNAME
OUTDEST DUMMY Ausgabe wird ignoriert.
CONSOLE Ausgabeziel.
LUNAME

Standardmäßig wird für die Ausgabe einer asynchronen Natural-Sitzung, die unter Com-plete läuft, das 3270-Datenstrom-Protokoll verwendet.

Ein Beispiel zum Starten einer asynchronen Natural-Transaktion unter Com-plete finden Sie in der Library SYSEXTP, Programm ASYNCOMP.

Aufrufen von Natural aus Benutzerprogrammen

Mit der Com-plete-Funktion FETCH können Sie Natural aus einem Benutzer-Frontend-Programm unter Com-plete aufrufen. Einzelheiten finden Sie im Com-plete Application Programmer's Manual.

Behandlung von Speicherschutzschlüsseln

Wenn Sie den Schutzmodus zwischen Com-plete und Ihrem Anwendungsprogramm verwenden möchten, müssen Sie den Natural-Profilparameter SKEY im Natural-Parametermodul auf OFF setzen. Das Anwendungsprogramm läuft im entsprechenden Thread Key

Sie können die Performance des Anwendungsprogramms unter Com-plete verbessern, indem Sie die Funktion Storage-Protection Override auf Ihrer Maschine aktivieren.

Setzen Sie den Thread Key im Com-plete-Startparameter THREAD-GROUP für Ihre Natural-Untergruppe auf 9.

Der Frontend-Treiber versetzt die Natural-Anwendung automatisch in den privilegierten Modus, wenn der Thread Key 9 ist, und verwendet die SPKA-Anweisung für die Schlüsselumschaltung anstelle der Com-plete-Funktion MODIFY mit den Funktionscodes THRD/TCS.

Die Speicherschlüsselumschaltung wird bei keinem Natural- oder Editor-Buffer-Pool-Aufruf durchgeführt.

Unterstützung für die Behandlung von User Exits während der Sitzungsinitialisierung

Während der Sitzungsinitialisierung ist es möglich, benutzerspezifische Sitzungsinformationen über die Aktivierung eines User Exit an Natural zu übergeben. Der Exit wird aufgerufen, bevor Natural initialisiert wurde, nachdem die Treiber/IOCB-Initialisierung abgeschlossen ist.

Der Treiber übergibt als Parameter die Adresse des IOCB in Register 1, wohingegen der Exit durch die Com-plete-Funktionen COLOAD/CODEL aktiviert/deaktiviert wird. Einzelheiten finden Sie im Com-plete Application Programmer's Manual.

Das Quellcode-Modul NCFUEXIT ist ein Beispiel für einen User Exit. Das User Exit-Modul kann mit dem Schlüsselwort-Subparameter EXIT definiert werden.

Verwendung der SMARTS-Server-Umgebung

Mit der SMARTS-Server-Umgebung ist es möglich, das portable Dateisystem von SMARTS als Container für Ein- und Ausgabedateien sowie für Datensätze auf dem nativen Dateisystem zu verwenden. Es hängt von der Einstellung der SMARTS-Parameter CDI_DRIVER und MOUNT_FS ab, ob sich die Umgebungsvariable auf das portable Dateisystem oder auf ein natives Dateisystem bezieht. Weitere Informationen finden Sie im SMARTS Installation and Operations Manual.

Wenn keine Umgebungsvariablen definiert sind, wird auf die normalen Datasets zugegriffen, wie im Abschnitt Von Natural im z/OS-Batch-Modus verwendete Datasets in der Natural Operations-Dokumentation.

Die folgenden Themen werden behandelt:

Eingabe/Ausgabe

Die Ein-/Ausgabe in der SMARTS-Server-Umgebung wird von der DLL NCF92IO durchgeführt.

NCF92IO muss in den residenten Bereich geladen werden. Wenn NCF92IO in den Thread des Anwendungsprogramms geladen wird, wird die Natural-Sitzung mit der Fehlermeldung NAT9980 beendet.

Unterstützte Umgebungsvariablen:

Diese Umgebungsvariablen werden im Folgenden beschrieben.

CMPRINT - Primäre Reportausgabe

Syntax:

CMPRINT=/pathname/filename[/],[mode]

Bedeutung:

pathname Pfadname

Gibt den Speicherort der Ausgabedatei an.

Bezieht sich pathname auf ein portables Dateisystem, wird der Pfad erstellt. Bezieht er sich auf einen nativen Dataset, muss dieser verfügbar sein.

filename Dateiname

Gibt den Namen der Ausgabedatei an.

Ein Stern (*) als Dateiname bedeutet, dass der Dateiname aus der aktuellen Benutzerkennung generiert wird.

Wenn pathname auf das native Dateisystem verweist und filename mit dem Schrägstrich (/) abgeschlossen ist, wird auf den sequenziellen Dataset pathname/filename zugegriffen. Wenn er nicht mit "/" abgeschlossen ist, wird auf das Member filename im Dataset pathname zugegriffen.

mode Modus

Gibt den Dateimodus an, wie er in der C-Bibliothek für die Funktion fopen() dokumentiert ist. Die Standardeinstellung ist w (write).

Beispiel: Angenommen, /fs/ ist auf das native Dateisystem und /pfs/ auf ein portables Dateisystem gemapped.

CMPRINT=/fs/natural/test/print Es wird auf das Member print im Dataset natural.test zugegriffen.
CMPRINT=/fs/natural/test/print/ Es wird auf den sequenziellen Dataset natural.test.print zugegriffen.
CMPRINT=/pfs/natural/test/print Es wird auf das Member print in /natural/test des portablen Dateisystems zugegriffen.

CMSYNIN - Primäre Kommandoeingabe

Syntax:

CMSYNIN=/pathname/filename[/]

Gibt den Pfadnamen pathname und den Dateinamen filename der entsprechenden Kommandoeingabedatei an.

Wenn pathname auf das native Dateisystem verweist und filename mit dem Zeichen "/" abgeschlossen ist, wird auf den sequenziellen Dataset pathname/filename zugegriffen. Wenn er nicht mit einem Schrägstrich (/) abgeschlossen ist, wird auf das Member filename im Dataset pathname zugegriffen.

CMOBJIN - Eingabe für Natural-INPUT-Statements

Syntax:

CMOBJIN=/pathname/filename[/]

Gibt den Pfadnamen pathname und den Dateinamen filename der entsprechenden Dateneingabedatei an.

Wenn pathname auf das native Dateisystem verweist und filename mit dem Zeichen "/" abgeschlossen ist, wird auf den sequenziellen Dataset pathname/filename zugegriffen. Wenn er nicht mit einem Schrägstrich (/) abgeschlossen ist, wird auf das Member filename im Dataset pathname zugegriffen.

Druckdatei/Arbeitsdatei (Print File/Work File)

Der Zugriff auf Druck- und Arbeitsdateien in der SMARTS-Serverumgebung wird von der DLL NCF92APS durchgeführt.

NCF92APS muss in den residenten Bereich geladen werden. Wenn NCF92APS in den Thread des Anwendungsprogramms geladen wird, wird die Natural-Sitzung mit der Fehlermeldung NAT9980 beendet.

Unterstützte Umgebungsvariablen:

  • NAT_PRINT_ROOT - Pfad zu den Druckerdateien in einem PFS oder nativen Dateisystem.

  • NAT_WORK_ROOT - Pfad zu den Arbeitsdateien in einem PFS oder nativen Dateisystem.

Syntax-Beispiel:

NAT_WORK_ROOT=/qualifier/path1/path2

Bedeutung:

qualifier Kennzeichner

Bestimmt, ob auf ein portables SMARTS-Dateisystem oder ein natives, vom Betriebssystem verwaltetes Dateisystem zugegriffen wird.

path1/path2 Pfad

Ist der Pfad zum Speicherort der Datei im entsprechenden Dateisystem.

Unterstützung für das Recoverable Session Handling von Com-plete

Um das unter z/OS verfügbare Recoverable Session Handling von Com-plete zu nutzen, müssen Sie das Modul NCFROLLS mit Ihrem Frontend-Modul verlinken. NCFROLLS dient als Schnittstelle zum Natural Roll Server, der gestartet werden muss, um wiederherstellbare Sitzungen zu unterstützen.

Außerdem muss das Modul ATRRCSS nicht mit Ihrem Frontend-Modul verlinkt werden, da das RRS-Schnittstellenmodul Teil der Com-plete-Routine TLOPUSER ist. Wenn eine konversationelle Terminal-E/A durchgeführt werden soll, wird der Natural Thread in komprimierter Form in das Natural Roll File geschrieben, um die Wiederaufnahme der Natural-Sitzung nach einem Com-plete-Neustart zu ermöglichen. Bei nicht-konversationellen Terminal-Ein-/Ausgaben und bei Anwendungen mit gesperrtem Thread wird der Natural Thread nicht in das Natural Roll File geschrieben. Folglich können solche Sitzungen nicht wiederhergestellt werden.

Unterstützung von Natural for zIIP unter Com-plete

Das Natural Com-plete/SMARTS Interface unterstützt Natural for zIIP unter Com-plete, wenn die in der Natural for zIIP-Dokumentation beschriebenen Voraussetzungen erfüllt sind.

Unterstützung von zIIP-fähigem Natural Roll Server

Das Natural Com-plete/SMARTS Interface unterstützt den Natural Roll Server. Um diese Funktion zu nutzen, müssen Natural for zIIP unter Com-plete und der Natural Roll Server NATRSMvr verwendet werden. In diesem Fall wird die Komprimierung und Dekomprimierung des Natural Threads auf den IBM System z Integrated Information Processors (zIIPs) ausgeführt, wodurch die CPU-Belastung der General Central Processors (GCPs) reduziert wird.

Um die Verwendung des Natural Roll Servers zu aktivieren, brauchen Sie nur den Natural Roll Server NATRSMvr zu starten.

Anmerkung
Die Notation vr steht für die jeweilige Produktversion (siehe auch Version im Glossar).