Eine aktive Natural-Sitzung nutzt CICS-Ressourcen wie Thread-Speicher, Roll Facility-Einträge (d.h. Datensätze in einem VSAM RRDS File, in einer CICS-Zwischenspeicherwarteschlange oder im Hauptspeicher) sowie Roll Server Slots. Diese Ressourcen werden von der Natural CICS-Schnittstelle zugeordnet und korrekt freigegeben, sobald eine von der Natural CICS-Schnittstelle kontrollierte Sitzung normal oder abnormal beendet wird.
Falls eine Natural-Sitzung nicht von der Natural CICS-Schnittstelle kontrolliert wird, hilft ein Knotenfehlerprogramm (Node Error Program, NEP) bei der korrekten Freigabe der belegten Ressourcen.
In diesem Kapitel werden das CICS-Knotenfehlerprogramm und Aspekte von Zeitüberschreitungen (Timeouts) behandelt.
Die folgenden Themen werden behandelt:
Siehe auch:
Informationen zur Installation eines CICS-Knotenfehlerprogramms (Node Error Program) finden Sie im entsprechenden Abschnitt unter Installing Natural CICS Interface on z/OS in der Natural Installation-Dokumentation.
In den folgenden Situationen erhält die Natural CICS-Schnittstelle beim Beenden der Sitzung keine Kontrolle und kann daher die von der Sitzung noch belegt gehaltenen Ressourcen nicht ordnungsgemäß freigeben:
Ein Nicht-Natural-Programm, das von Natural aufgerufen wird, gibt ein -Kommando aus, um die CICS Task abnormal zu beenden.
Einige CICS-Monitoring-Produkte bieten Tools zum Bereinigen von CICS Tasks an, so dass ein von der Anwendung gesetzter Exit zur abnormalen Beendigung umgangen werden kann.
Ein Benutzer trennt ein Terminal von der CICS Region (durch Ausschalten des Geräts oder Verwendung einer geeigneten Session Manager-Funktion), während die entsprechende Natural-Sitzung in CICS zu diesem Zeitpunkt nicht aktiv ist (pseudo-konversationelle Bildschirm-Ein-/Ausgabe).
Ein Benutzer war in der Natural-Terminalsitzung für den Zeitraum
inaktiv, der mit dem TIMEOUT-Parameter im CICS-Segment
des RACF-Benutzerprofils angegeben wurde.
Die Natural CICS-Schnittstelle bietet einige Wiederherstellungsmechanismen zur Rückerholung aus solchen Situationen zu erholen.
Beispiel:
Immer wenn eine neue Natural-Sitzung gestartet werden soll, prüft Natural, ob eine andere Sitzung mit der gleichen Terminalkennung aktiv ist. Wenn eine solche Sitzung existiert, wird sie logisch beendet, und alle ihre Ressourcen werden freigegeben, bevor die neue Sitzung gestartet wird.
Wenn jedoch COMARET=OFF
im Makro NTCICSP gesetzt ist, werden die Informationen zur
Wiederaufnahme einer Natural-Sitzung in einem CICS-Zwischenspeicherdatensatz
gespeichert, in dem die Terminalkennung Teil des Namens der
Speicherwarteschlange ist. Dies hat zur Folge, dass ein anderer CICS-Benutzer,
der versucht, eine Natural-Sitzung mit dieser Terminalkennung zu starten, die
alte Sitzung fortsetzt, anstatt eine neue Sitzung zu starten. Es wird daher
dringend empfohlen, COMARET=ON zu setzen.
CICS bietet die NEP-Exit-Schnittstelle (NEP = Node Error Program)
DFHZNEP, die aufgerufen wird, wenn ein Benutzer ein Terminal aus
der CICS-Region abmeldet. Die Sitzung geht verloren, wenn der Benutzer die
Terminalverbindung trennt, während die entsprechende Natural-Sitzung in CICS
nicht aktiv ist. Sie können dann mit DFHZNEP das
Natural-spezifische Knotenfehlerprogramm
NCIZNEP
ausführen und die verlorene Sitzung beenden. Dieses Programm wird mit der
Natural CICS-Schnittstelle ausgeliefert (siehe auch
Natural
CICS-Beispielprogramme).
Wird eine aktive und laufende Natural-Sitzung abgebrochen
mit CEMT SET TASK(...) FORCEPURGE,
mit CEKL SET TASK(...) FORCEPURGE,
durch ein CICS-Monitoring-Produkt,
durch Beendigung der Natural-Sitzung mittels der Funktion Flush Session der SYSTP Utility,
dann wird die entsprechende CICS-Task sofort mit CICS Abend AKEH
beendet, ohne dass NCIZNEP zur Sitzungsbereinigung ausgeführt
wird.
CICS stellt das Standard-Knotenfehlerprogramm (NEP)
DFHZNEP zur Verfügung, das aufgerufen wird, wenn ein Benutzer die
Verbindung zwischen einem Terminal und der CICS-Region trennt. Darüber hinaus
bietet CICS das Beispielprogramm DFHZNEPX, das für eine
benutzerdefinierte Fehlerbehandlung bestimmt ist, um vom Benutzer
bereitgestellte Fehlerverarbeitungsprogramm aufzurufen.
Die Natural CICS-Schnittstelle bietet das
Natural-spezifische-Knotenfehlerprogramm
NCIZNEP. Sie
können das Beispiel-Knotenfehlerprogramm XNCINEP2 verwenden, um
DFHZNEP einzurichten und NCIZNEP auszuführen, um eine
verlorengegangene Sitzung zu beenden. XNCINEP2 kann anstelle des
Beispielprogramms DFHZNEPX verwendet werden.
Das Beispielprogramm XNCINEP2 führt folgende Funktionen
aus:
Es ermöglicht es einem Fehlerverarbeitungsprogramm, die
Kontrolle für alle möglichen, an DFHZNEP übergebenen Fehlercodes
zu erhalten. Wenn XNCINEP2 die Kontrolle erhält, gibt es eine
CICS-Trace-Anfrage aus, die anzeigt, mit welchen Fehlercodes
DFHZNEP bei bestimmten Aktionen aufgerufen wurde und welche
TCTTE-Fehlerinformationen damit zusammenhängen.
Ruft über EXEC CICS LINK das
NCIZNEP-Modul auf, das eine Natural-Sitzungsbereinigung
durchführt.
Das Beispielprogramm XNCINEP2 wird in der
Quellcode-Library der Natural CICS-Schnittstelle mitgeliefert. Wenn
DFHZNEPX bereits angepasst wurde, können Sie den entsprechenden
Quellcode von XNCINEP2 nach DFHZNEPX kopieren und ihn
an geeigneter Stelle vor dem abschließenden EXEC CICS
RETURN-Aufruf in DFHZNEPX einfügen, wobei andere Produkte
oder Komponenten zu berücksichtigen sind, für die eine Fehlerverarbeitung
durchgeführt wird.
Das Programm NCIZNEP versucht, eine Sitzung asynchron
wiederaufzunehmen und anschließend logisch zu beenden, und zwar auf der
Grundlage der Sitzungs-Neustartinformationen
(NEXTTRANSID und Neustartdaten in COMMAREA- oder im
CICS-Zwischenspeicher) einer Terminalsitzung mit anstehender
pseudo-konversationeller Bildschirm-Ein-/Ausgabe.
Nach Beendigung bereinigt NCIZNEP die Parametereingabe
und teilt dem Aufrufer (in der Regel DFHZNEP) mit, ob es seine
Arbeit erfolgreich abgeschlossen hat, und startet die Bereinigungs-Task für die
Natural-Sitzung.
Wenn in einem CICS-System mehr als eine
Natural-CICS-Schnittstellenversion aktiv ist, kann die vom aufgerufenen
Natural-versionsspezifischen Knotenfehlerprogramm durchgeführte
Bereinigungsverarbeitung fehlschlagen, weil die zu beendende Natural-Sitzung
von einer anderen Natural-CICS-Schnittstellenversion gehostet wird. Nach
Abschluss der Ausführung von NCIZNEP kann DFHZNEP
prüfen, ob die Durchführung der Operation erfolgreich war. Wenn die Operation
nicht erfolgreich war, ruft NCIZNEP ein anderes
Knotenfehlerprogramm auf, das zu einer anderen Natural
CICS-Schnittstellenversion Bezug hat.
Wenn ein Benutzer ein Terminal von der CICS-Region trennt, während
die entsprechende Natural-Sitzung im CICS nicht aktiv ist, kann
DFHZNEP mehr als einmal die Kontrolle für verschiedene interne
Fehlercodes erhalten, da jeder interne Fehlercode mit einer bestimmten
CICS-Fehlermeldung verbunden ist.
Wenn Sie möchten, dass NCIZNEP versucht, eine zurzeit
aktive Natural-Sitzung, für die NCIZNEP die Kontrolle erhält,
sofort zu löschen, geben Sie PURGE=YES für das
NCIZNEP-Modul an. Siehe die Installationsprozedur für die Natural
CICS-Schnittstelle und den Abschnitt CICS Startup Parameters
in Installing Natural CICS
Interface on z/OS in der
Natural-Installation-Dokumentation.
Allgemein ist bei MRO/CICSPlex-Umgebungen Folgendes erforderlich:
DFHZNEP und NCIZNEP müssen in der
TOR installiert sein.
Das Modul NCIZNEP muss in CICS mit
EXECKEY(CICS) definiert sein.
Bei MRO/CICSPlex-Umgebungen, in denen NCIZNEP eine
zurzeit aktive Natural-Session löschen soll, sind die folgenden zusätzlichen
Erfordernisse zu beachten:
Das Modul NCIZNEP muss auch in den mit einer TOR
verbundenen CICS AORs definiert sein. Eine Natural-Sitzung kann nur in der AOR
bereinigt werden, in der eine Transaktion zur Löschung der Task gestartet
wird.
Für das Modul NCIZNEP muss in der CICS TOR und in
den AORs eine Transaktionskennung mit den Attributen
TASKDATAKEY(CICS) und PRIORITY(255) definiert
werden.
Die Transaktionskennung muss außerdem mit dem Parameter
NEPTRAN in den CICS-Startparametern für das Modul
NCIZNEP angegeben werden. Beschreibung siehe
Natural-Installation-Dokumentation unter
Installing
Natural CICS Interface on z/OS.
Die Natural-Transaktionen, für die Sie die aktiven
Natural-Sitzungen löschen wollen, müssen in CICS mit dem Attribut
SPURGE(YES) definiert werden.
Wenn Sie die Knotenfehlerprogramme NCIZNEP (für die
Natural CICS-Schnittstelle) und CORNEP (für den Adabas System
Coordinator) von DFHZNEP aus aufrufen wollen, sollten Sie
berücksichtigen, dass sowohl NCIZNEP als auch CORNEP
möglicherweise versuchen, in Bezug zu Adabas stehende Ressourcen zur gleichen
Zeit freizugeben. Um Störungen durch gleichzeitige Ausführung zu vermeiden,
müssen Sie NCIZNEP immer vor CORNEP aufrufen und die
Startzeit von CORNEP leicht verzögern, um sicherzustellen, dass
NCIZNEP beendet ist, bevor CORNEP mit der Ausführung
beginnt.
Weitere Informationen siehe Adabas System Coordinator Installation-Dokumentation.
Wird eine Benutzersitzung durch Zeitüberschreitung (Timeout)
beendet, werden die von der Natural-Sitzung gehaltenen Ressourcen vom CICS
nicht freigegeben. Eine Benutzersitzung wird beispielsweise wegen
Zeitüberschreitung beendet, wenn der Benutzer in der Natural-Terminalsitzung
für den Zeitraum inaktiv war, der mit dem Parameter
TIMEOUT im CICS-Segment des RACF-Benutzerprofils
festgelegt wurde.
Im Falle einer Zeitüberschreitung aufgrund der Einstellung des
Parameters TIMEOUT im RACF-Benutzerprofil wird die von
CICS durchgeführte Aktion durch den Wert des Systeminitialisierungsparameters
GNTRAN bestimmt. Natural-Ressourcen werden nicht
ordnungsgemäß freigegeben, wenn entweder GNTRAN=NO gesetzt ist
oder das ausgeführte "Good Night"-Programm das
NCIZNEP-Modul nicht aufruft.
Um sicherzustellen, dass alle von Natural belegten Ressourcen
ordnungsgemäß freigegeben werden:
Geben Sie für den Parameter GNTRAN eine
CICS-Transaktionskennung an, bei der das PROGRAM-Attribut
XNCIGNIT angibt.
Verwenden Sie das Beispiel-Knotenfehlerprogramm
XNCIGNIT, das in der Quellcode-Library der Natural
CICS-Schnittstelle enthalten ist (siehe auch Natural
CICS-Beispielprogramme), und definieren Sie es in
CICS.
XNCIGNIT muss assembliert und mit den CICS
EXEC-Schnittstellenmodulen DFHELII und
DFHEAI0 verlinkt werden.
XNCIGNIT ruft über EXEC CICS LINK
das Modul NCIZNEP auf, das eine Natural-Sitzungsbereinigung
durchführt.
Bei MRO/CICSPlex-Umgebungen müssen Sie die folgenden Schritte durchführen:
Definieren und installieren Sie in der TOR das Beispielprogramm
XNCIGNIT und die CICS-Transaktionskennung, für die das
PROGRAM-Attribut XNCIGNIT angibt.
Fügen Sie im Beispielprogramm XNCIGNIT für
Knotenfehler den Parameter
SYSIDSYSID zum Statement
EXEC CICS LINK hinzu, das NCIZNEP ausführt.
SYSID muss den Systemnamen einer AOR angeben, die sich
auf die TOR bezieht. Sie können eine beliebige AOR angeben, da eine CICS-Task
für eine Sitzung in einer AOR nicht aktiv ist, wenn die Sitzung eine
Zeitüberschreitung auslöst.
Die Anwendungsprogrammierschnittstelle (API) USR4006N ermöglicht das Abrufen oder Abbrechen von Natural-Sitzungen auf der Grundlage von Auswahlkriterien, beispielsweise der Dauer der Inaktivität von Terminalsitzungen.
Es kann vorkommen, dass alle Sitzungen sequenziell gelesen werden,
um eine oder mehrere Sitzungen zu finden, die einem bestimmten Kriterium
entsprechen, da USR4006N nicht in der Lage ist, Sitzungen zufällig nach einem
bestimmten Kriterium auszuwählen. Wir empfehlen Ihnen daher, USR4006N nur
gelegentlich auszuführen, und auch nur dann, wenn Sie alle Natural-Sitzungen,
die ein bestimmtes Kriterium erfüllen, in einem einzigen Durchgang entfernen
möchten. Alternativ können Sie das Modul NCIZNEP und das
Knotenfehler-Beispielprogramm XNCIGNIT verwenden, welche nur auf
eine einzige Natural-Sitzung wirken und nicht auf alle Sitzungen zugreifen
müssen.