Funktionsweise der Natural CICS-Schnittstelle

Dieses Kapitel beschreibt die Funktionsweise der Natural CICS-Schnittstelle. Folgende Themen werden behandelt:


Natural CICS-Schnittstelle

Die Natural CICS-Schnittstelle steuert die Sitzungsinitialisierung, den Roll-In-Neustart (im pseudokonversationellen Modus), die Terminal-Ein-/Ausgaben, den Datenbankzugriff, die Abbruchverarbeitung (Abend), die Aufrufe des Natural Local Buffer Pools sowie das Laden, Verlinken und Freigeben von externen Subprogrammen. Darüber hinaus werden alle Aus-/Einspeicherungsoperationen (Roll Out/Roll In) von der Natural CICS-Schnittstelle ausgeführt.

Umgebungsabhängiger Natural Nukleus für CICS

Der umgebungsabhängige Natural-Nukleuss (Beschreibung siehe Umgebungsabhängiger Nukleus in der Natural-Installation für z/OS-Dokumentation) für CICS besteht aus den folgenden Komponenten:

  • Objektmodul NCINUC
    Dieses Modul enthält die Systemsteuerungslogik der Natural CICS-Schnittstelle und die Logik, die für den Aufruf von Betriebssystem- und CICS-Diensten erforderlich ist.

    Dieses Modul enthält auch die Einstiegsroutine, die insbesondere die Verlinkung der Natural CICS-Schnittstelle mit der LE-Umgebung (Language Environment) vorbereitet. Siehe Natural CICS-Schnittstelle und IBM Language Environment (LE).

  • Makro NTCICSP
    Das Makro NTCICSP enthält Natural CICS-Schnittstellenparameter, die für Laufzeit- und Systemumgebungsgenerierungsoptionen erforderlich sind. Das Modul ist nicht von der CICS-Version abhängig, obwohl einige der Parameter je nach CICS-Version gesetzt werden sollten.

    Das Makro NTCICSP befindet sich im Natural-Parametermodul. Siehe CICSP - Umgebungsparameter für Natural CICS-Schnittstelle in der Parameter-Referenz-Dokumentation).

  • Objektmodul NCIXCALL.
    Dieses Modul ist ein separates Programm in CICS, d.h. es ist nicht mit dem Natural-Nukleus verlinkt, da es über EXEC CICS LINK von 3GL-Programmen aufgerufen wird, die von Natural aufgerufen werden. Siehe Natural 3GL CALLNAT-Schnittstelle verwenden in der Operations-Dokumentation. Das Modul ist unabhängig von der CICS-Version.

CICS Shutdown unter Natural

Der umgebungsabhängige Natural-Nukleus kann in den CICS PLTSD für die Ausführung von CICS Quiesce Stage 1 oder 2 aufgenommen werden.

  • Bei Ausführung in der Quiesce Stage 1 erzwingt die Natural-CICS-Schnittstelle die Beendigung aller aktiven Natural-Sitzungen, bevor die SYSTP-Snapshot-Funktion ausgeführt wird (Beschreibung siehe Debugger und Dienstprogramme-Dokumentation).

  • Bei Ausführung in der Quiesce Stage 2 führt die Natural-CICS-Schnittstelle die SYSTP-Snapshot-Funktion aus.

Die Natural CICS-Schnittstelle enthält eine Logik, die (über einen CICS LINK) von einem Knotenfehlerprogramm mit der entsprechenden CICS-Terminaleingabeadresse auch in der CICS COMMAREA aufgerufen wird.

Systemsteuerung unter CICS

Zu den CICS-spezifischen Natural-Merkmalen gehören die Organisation des dynamischen Speichers in Threads und die zusätzliche Fähigkeit, diese Threads so zu behandeln, dass das Natural CICS System Control Program den dynamischen Speicher effizienter verwalten kann.

Das Natural CICS System Control Program wurde ursprünglich entwickelt, um die 64 KB GETMAIN-Grenze unter CICS zu überwinden. Es bietet vollständige Speicherzuordnungs- und -verwaltungsfunktionen, einschließlich Roll File I/O-Operationen und Verschiebungsfunktionen für pseudo-konversationelle Benutzer.

