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