Unterstützung und Nutzung von Natural- und Nicht-Natural-Objekten

#### Search Results

Search

# Unterstützung und Nutzung von Natural- und Nicht-Natural-Objekten

Dieser Abschnitt behandelt die folgenden Themen:

- Unterstützung für Natural-Objekte aus früheren Natural-Versionen

- Konventionen für den Aufruf von Backend-Programmen

- LE-Subprogramme

- Externe Sortierprogramme

## Unterstützung für Natural-Objekte aus früheren Natural-Versionen

Natural-Objekte, die in einer früheren Version von Natural erstellt wurden, können in der aktuellen Natural-Version ausgeführt werden, ohne dass Anpassungen an den Objekten oder ein Konvertierungs- oder Migrationsverfahren erforderlich sind. Dies gilt auch für Objekte, die mit dem Natural Optimizer Compiler katalogisiert wurden.

Ausführliche Informationen zu den unterstützten Natural-Versionen finden Sie unter Von Natural unterstützte Produkt-Versionen in der aktuellen Natural-Freigabemitteilung (Release Notes).

## Konventionen für den Aufruf von Backend-Programmen

In diesem Abschnitt werden die Konventionen beschrieben, die für den Aufruf eines Backend-Programms gelten.

Anmerkung
Außer unter z/OS im Batch-Modus wird ein angegebenes Backend-Programm nicht aufgerufen, wenn die Natural-Sitzung auf einem Natural Development Server ausgeführt wird.

In diesem Abschnitt werden die folgenden Themen behandelt:

- Aufrufkonventionen für Backend-Programme (Batch-Modus)

- Spezielle Aspekte unter CICS

- Spezielle Aspekte unter IMS TM

- Beispiele für Backend-Programme

### Aufrufkonventionen für Backend-Programme (Batch-Modus)

Wenn der Profilparameter `PROGRAM` angegeben ist (oder während einer Natural-Sitzung durch Aufruf des Subprogramms `CMPGMSET` in der Library `SYSEXTP` dynamisch gesetzt wird), wird ein Backend-Programm aufgerufen, und zwar unabhängig davon, ob die Sitzung normal oder abnormal beendet wurde. Das Backend-Programm wird unter Verwendung der Standard-OS-Linkage-Konventionen aufgerufen und muss die Kontrolle an seinen Aufrufer (Caller) zurückgeben.

Wenn ein Backend-Programm verfügbar ist, gibt Natural keine Meldungen zur Sitzungsbeendigung aus. Benutzer-Rückgabewerte ungleich Null, die über `operand1` des Natural `TERMINATE`-Statements angegeben werden, werden durch die Natural-Fehlermeldung NAT9987 angezeigt.

Ein Parameterbereich mit den folgenden Informationen wird an das Backend-Programm übergeben:

- ein Vollwort, das den Natural-System- oder Benutzer-Rückgabecode enthält,

- eine Natural-Abbruchmeldung mit 72 Zeichen,

- ein Vollwort, das die Länge der Natural-Abbruchdaten enthält (oder Null),

- die mit `operand2` des `TERMINATE`-Statements übergebenen Abbruchdaten (falls vorhanden).

Der Backend-Programm-Parameterbereich ist mindestens 80 Bytes lang. Das Makro `NAMBCKP`, das ein `DSECT`-Layout des Backend-Programm-Parameterbereichs enthält, ist in der Natural-Source-Library enthalten und kann von Assembler-Backend-Programmen verwendet werden.

### Spezielle Aspekte unter CICS

Unter CICS werden die Daten der Backend-Programmparameter in der COMMAREA und in der TWA übergeben. In der TWA werden nur 80 Bytes übergeben, die den Rückgabecode und die Meldung enthalten, während das Längenfeld eine Adresse enthält, die auf den vollständigen Backend-Programm-Parameterbereich zeigt. Die gleiche TWA wird auch bereitgestellt, wenn Natural über `EXEC CICS LINK` aufgerufen wurde. Siehe auch Natural unter CICS, Frontend-Aufruf über LINK in der TP-Monitor-Schnittstellen-Dokumentation.