Um die pseudokonversationellen Verarbeitungsmöglichkeiten von Natural mit CICS zu verbessern, verwendet das System Control Program Threads, d.h. eine zusammenhängende Speicherplatzmenge, der für jeden Benutzer eingerichtet wird. Dank dieser Struktur kann Natural den dynamischen Speicher unter minimaler CICS-Beteiligung verwalten.

Die folgenden Ausführungen zu Struktur und Funktionsweise des System Control Program vermitteln Ihnen ein umfassendes Verständnis der Systemsteuerung. Sie sollten diesen Mechanismus verstehen, bevor Sie mit der Installation von Natural unter CICS beginnen.

Natural-System-Komponenten im dynamischen CICS-Speicher

Scenario 1:

Einzelne CICS-Region

Das folgende Diagramm zeigt die Natural-System-Komponenten des Natural-Systems, die sich im dynamischen CICS-Speicher befinden. Diese Komponenten werden unter den folgenden Überschriften erläutert:

Szenario 1 gilt für den lokalen Betrieb von Natural in einer einzelnen CICS-Anwendungsregion.

Weitere Szenarien sind möglich. Die folgenden drei Diagramme zeigen Kombinationen von z/OS-Systemen, CICS-Regionen, dem Natural Roll Server und dem Natural Authorized Services Manager (Beschreibung siehe Operations-Dokumentation).

Scenario 2:

Einzelnes z/OS mit einzelner CICS-Region, einzelner Roll Server

Scenario 3:

Einzelnes z/OS mit mehreren CICS-Regionen, einzelnem Roll Server und (optional) Authorized Services Manager

Scenario 4:

Mehrere z/OS mit mehreren CICS-Regionen, mehreren Roll Servern/Authorized Services Managern

Erforderliche Parametereinstellungen für die obigen Szenarien

Modul Scenario 1 Scenario 2 Scenario 3 Scenario 4
NTBPI (BPI) TYPE=NAT,SIZE= nnn nicht zutreffend nicht zutreffend nicht zutreffend
NCMDIR CICSPLX NO NO YES/MODE YES/MODE
NCMDIR SIPSERV NO NO/YES YES YES
NCMDIR ROLLSRV NO YES YES YES
Roll Server

CF-Strukturname

nicht zutreffend keiner keiner name
Authorized Services Manager/SIP nicht zutreffend nicht zutreffend SIP-Slot-Nummer/Größe XCF-Gruppenname/CF-Strukturname

Die Natural CICS-Schnittstelle erfordert eine SIP-Slotgröße von 256 Bytes.

Anmerkung
Für die Szenarien 2, 3 und 4 muss bei der allerersten Natural-Sitzung, die die NCI-Umgebung initialisiert, der Profilparameter SUBSID auf den Wert des entsprechenden Roll Server und/oder Authorized Services Manager gesetzt werden.

Natural-Speicher-Threads unter CICS

Ein Thread ist ein zusammenhängender Speicherbereich, aus dem Natural seinen gesamten benötigten Speicher anfordert. Dabei kann es sich entweder um Speicher handeln, der von mehreren Natural-Benutzern gemeinsam genutzt wird, oder, in 31-Bit-Modus-Umgebungen, um CICS-Benutzerspeicher oberhalb der 16 MB-Grenze, der für eine bestimmte Aufgabe vorgesehen ist.

Jeder Speicher-Thread kann als der "Adressraum" für einen Natural-Benutzer angesehen werden. Jede vom Natural-Nukleus ausgegebene Speicherzuweisungsanforderung wird an das Systemsteuerungsprogramm weitergeleitet, damit sie vom Speicher-Thread erfüllt wird.

Speicher-Threads werden bei der Initialisierung der Natural-CICS-Schnittstelle zugeordnet. Sie werden in einer CICS-Region oder in einer CICS-Partition zugewiesen; in diesem Fall handelt es sich um permanente (gemeinsam genutzte) Threads, oder sie werden beim Start einer Natural-CICS-Task zugewiesen. In diesem Fall handelt es sich um exklusive Threads (task-abhängiger Benutzerspeicher).

