Natural unter Com-plete/SMARTS

#### Search Results

Search

# 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:

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

- Verwendung der Abend-Exits

- Speichernutzung

- Unterstützung für Backend-Programme

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

- Asynchrone Natural-Verarbeitung unter Com-plete/SMARTS

- Aufrufen von Natural aus Benutzerprogrammen

- Behandlung von Speicherschutzschlüsseln

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

- Verwendung der SMARTS-Server-Umgebung

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

- Unterstützung von Natural for zIIP unter Com-plete

#### Verwandte Dokumente:

- Einzelheiten zum Produkt Com-plete siehe Com-plete-Dokumentation

- Online-Verarbeitung in der Natural-System Architecture-Dokumentation

- Natural Com-plete/SMARTS-Schnittstelle auf z/OS installieren in der Installation für z/OS-Dokumentation

- SYSTP Utility in der Natural-Debugger und Dienstprogramme-Dokumentation

- Natural unter Com-plete/SMARTS-Benutzerabbruchcodes in der Meldungen und Codes-Dokumentation

## 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`-Ziele (Destinations) 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

- Druckdatei/Arbeitsdatei (Print File/Work File)

### 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:

- `CMPRINT` - Primäre Reportausgabe

- `CMSYNIN` - Primäre Kommandoeingabe

- `CMOBJIN` - Eingabe für Natural-`INPUT`-Statements

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

### On this page

- Treiberparameter für die Natural Com-plete/SMARTS-Schnittstelle
- Verwendung der Abend-Exits
- Speichernutzung
- Unterstützung für Backend-Programme
- Unterstützung von Com-plete in Natural-Batch-Läufen
- Asynchrone Natural-Verarbeitung unter Com-plete/SMARTS
- Aufrufen von Natural aus Benutzerprogrammen
- Behandlung von Speicherschutzschlüsseln
- Unterstützung für die Behandlung von User Exits während der Sitzungsinitialisierung
- Verwendung der SMARTS-Server-Umgebung
- Unterstützung für das Recoverable Session Handling von Com-plete
- Unterstützung von Natural for zIIP unter Com-plete