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

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 Software AG Product Versions Supported by Natural in der aktuellen Natural-Freigabemitteilung (Release Notes) für Großrechner.

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)

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 under CICS, Front-End Invoked via LINK in der Natural TP Monitor Interfaces-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, Support of Natural Profile Parameter PROGRAM in der Natural TP Monitor Interfaces-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

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 Installing Natural CICS Interface on z/OS in der Installation -Dokumentation.

    Bezüglich der LE-Befähigung von Natural unter CICS siehe auch die entsprechenden Installationsschritte und den Abschnitt Natural CICS Interface and IBM Language Environment (LE) in der TP Monitor Interfaces-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

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.