Die Technik der Speicher-Threads wurde in Natural aus folgenden Gründen eingeführt:

  • Um die 64-KB-Beschränkung von CICS für Benutzerspeicher in Systemen, die nicht im 31-Bit-Modus arbeiten, zu überwinden.

  • Um das Aus-/Einspeichern (Rolling) zu optimieren (früher musste jeder Teil des Benutzerspeichers auf das Roll-Medium geschrieben werden. Jetzt, da es einen zusammenhängenden Speicherbereich gibt, wird dieser Bereich komprimiert, indem die betreffenden Teile vor dem Rolling aneinandergefügt werden).

  • Die Natural-CICS-Schnittstelle versucht, alle GETMAIN-Anforderungen einer Natural-Sitzung von ihrem Thread aus zu erfüllen. Dies ist schneller als GETMAIN-Anforderungen durch CICS-Dienstaufrufe. Dies gilt insbesondere für CICS-Kommandoebenenaufrufe, da auch das CICS EXEC Interface Program (EIP) beteiligt ist.

Bei jeder Bildschirm-E/A wird ein Thread von der besitzenden Task freigegeben. Dies gilt sowohl für konversationelle als auch für pseudokonversationelle Tasks. Wenn eine Sitzung wieder aufgenommen wird, wird ihr Speicher wieder in einen Thread verlagert (Roll In), es sei denn, der Speicher ist noch vorhanden, d.h. keine andere Task hat den Thread zwischenzeitlich benutzt.

Der Natural-Thread-Auswahlalgorithmus gleicht die Thread-Nutzung so aus, dass die Roll I/O-Operationen minimiert werden. Das heißt, je mehr Threads es gibt, desto größer ist die Chance, die alten Daten zu finden und damit ein Roll In zu verhindern. Je mehr Threads es jedoch gibt, desto mehr Paging muss das Betriebssystem durchführen, um alle Threads effizient im realen Speicher zu halten.

Threads werden je nach ihrer Größe und ihrem Typ gruppiert, d.h. je nachdem, ob sie als permanent gemeinsam genutzter Speicher oder über eine GETMAIN-Anforderung vorab zugewiesen wurden. Die Entscheidung, welche Art von Thread-Gruppe zu verwenden ist, wird durch den CICS-Transaktionscode bei der Sitzungsinitialisierung gesteuert. Alle Speicher-Threads, die zur gleichen Gruppe gehören, haben die gleiche Größe.

Der Thread sollte so klein wie möglich definiert werden; siehe auch die Funktion Buffer Usage Statistics des Dienstprogramms SYSTP (Beschreibung siehe Debugger und Dienstprogramme-Dokumentation). Der Thread muss jedoch immer noch groß genug sein, um die Sitzung mit den größten Größen zu halten.

Wenn Sie über getrennte Natural-Entwicklungs- und -Produktionsumgebungen verfügen, sollten Sie in der Regel mehr kleinere Threads in der Produktionsumgebung (um Produktionsanforderungen so schnell wie möglich zu bedienen) und eine geringere Anzahl größere Threads in der Entwicklungsumgebung haben (da Natural-Programmierer normalerweise größere Natural-Größen benötigen und längere "Denkpausen" einlegen).

Bei der allerersten Natural-Sitzung werden alle permanenten (gemeinsam genutzten) Threads zugeordnet.

Natural Roll Facilities unter CICS

Da permanente Speicher-Threads von mehreren Benutzern gemeinsam genutzt werden und größere, über GETMAIN zugeordnete Threads nicht zu lange gehalten werden sollten, gibt eine Natural-Task ihren Thread bei jeder Terminal-Ein-/Ausgabe frei. Zuvor müssen jedoch die Benutzerdaten gespeichert werden, um die Natural-Sitzung nach erfolgter Terminal-E/A wieder starten zu können.

Die Sitzungsdaten können gespeichert werden, unter Verwendung

  • des Natural Roll Server mit seinem lokalen Roll Buffer und den Roll Files,

  • der CICS Roll Facilities.

Siehe auch die verschiedenen Komponentenszenarien. Weitere Informationen finden Sie unter Roll Server in der Natural-Operations-Dokumentation.

CICS Roll Facilities

