CICS-Knotenfehlerprogramm und Freigabe aller Ressourcen bei Zeitüberschreitung einer Natural-Sitzung

#### Search Results

Search

# CICS-Knotenfehlerprogramm und Freigabe aller Ressourcen bei Zeitüberschreitung einer Natural-Sitzung

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:

- Sitzungsbeendigung erfolgt nicht unter Kontrolle der Natural CICS-Schnittstelle

- Wiederherstellungsmechanismen

- NCIZNEP einrichten

- NCIZNEP-Funktionalität

- Behandlung von Zeitüberschreitungen (Timeouts)

- API USR4006N zum Abrufen oder Abbrechen von Sitzungen

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.

## Sitzungsbeendigung erfolgt nicht unter Kontrolle der Natural CICS-Schnittstelle

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:

1. Ein Nicht-Natural-Programm, das von Natural aufgerufen wird, gibt ein -Kommando aus, um die CICS Task abnormal zu beenden.

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

3. 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).

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

## Wiederherstellungsmechanismen

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.

## NCIZNEP einrichten

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.

## NCIZNEP-Funktionalität

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.

- Erfordernisse bei MRO/CICSPlex-Umgebungen

- Besondere Aspekte beim Adabas System Coordinator

### Erfordernisse bei MRO/CICSPlex-Umgebungen

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.

### Besondere Aspekte beim Adabas System Coordinator

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.

## Behandlung von Zeitüberschreitungen (Timeouts)

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:

1. Geben Sie für den Parameter `GNTRAN` eine CICS-Transaktionskennung an, bei der das `PROGRAM`-Attribut `XNCIGNIT` angibt.

2. 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 `SYSID` `SYSID` 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.

## API USR4006N zum Abrufen oder Abbrechen von Sitzungen

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.

### On this page

- Sitzungsbeendigung erfolgt nicht unter Kontrolle der Natural CICS-Schnittstelle
- Wiederherstellungsmechanismen
- NCIZNEP einrichten
- NCIZNEP-Funktionalität
- Behandlung von Zeitüberschreitungen (Timeouts)
- API USR4006N zum Abrufen oder Abbrechen von Sitzungen