Wenn im Makro `NTCICSP` der Schlüsselwort-Subparameter `BACKRPL=ALL` gesetzt ist (abhängig von der installierten Version der Natural-CICS-Schnittstelle), werden nur die Terminierungsdaten in der COMMAREA übergeben.

### Spezielle Aspekte unter IMS TM

Unter IMS TM sind die Aufrufkonventionen für ein Backend-Programm in einer dialogorientierten Umgebung anders. Dort wird das Backend-Programm über einen Programm-zu-Programm-Schalter aufgerufen, und der Name des Backend-Programms wird als IMS TM-Transaktionscode verwendet. In diesem Fall wird die Natural-Umgebung beendet, bevor der Programm-zu-Programm-Wechsel stattfindet. Siehe Natural under IMS TM, Unterstützung des Natural-Profilparameters PROGRAM in der TP-Monitor-Schnittstellen-Dokumentation.

### Beispiele für Backend-Programme

Die folgende Tabelle enthält eine Reihe von Beispielprogrammen:

Beispiel für ein Backend-Programm für Batch- und TSO-Umgebungen in COBOL:
    LINKAGE  SECTION
      01     BACKEND-PARM-AREA.
      02     TERMINATION-RETURN-CODE            PIC S9(8) COMP.
      02     TERMINATION-MESSAGE                PIC X(72).
      02     TERMINATION-DATA-LENGTH            PIC S9(8) COMP.
      02     TERMINATION-DATA                   PIC X(100)
    ...
    PROCEDURE DIVISION USING BACKEND-PARM-AREA
Beispiel für ein Backend-Programm für Batch- und TSO-Umgebungen in Assembler:
    BACKPROG CSECT
             SAVE   (14,12)
             LR     11,15
             USING  BACKPROG,11
             L      2,0(1)
             USING  BCKPARM,2
    ...
             RETURN (14,12)
    BCKPARM  NAMBCKP
             END
Beispiel für ein Backend-Programm für CICS in Assembler:
    L        2,DFHEICAP
    USING    BCKPARM,2
    ...
    BCKPARM  NAMBCKP
             END
Beispiel-Backend-Programm XNATBACK für den Batch-Modus: Ein Beispielprogramm für den Batch-Modus ist unter dem Namen `XNATBACK` in der Natural-Source-Library enthalten. Dieses Programm gibt die Natural-Abbruchmeldung sowohl in `SYSPRINT` als auch auf der Bedienerkonsole aus. Eventuelle Abbruchdaten werden in `SYSPRINT` im Dump-Format ausgegeben.

## LE-Subprogramme

Dieser Abschnitt gilt für z/OS-Batch-Modus, CICS, Com-plete, IMS TM und TSO. Er enthält Informationen darüber, wie Natural Subprogramme der IBM Language Environment (LE) unterstützt.

Folgende Themen werden behandelt:

- Unterstützung für IBM LE-Subprogramme

- Natural-Unterstützung für LE-Subprogrammen aktivieren

- Übergabe von LE-Laufzeitoptionen

- LE-Abbruchbehandlung

### Unterstützung für IBM LE-Subprogramme

Um IBM Language Environment (LE)-Subprogramme zu unterstützen, muss Natural so vorbereitet sein, dass das `CALL`-Statement in der Lage ist, LE-Subprogramme aufzurufen. LE-Subprogramme können statische (Profilparameter `CSTATIC` und `RCA`) oder dynamische Subprogramme von Natural sein.

Dynamische LE-Subprogramme von Natural werden über den Dienst CEEFETCH LE geladen und durch den Dienst CEERELES entsprechend der Einstellung des Profilparameters `DELETE` gelöscht.

### Natural-Unterstützung für LE-Subprogrammen aktivieren