Die CICS Roll Facilities sind lokale CICS-Speichereinrichtungen. Dabei kann es sich entweder um CICS-Haupt- oder Hilfsspeicher oder um VSAM Relative Record Data Sets (RRDS) handeln, die der Benutzer zuvor für CICS definiert hat. Diese Dateien ermöglichen Natural die Speicherung des komprimierten dynamischen Speichers eines Benutzers, wenn eine Ausspeicherung (Roll Out) stattfindet.

Jede CICS-Dienstanforderung verursacht einen CICS-System-Overhead. Je größer also die CISIZE/Datensatzgröße für die Roll Facility ist, desto weniger CPU-Overhead entsteht, da weniger CICS-Dienstaufrufe zum Auslagern einer Natural-Sitzung erforderlich sind. Andererseits bedeutet eine größere CISIZE-/Datensatzgröße auch, dass mehr VSAM-Pufferspeicher für die Roll Facility zugewiesen wird.

Weitere Informationen zu Roll Facilities finden Sie unter Natural CICS Performance-Überlegungen.

Warnung:
Wenn der Roll Server verwendet wird, sind die CICS Roll Facilities nicht verfügbar.

Lokaler Natural Buffer Pool unter CICS

Der lokale Natural Buffer Pool enthält alle Natural-Module während der Ausführung und Kopien von Natural-Modulen, nachdem diese aus der Adabas- oder VSAM-Systemdatei geladen wurden.

Der lokale Buffer Pool muss groß genug sein, um die Anzahl der Natural-Programmladevorgänge zu minimieren. Ist der lokale Buffer Pool jedoch zu groß, bedeutet dies eine Verschwendung von Speicherplatz und kann zu Paging-Overhead führen.

Der lokale Buffer Pool wird als GETMAIN-Speicher zugewiesen, d.h. EXEC CICS GETMAIN SHARED bei allen CICS Transaction Server-Versionen. In der Partition oder im entsprechenden CICS-DSA muss ausreichend Speicherplatz vorhanden sein.

Ein lokaler Buffer Pool ist optional, da Natural auch mit einem globalen Buffer Pool laufen kann, der mit anderen Natural-Umgebungen wie Natural im Batch-Modus, Natural unter TSO oder Natural unter IMS gemeinsam genutzt werden kann.

Systemsteuerungssätze der Natural CICS-Schnittstelle im CICS-Zwischenspeicher

Die Natural CICS-Schnittstelle vermerkt ihre permanenten GETMAIN-Speicher, d.h. Speicher, die über EXEC CICS GETMAIN SHARED in NCI-Systemsteuerungsdatensätzen im CICS-Hauptzwischenspeicher angelegt wurden.

Diese Systemsteuerungssätze werden aus zwei Gründen aufbewahrt:

  1. Systemwiederherstellung
    Da alle NCI-bezogenen Speicher mit dem NCI-Systemverzeichnis verkettet sind, können die Systemsteuerungssätze verwendet werden, um die Speicherketten im Falle einer Speicherbeschädigung wiederherzustellen.

  2. Bereinigung
    Zur Bereinigung des alten NCI-Systems nach CICS NEWCOPY des NCI-Systemverzeichnismoduls.

    Bei der Initialisierung der NCI-Systemumgebung prüft NCI, ob Systemsteuerungsdatensätze vorhanden sind, und gibt, falls welche gefunden wurden, die zugehörigen permanenten Speicher vor der Installation der neuen Umgebung frei.

Die Namen der temporären CICS-Speicherwarteschlangen dieser Steuerungsdatensätze (Control Record, CR) lauten prefixXCR, wobei prefix das gemeinsame Präfix für Natural CICS-Komponenten ist (siehe Schlüsselwort-Subparameter PREFIX des Makros NTCICSP) und X ein hexadezimaler Wert ist, nämlich

Wert Erläuterung
x'01' für den Hauptsystemsteuerungsdatensatz, der Informationen über die NCI-Systemverzeichniserweiterung, gemeinsam genutzte (Shared) Threads (TYPE=SHR) und sekundäre SIR-Blöcke enthält (siehe NCMDIR-Generierungsparameter USERS).
x'02' für den parms-Systemsteuerungsdatensatz mit Informationen über die Parameter des gemeinsam genutzten NCI-Profils, die per Dateieingabe abgerufen werden (siehe den Parameter PRMDEST des Makros NTCICSP).
x'03' für den pools-Systemsteuerungsdatensatz, der Informationen über alle zur NCI-Umgebung gehörenden lokalen Pools enthält.

Wichtig
Da die NCI-Systemsteuerungssätze eine lokale NCI-Umgebung beschreiben, müssen diese CICS-Hauptzwischenspeicherwarteschlangen auch im CICS-AOR aufbewahrt werden. Dies gilt insbesondere für die Ausführung von Natural in CICSPlex.

NCIDIREX - Systemverzeichnismodulnamen-Exit-Schnittstelle

Der Name des Systemverzeichnismoduls der Natural CICS-Schnittstelle lautet standardmäßig prefixCB (siehe Schlüsselwort-Subparameter PREFIX des Makros NTCICSP), sofern er nicht explizit über den Schlüsselwort-Subparameter DIRNAME des Makros NTCICSP angegeben wird.

Die Exit-Schnittstelle NCIDIREX dient zum Setzen/Ändern des Namens des Natural CICS-Schnittstellen-Systemverzeichnismoduls zur Laufzeit. Dadurch ist es möglich, denselben NCI-Treiber bzw. dasselbe Natural-Parametermodul zu verwenden, aber verschiedene NCI-Umgebungen (Thread-Gruppen/Thread-Größen usw.) zu nutzen, indem auf verschiedene Systemverzeichnismodule zugegriffen wird, die z.B. von der CICS-Systemkennung oder der Transaktionskennung abhängen.

Die ersten 5 Zeichen des Verzeichnismodulnamens werden auch als Teil der CICS-Warteschlangennamen für den Zwischenspeicher verwendet, die sich auf die jeweilige NCI-Umgebung beziehen. Wenn also mehr als eine Natural CICS-Umgebung in einer CICS-Region betrieben wird, müssen sich die entsprechenden Systemverzeichnismodulnamen in den ersten 5 Zeichen unterscheiden.

Die Exit-Schnittstelle NCIDIREX wird unter Verwendung der Standard-Linkage-Konventionen (Register 13, 14, 15 und 1) aufgerufen, aber zusätzlich mit den Registern 4 und 5, die CICS-EIB- und EISTG-Adressen enthalten, damit der Exit CICS-Dienste aufrufen kann.

Das Quellcodemodul XNCIDIRX enthält ein Beispiel für einen Systemverzeichnismodulnamen-Exit.

NCIDTPEX - DTP-Terminal-Ein-/Ausgabe-Exit-Schnittstelle

Natural Sessions können auch über Distributed Transaction Processing (DTP), d.h. über APPC- oder MRO-Conversations, ausgeführt werden. Formal ist solchen Natural-Sitzungen ein Terminal zugeordnet (CICS TCTTE), allerdings handelt es sich dabei um ein Terminal aus einem Pool (siehe CICS SESSIONs / CONNECTIONs), und das "Terminal" kann sich von einem Natural-Dialogschritt zum anderen ändern, d.h. solche "Terminals" können nicht als Schlüssel (Key) verwendet werden, um den Kontext einer Sitzung über eine "Bildschirm-Ein-/Ausgabe" zu speichern. Aus diesem Grund werden solche Natural-Sitzungen standardmäßig als asynchrone Sitzungen (TTYPE=ASYN/ASYL) behandelt, und Natural kommuniziert nicht mit diesen Terminals, da sie keine 3270-Geräte sind.

Mit NCIDTPEX steht jedoch eine Exit-Schnittstelle zur Verfügung, über die Sie die Natural-Sitzung in konversationeller Form ausführen können:

  • Wenn dieser Exit verfügbar ist, baut Natural eine Terminalsitzung auf (TTYPE=3270).

  • Die Natural-Terminal-Ein- und Ausgabeoperationen (RECEIVE/SEND/CONVERSE) werden nicht von Natural verarbeitet, sondern zur Weiterverarbeitung an den Exit übergeben.

Die Quellcode-Module XNCIDTPX und XNCITIOX enthalten Beispiele für DTP-Terminal-Exits.