Um IBM Language Environment (LE)-Subprogramme von Natural aus aufrufen zu können, ist Folgendes erforderlich:

1. Bei der Installation der Natural CICS-Schnittstelle muss der umgebungsabhängige Nukleus generiert werden. Siehe dazu die entsprechenden Installationsschritte in Natural CICS-Schnittstelle auf z/OS installieren in der Installation für z/OS -Dokumentation.

   Bezüglich der LE-Befähigung von Natural unter CICS siehe auch die entsprechenden Installationsschritte und den Abschnitt Natural CICS-Schnittstelle und IBM Language Environment (LE) in der TP-Monitor-Schnittstellen-Dokumentation.

   Für die LE-Befähigung von Natural unter Com-plete muss der Schlüsselwort-Subparameter `LE370` des Makros `NTCOMP` auf `ON` gesetzt werden (siehe Parameter-Referenz-Dokumentation). Siehe auch das Kapitel IBM Language Environment Considerations in der Com-plete-Dokumentation.

2. Die IBM LE-Laufzeitmodule müssen während des Linkage-Editor-Schritts automatisch aus der IBM LE-Bibliothek eingebunden werden. Es dürfen keine unaufgelösten Externals vorhanden sein, die mit "CEE" beginnen. Setzen Sie nicht die Linkage-Editor-Option `NCAL`.

3. Unter z/OS Batch, IMS TM und TSO kann Natural auch LE-Hauptprogramme aufrufen, allerdings nur als dynamische Subprogramme. Wenn ein LE-Hauptprogramm dynamisch aufgerufen werden soll, muß dies durch die Angabe von `SET CONTROL 'P=L'` vor dem `CALL`-Statement gekennzeichnet werden. Andernfalls wird die von Natural erzeugte LE-Umgebung durch das LE-Hauptprogramm beendet.

### Übergabe von LE-Laufzeitoptionen

> Unter z/OS Batch und TSO:

>   Sie haben drei Möglichkeiten:

>   1. Sie können LE-Laufzeitoptionen durch Verwendung des Parameters `PARM=` in Ihrer JCL übergeben. Dabei gilt Folgendes:

>      - Die Laufzeitoptionen, die an die Hauptroutine übergeben werden, müssen von einem Schrägstrich (/) gefolgt werden, um sie von den Natural-Parametern zu trennen.

>      - If you want to use a slash within your Natural parameters, then your Natural parameters must begin with a slash.

>        Wenn Sie innerhalb Ihrer Natural-Parameter einen Schrägstrich verwenden wollen, müssen Ihre Natural-Parameter mit einem Schrägstrich beginnen.

>      Beispiel:

>          PARM='/ID=/,...'

>   2. Sie können LE-Laufzeitoptionen übergeben, indem Sie den `CEEOPTS`-Eingabedatensatz in Ihrer JCL verwenden. Durch die Verwendung von `CEEOPTS` sind die LE-Laufzeitoptionen auch für alle Subtasks verfügbar. Die Verwendung von `CEEOPTS` ist insbesondere bei einem Natural RPC-Server im Batch-Modus erforderlich.

>      Beispiel:

>          //CEEOPTS  DD   *
>          POSIX(ON)
>          /*

>   3. Sie können LE-Laufzeitoptionen definieren, indem Sie das mitgelieferte Quellcode-Modul `NATLEOPT` ändern und neu assemblieren. Wenn Sie zum Beispiel Subprogramme haben, die noch im 24-Bit-Modus laufen, setzen Sie `SYSPARM(RMODE24)` als Parameter für den Assembler, anstatt `NATLEOPT` zu ändern.

>      Wenn Sie andere spezifische Anforderungen für Ihre LE-Unterprogramme haben, können Sie die gewünschten LE-Optionen für das `CEEXOPT`-Makro im Quellcode-Modul `NATLEOPT` hinzufügen.

> Unter IMS TM:

>   Sie können LE-Laufzeitoptionen übergeben, indem Sie das regionsspezifische Laufzeitoptionen-Lademodul `CEEROPT` in Ihrer `STEPLIB`-Verkettung bereitstellen. Darüber hinaus muss die LE Library Routine Retention Initialization Routine `CEELRRIN` in der `PREINIT`-Liste Ihrer Region-JCL vorhanden sein.

>   Im Folgenden finden Sie ein Beispiel für die Definition eines `CEEROPT-Lademoduls`, das die Ausführung von `AMODE(24)`-Subprogrammen ermöglicht:

>       CEEROPT  CSECT
>       CEEROPT  AMODE ANY
>       CEEROPT  RMODE ANY
>                CEEXOPT ALL31=((OFF),OVR),                                    X
>                      STACK=((128K,128K,BELOW,KEEP,512K,128K),OVR)
>                END   CEEROPT

### LE-Abbruchbehandlung

Natural unterstützt die LE-spezifische Benutzerfehlerbehandlung, d.h. wenn ein LE-Subprogramm einen Benutzerfehler-Handler definiert hat, erhält dieser Handler die Kontrolle, wenn ein Abbruch, eine Programmprüfung oder eine andere LE-Fehlerbedingung im Subprogramm auftritt. Wenn kein LE-Anwenderfehler-Handler definiert wurde, reagiert Natural entsprechend der Einstellung des Profilparameters `DU`.

In diesem Fall wird eine spezielle Fehlermeldung (NAT0950 bei `DU=OFF` oder NAT9967 bei `DU=ON`) ausgegeben, die die LE-Fehlernummer angibt. Außerdem wird die entsprechende LE-Fehlermeldung auf `CEEMSG` ausgegeben und ein LE-Snap-Dump gemäß der LE-Laufzeitoption `TERMTHDACT` in `CEEDUMP` geschrieben.

Anmerkung
Im Falle von `DU=FORCE` wird die Abbruchbehandlung von Natural deaktiviert und die LE-Fehlerbehandlung findet statt, auch wenn zum Zeitpunkt des Abbruchs kein LE-Subprogramm aktiv ist. In diesem Fall wird dringend empfohlen, die LE-Laufzeitoption `TERMTHDACT(UAIMM)` anzugeben, um alle erforderlichen Diagnoseinformationen zu erhalten.

## Externe Sortierprogramme

Dieses Dokument enthält Informationen zur Verwendung externer Sortierprogramme mit Natural.

Die folgenden Themen werden behandelt:

- Unterstützung von externen Sortierprogrammen

- Besondere Aspekte

### Unterstützung von externen Sortierprogrammen

Das Natural-Statement `SORT` kann optional ein externes Sortierprogramm aufrufen, das die eigentliche Sortierung durchführt. Ein externes Sortierprogramm wird verwendet, wenn im Natural-Parametermodul der Schlüsselwort-Subparameter `EXT` des Makros `NTSORT` auf `ON` gesetzt ist.

Natural unterstützt alle externen Sortierprogramme, die der in den Handbüchern des jeweiligen Betriebssystems dokumentierten Sortierschnittstelle entsprechen.

Die Anforderungen (z.B. Platz und Datasets) sind identisch mit denen für die Ausführung eines 3GL-Anwendungsprogramms (z.B. COBOL, PL/I), das das Sortierprogramm des Betriebssystems aufruft, und können je nach verwendetem externen Sortierprogramm variieren.

Die Kommunikation mit dem externen Sortierprogramm erfolgt über die User-Exit-Routinen E15 und E35. Folglich benötigt Natural die Datasets `SORTIN` und SORTOUT nicht.

### Besondere Aspekte

Es können alle externen Sortierprogramme verwendet werden, die die erweiterte Parameterliste unterstützen.

### On this page

- Unterstützung für Natural-Objekte aus früheren Natural-Versionen
- Konventionen für den Aufruf von Backend-Programmen
- LE-Subprogramme
- Externe Sortierprogramme