Verwendung von NCIDTPEX

Sie können den Generierungsparameter FDTPX des Makros NTCICSP auf ON setzen, um zu bewirken, dass ein potenzieller DTP-Exit für alle Terminaltypen aufgerufen wird. Dies kann z.B. hilfreich sein, wenn Sie die Terminalausgabe analysieren wollen, bevor eine EXEC CICS SEND-Operation ausgeführt wird, oder wenn Sie Bildschirm-Ein-/Ausgaben unterdrücken wollen.

NCITIDEX - Terminalkennung-Exit-Schnittstelle

Die aus 4 Zeichen bestehende CICS-Terminalkennung, die pro CICS-Region eindeutig ist, wird von der Natural CICS-Schnittstelle als Teil des Sitzungsschlüssels (Session Key) verwendet (SIP-Server, Roll Server, CICS-Zwischenspeicherwarteschlangen). Aus Gründen der Kompatibilität mit Natural wird für die Natural CICS-Schnittstelle (NCI) ein 8-Zeichen-Feld verwendet. Diese NCI-Terminalkennung kann über mehrere CICS-Regionen hinweg eindeutig gemacht werden, indem die CICS-Systemkennung an die CICS-Terminalkennung angehängt wird (siehe Schlüsselwort-Subparameter UNITID des Makros NTCICSP).

Alternativ kann die Terminalkennung-Exit-Schnittstelle NCITIDEX verwendet werden, um diese NCI-Terminalkennung zu setzen. Es ist zu beachten, dass für CICS-Zwecke (z.B. Namen von Zwischenspeicherwarteschlangen usw.) nur die ersten vier Zeichen der NCI-Terminalkennung verwendet werden. Daher müssen diese 4-Zeichen-Strings eindeutig sein.

Die Exit-Schnittstelle NCITIDEX ist vor allem für Session-Manager unter CICS interessant, um mehrere Natural-Sessions zu unterscheiden, die auf demselben physischen Terminal laufen.

Die durch eine Exit-Schnittstelle NCITIDEX gesetzte Terminalkennung wird von der Natural CICS-Schnittstelle "extern" verwendet und ist der Standardwert für die Natural-Systemvariable *INIT-ID zur Verwendung in Natural. (Die Systemvariable *INIT-ID kann nachträglich durch den User Exit NCIUIDEX / NATUEX1 geändert werden.)

Der Aufruf des Schnittstellen-Exits NCITIDEX erfolgt unter Verwendung der Standard-Linkage-Konventionen (Register 13, 14, 15 und 1), aber zusätzlich unter Verwendung der Register 4 und 5, die CICS-EIB- und EISTG-Adressen enthalten, damit dieser Exit CICS-Dienste aufrufen kann.

Das Quellcodemodul XNCITIDX enthält ein Beispiel für eine Terminalkennung-Exit-Schnittstelle.

Einschränkungen

Bestimmte Funktionen der Natural CICS-Schnittstelle funktionieren nicht, wenn die ersten vier Zeichen der logischen Terminalkennung nicht mit dem physischen Terminal übereinstimmen.

Dies hat zur Folge:

  • Sie können keine Nachricht an ein logisches Terminal via Message Switching senden.

  • Sie können das Dienstprogramm SYSTP oder das Knotenfehlerprogramm (Node Error Program, NEP) nicht zum Abbau (Flush) einer Sitzung an einem logischen Terminal verwenden.

NCIUIDEX - Benutzerkennung-Exit-Schnittstelle

Natural stellt die User Exit-Schnittstelle NATUEX1 bereit, mit der Sie feststellen können, ob ein Benutzer berechtigt ist, Natural zu benutzen, und mit der Sie verschiedene Natural-Systemvariablen setzen können.

Immer wenn eine Natural-Benutzersitzung gestartet wird, wird der Schnittstellen-Exit NATUEX1 über die Standard-Linkage-Konventionen aufgerufen (Register 13, 14, 15 und 1).

In einer CICS-Umgebung reichen die Standard-Linkage-Konventionen nicht aus, um CICS-Dienstaufrufe abzusetzen und die Adressierbarkeit von CICS-Kontrollblöcken zu erreichen.

Daher stellt die Natural CICS-Schnittstelle das Lademodul NCIUEX1 als NATUEX1-Exit-Schnittstelle in einer CICS-Umgebung zur Verfügung. Dieses Modul stellt lediglich die Adressierbarkeit in CICS her und ruft den NCIUIDEX-Schnittstellen-Exit auf, indem es die Standard-Linkage-Konventionen (Register 13, 14, 15 und 1) verwendet, darüber hinaus aber auch CICS-bezogene Adressen in anderen Registern übergibt: R4 (EIB), R5 (EISTG), R6 (TCTTE).

Wenn Sie also Anfragen stellen wollen, die die Adressierbarkeit der CICS-Umgebung voraussetzen, sollten Sie die NCIUIDEX-Benutzerkennung-Exit-Schnittstelle und nicht die NATUEX1-Standard-Schnittstelle verwenden.

Das Quellcodemodul XNCIUIDX enthält ein Beispiel für einen Benutzerkennung-Exit.

Wichtig
Bei jeder Installation eines neuen CICS-Releases muss die Benutzerkennung-Exit-Schnittstelle NCIUIDEX neu zusammengesetzt und verlinkt werden.

NCIXIDEX - Transaktionskennung-Exit-Schnittstelle

Standardmäßig verwendet Natural immer die Transaktionskennung, mit der die pseudokonversationelle Sitzung gestartet wurde. Diese Transaktionskennung kann in Natural mit CALLNAT CMTRNSET (Library SYSEXTP) geändert werden. Die Transaktionskennung-Exit-Schnittstelle NCIXIDEX kann ebenfalls verwendet werden, um die Kennung der pseudokonversationellen Natural-Transaktion zu ändern.

Der Aufruf der Transaktionskennung-Exit-Schnittstelle NCIXIDEX erfolgt über die Standard-Linkage-Konventionen (Register 13, 14, 15 und 1), aber zusätzlich über die Register 4 und 5, die CICS-EIB- und EISTG-Adressen enthalten, damit der Exit CICS-Dienste aufrufen kann.

Das Quellcode-Modul XNCIXIDX enthält ein Beispiel für einen Transaktionskennung-Exit.

Anmerkung
Die Transaktionskennung-Exit-Schnittstelle wird nur vor pseudokonversationellen Bildschirm-Ein-/Ausgaben unter der Kontrolle der Natural CICS-Schnittstelle aufgerufen, d.h. der Exit wird nicht bei konversationellen Bildschirm-E/A (z.B. SET CONTROL 'N') oder wenn Natural von einem Frontend-Programm über EXEC CICS LINK aufgerufen wird, aufgerufen.

Debugging-Möglichkeiten bei der Natural CICS-Schnittstelle

Die folgenden Themen werden behandelt:

Verwendung des Parameters TPF

Der dynamische Parameter TPF=(TPF1,TPF2,TPF3,TPF4,TPF5,TPF6,TPF7,TPF8) kann für treiberspezifische Optionen durch positionsgebundene Angabe von 1 bei der entsprechenden Option gesetzt werden.

Option Erläuterung
TPF1 Aufruf des Adabas-Linkage-Moduls über EXEC CICS LINK mit Adabas-Parameter in TWA und CICS COMMAREA statt über DCI.

Ermöglicht das Debugging von Problemen im Zusammenhang mit Adabas über CEDF.

TPF2 Bei dieser Parametereinstellung werden alle CMTRACE-Trace-Sätze zusätzlich zum CICS-Trace (Meldungsnummer NCI0110) in die Natural CICS Interface Message Destination (siehe Schlüsselwort-Subparameter MSGDEST des Makros NTCICSP) geschrieben.

Anmerkung
Zum Schreiben von Trace-Sätzen ist der Profilparameter ETRACE=ON oder ETRACE=(ON,NOGTF) erforderlich.

TPF3 Dump des gesamten Natural Buffer Pool.

Mit dieser Parametereinstellung wird der gesamte Natural Buffer Pool in einen CICS-Transaktions-Dump aufgenommen.

Anmerkung
Normalerweise wird der Natural Buffer Pool in einem Dump nicht benötigt, da alle für eine Sitzung relevanten Objekte aus dem Buffer Pool ohnehin ausgewertet werden. Daher kann diese Option nur im Falle eines Buffer Pool-Problems erforderlich sein.

TPF4 Dump des gesamten Editor Buffer Pool.

Mit dieser Parametereinstellung wird der Editor Buffer Pool in einen CICS-Transaktions-Dump einbezogen.

TPF6 Behandlung von Terminal-E/A-Fehlern durch NCI.

Mit dieser Parametereinstellung gibt NCI bei Terminal-Ein-/Ausgabe-Fehlern die Kontrolle nicht an Natural zurück, sondern behandelt sie selbst, was zu einer der Fehlermeldungen NT06 bis NT13 führt.

TPF7 Zwangsweiser Abbruch (Force Abend) im Falle von NCI-Systemfehlern.

Mit dieser Parametereinstellung wird bei den Fehlermeldungen NSxx, NIxx, NRxx oder NUSnnnn ein Programm-Check erzwungen. Dies ist besonders hilfreich, wenn ein Debugging-Tool zum Abfangen von Abbrüchen aktiv ist. Dann kann der Fehler direkt online ausgewertet werden.

Bei der Angabe von 0 (die auch weggelassen werden kann) wird die entsprechende Option nicht gesetzt, z.B.:

TPF=(0,0,0,1) was gleichbedeutend mit TPF=(,,,1) ist.

Asynchrone Natural-Sitzungen verwenden

Wenn die ersten 5 Zeichen im dynamischen Parameterstring zum Starten von Natural ASYN, sind, baut die Natural CICS-Schnittstelle immer eine asynchrone Natural-Sitzung auf, unabhängig davon, ob eine Terminal- oder eine Nicht-Terminal-Sitzung gestartet wird.

Dies kann zu Testzwecken hilfreich sein, insbesondere mit EDF oder mit anderen installierten Debugging-Tools.

TWA-Nutzung bei der Natural CICS-Schnittstelle

Die Natural-Transaktionen sind alle mit einer TWA-Größe von 128 Byte definiert, obwohl die Natural CICS-Schnittstelle nur die ersten 88 Byte der CICS-Transaktions-Work-Area (TWA) für die Natural-Verarbeitung der folgenden Funktionen verwendet:

  • Wenn Adabas wegen der Adabas-Parameterliste (bis zu 32 Byte) aufgerufen wird, speichert die Natural CICS-Schnittstelle den TWA-Inhalt vor dem Aufruf von Adabas und stellt ihn nach dem Adabas-Aufruf wieder her.

  • Wenn externe Programme für die Adresszeiger der Parameterliste (bis zu 20 Byte, siehe Natural-Statement CALL) aufgerufen werden, speichert die Natural CICS-Schnittstelle den TWA-Inhalt vor dem Aufruf des externen Programms und stellt den TWA-Aufrufanteil nach dem Aufruf des externen Programms wieder her.

  • Wenn ein Backend-Programm für die Beendigungsnachricht und eventuelle Beendigungsdaten (80 Bytes, siehe Konventionen für den Aufruf von Backend-Programmen in der Natural-Operations-Dokumentation) aufgerufen wird

  • Bei der Rückgabe der Kontrolle an einen "LINK"-Front-End-Aufrufer für die Beendigungsmeldung und die eventuellen Beendigungsdaten am Ende der Sitzung und beim vollständigen Zurücksetzen des Beendigungsnachrichtenbereichs auf einen niedrigen Wert am Ende des Natural-Dialogschritts, d.h. 80 Bytes am Ende der Sitzung und des Dialogschritts.

  • Für die Übergabe von LE-Informationen beim Start der CICS-Task (bis zu 88 Bytes, nur beim Start der Task).

Benutzerprogramme (Frontend-, Backend-, so genannte externe Programme) können ebenfalls die Vorteile der CICS TWA nutzen, um neben Natural zu kommunizieren, aber sie sollten nicht den von Natural verwendeten TWA-Teil verwenden. In solchen Fällen wird dringend empfohlen, die TWA-Größe der Natural-Transaktionen zu erhöhen und TWA-Teile außerhalb der ersten 128 Bytes zu verwenden.