NAF-Funktionen in einer CICS-Umgebung

#### Search Results

Search

# NAF-Funktionen in einer CICS-Umgebung

Dieses Kapitel erläutert die für eine CICS-Umgebung spezifischen Funktionen von Natural Advanced Facilities.

- Übersicht

- CICS-Optionen

- CICS/MRO-Umgebungen

- Dynamische Parameter für den Spool-Server

- Dynamische Systemdatei-Angabe

- Automatische Session-Erstellung

- Spool-Datei-Scan bei Natural-Initialisierung

- Automatischer Neustart

- SCS-Drucker-Unterstützung

- Spool-Server-Betriebsart

- Thread-Nutzung

## Übersicht

`NATSPOOL` sammelt alle während einer Natural-Benutzersitzung erzeugten Reports in der Spool-Datei. Um einen Report physisch zu drucken, plant `NATSPOOL` eine Natural-Session für den physischen Drucker ein und setzt dazu das Kommando `EXEC CICS START` ab.

Diese neue Natural-Session, der `NATSPOOL`-Spool-Server, ruft aus dem Task, der die `START`-Anforderung abgesetzt hat, verschiedene dynamische Parameter ab.

Die logische Verknüpfung zwischen den zwei von `NATSPOOL` benutzten Natural-Sessions ist in der folgenden Abbildung dargestellt:

## CICS-Optionen

Um Natural Advanced Facilities in einer CICS-Umgebung zu installieren, müssen Sie die unten aufgeführten `NATSPOOL`-Parameter setzen.

Sie können diese Parameter auch mit der Funktion 30.5 (Set Spool Option/Spool-Option setzen) festlegen, wie in Layout der Spool-Datei beschrieben. Nach der Installation von Natural Advanced Facilities benutzen Sie die Funktion 30.5, um die CICS-Optionen zu setzen.

Parameter | Erläuterung
--- | ---
`INITEXI=OFF/ON` | Gibt an, ob der NAF-Initialisierungs-Exit ausgeführt wird. Dieser Exit erfordert die exklusive Kontrolle (ADABAS EXU USER) durch die Spool-Datei.
`INITMCO=OFF/ON` | Gibt an, ob der Initialisierungs-Exit Meldungen an die Konsole sendet
`INITMLO=OFF/ON` | Gibt an, ob der Initialisierungs-Exit Meldungen an die CICS-Protokolldatei sendet.
`INITSID= name` | Gibt die CICS-SYSID an, die den Initialisierungs-Exit durchführt.
`PRINSID= name` | Gibt die Standard-CICS-SYSID für den Spool-Server an, die verwendet wird, wenn keine `SYSID` für den Drucker in der Spool-Datei angegeben wurde (siehe auch Funktion 31.4 im Abschnitt Objekte - Funktion 31).
`TRANP= name` | Gibt die CICS-Transaktionskennung (ID) des Spool-Servers an. Der angegebene Name muss mit dem entsprechenden Namen identisch sein, der als Transaktionskennung im CICS PCT angegeben ist. Dieser PCT-Eintrag muss auf das Natural-Lademodul zeigen, d. h. `NATP` startet Natural. Aus Performance-Gründen wird dringend empfohlen, unterschiedliche Namen für die Transaktionskennung des Spool-Servers und die Transaktionskennung des Terminals zu wählen.
`TRMTASK=OFF/ON` | Legt fest, dass der Spool-Server beendet und eine andere Task gestartet wird, sobald ein einzelner Report gedruckt wurde. Wenn Sie `TERMTASK=OFF` angeben, druckt derselbe Spool-Server alle Reports mit demselben Ziel/Formular (Destination/Form). Dies kann zu Problemen mit den CICS-Ressourcen führen, wenn viele Drucker gleichzeitig aktiv sind.

Sie können einen Parameter weglassen oder den zugewiesenen Wert (`OFF`/`ON` oder `name`) auf "leer" setzen.

Für die Verwendung von Parametern gilt die folgende Vorrangregel:

- Für alle Parameter, die nicht in `NAFPRMC` definiert oder auf "leer" gesetzt wurden, gelten die entsprechenden in der Spool-Datei definierten Werte.

- Parameter, die im `NAFPRMC`-Parametermodul durch Setzen des Wertes ungleich "leer" definiert wurden, haben Vorrang vor den in der Spool-Datei definierten Werten. Dadurch können Sie das `NAFPRMC`-Parametermodul verwenden, um bestimmte Optionen nur für bestimmte Aufgaben zu setzen. Dies kann für mehrere CICS-Umgebungen nützlich sein, die sich dieselbe Spool-Datei teilen.

## CICS/MRO-Umgebungen

CICS enthält eine Einrichtung namens Intercommunication Support, die es verschiedenen CICS-Regionen ermöglicht, Ressourcen gemeinsam zu nutzen und miteinander zu kommunizieren. Multiple Region Operation (MRO) ist eine CICS-Funktion, die diese Unterstützung für Regionen innerhalb desselben Prozessors bietet.

Die MRO-Option zur Funktionsaufrufübermittlung ermöglicht es Programmen in der "anwendungsbesitzenden" (lokalen) Region, auf Ressourcen in der "ressourcenbesitzenden" (entfernten) Region zuzugreifen, indem sie entsprechende Anforderungen an die entfernte Region senden.

Diese Anforderungen werden in der entfernten Region durch eine von CICS bereitgestellte Spiegeltransaktion ausgeführt. Die Ressourcen, auf die zugegriffen wird, können auch Transaktionen sein. In diesem Fall wird der Prozess als Remote Transaction Initiation bezeichnet.

Mit dem MRO-Ansatz ist es möglich, die `START`-Anforderung des asynchronen `NATSPOOL`-Spool-Servers an eine entfernte Region zu senden (d. h. in einer solchen Region zu drucken).

Die MRO-Option ist nützlich, wenn ein Anstieg der Tasks zu erwarten ist, da die Anzahl der Tasks, die eine CICS-Region verwalten kann, begrenzt ist.

## Dynamische Parameter für den Spool-Server

Wenn ein Spool-Server gestartet wird, gelten drei verschiedene Arten von dynamischen Parametern:

> Parameter, die der Spool-Server selbst einstellt

>   Um dedizierte Natural Advanced Facilities-Threads mit Mindestgröße zu ermöglichen, ordnet der Spool-Server immer Puffer mit minimaler Größe zu. Die meisten Puffergrößen werden auf Null gesetzt.

> Parameter, die von der Benutzersitzung an den Spool-Server übergeben werden

>   Der Spool-Server und die Benutzersitzung, die den Spool-Server gestartet hat, verwenden immer dieselben Systemdateien (`FNAT`, `FUSER`, `FDIC` und `FSPOOL`), denselben Bufferpool (`BPID`) und dieselbe Einstellung des Parameters `RCA`.

> Im Natural-Parametermodul definierte Parameter

>   Alle weiteren, oben nicht erwähnten Parameter werden aus dem Natural-Parametermodul übernommen.

## Dynamische Systemdatei-Angabe

Die Definition der Systemdatei(en) im Natural-Parametermodul kann vom Benutzer überschrieben werden. Dies geschieht durch dynamische Angabe der entsprechenden Dateiparameter (`DBID`, `FNR`, `FDIC`, `FNAT`, `FSEC` oder `FSPOOL`) beim Start einer Natural-Sitzung. Die tatsächlichen Werte werden dann von dem auslösenden Terminal-Task an den Spool-Server übertragen. Dies gilt sowohl für automatisch gestartete Spool-Server als auch für Spool-Server, die mit den `NATSPOOL`-Funktionen gestartet werden.

Bei der Verarbeitung der Parameter `DBID` oder `FNR` wird der übergebene Wert auch auf die Spool-Dateispezifikation angewendet.

Sobald der Spool-Server gestartet wurde, beachtet er diese Dateidefinitionen, solange der Task aktiv ist. Reports werden nur aus der Datei gedruckt, die durch das gerade aktive `FSPOOL` definiert ist, auch wenn es Reports mit demselben Ziel/Formular (Destination/Form) in einer anderen `FSPOOL`-Datei gibt.

Auf diese Weise kann ein einziger CICS-Spool-Server Reports verwalten, die in verschiedenen Spool-Dateien unter demselben CICS erstellt wurden (z.B. für Produktions- oder Testzwecke).

## Automatische Session-Erstellung

Bevor `NATSPOOL` einen Spool-Server startet, wird geprüft, ob der Terminalstatus des Druckers intern generierte Session-Anforderungen zum Erstellen einer Session zulässt (`TRMSTAT=INTLOG` oder `CREATESESS=YES`). Wenn dies nicht der Fall ist, z.B. nach VTAM `LOSTERM`-Fehlern), erzwingt `NATSPOOL` diesen Status und versucht dann, den Spool-Server zu starten.

## Spool-Datei-Scan bei Natural-Initialisierung

Wird nach dem Start von CICS die erste Natural-Session aufgerufen, dann wird die Spool-Datei nach Druckern oder Reports durchsucht, die während der vorangegangenen CICS-Session unterbrochen wurden. Unterbrochene Drucker, die sich nicht im Status `DEAC` befinden, werden in den Status `FREE` zurückgesetzt, unterbrochene Reports in den Status `TOBE`. 20 Sekunden nach dieser ersten Initialisierungsstufe werden alle unterbrochenen Drucker mit dem unterbrochenen Ziel/Formular (Destination/Form) neu gestartet. Das Zeitintervall von 20 Sekunden gestattet es, dass diese erste Initialisierungsstufe als exklusiver Benutzer der Spool-Datei beendet wird.

Durch die Natural-Initialisierung wird sichergestellt, dass die Spool-Datei unter ausschließlicher Kontrolle dieser ersten Session aktualisiert wird. Andere startende Sessions werden so lange verzögert, bis dieser Teil der Initialisierung beendet worden ist.

Falls während der Durchsuchung der Spool-Datei ein Fehler auftritt, wird der System-Operator in Kenntnis gesetzt, die Durchsuchung normal beendet und die Natural-Initialisierung fortgesetzt.

Diese Durchsuchung wird bei der definierten Spool-Datei durchgeführt, d.h. es wird auch eine dynamische Einstellung von `FSPOOL` berücksichtigt.

Falls die Spool-Datei von CICS-Sessions gemeinsam benutzt wird, muss die Durchsuchung der Spool-Datei abgeschaltet werden (siehe Funktion 30.5 und das `NAFPARMC`-Parametermodul in Installing Natural Advanced Facilities under CICS on z/OS), weil dabei die ausschließliche Kontrolle der Spool-Datei erforderlich ist.

## Automatischer Neustart

Wenn ein Spool-Server normal beendet wird, wird jeder Drucker auf den Status `INOP` geprüft. Wenn ein Drucker im Status `INOP` gefunden wird und wenn kein alternativer Drucker verfügbar ist, wird der Drucker in den Status `PEND` gesetzt und der Spool-Server versucht dann, den Drucker neu zu starten. Falls der Drucker wieder in den Status `INOP` fällt, wird der Vorgang zwei Mal wiederholt. Danach wird bei diesem Drucker kein Neustart mehr versucht.

## SCS-Drucker-Unterstützung

SNA-Zeichenfolgedrucker (SCS-Drucker) werden unterstützt.

Der an SCS-Drucker gesendete Datenstrom darf nur Benutzerdaten und SCS-Steuercodes enthalten. Er darf kein Schreibsteuerzeichen (Druckerstart-Bit) oder Befehle ("Orders", z.B. Nachrichtenendezeichen) enthalten. Die SCS-Steuercodes führen Funktionen ähnlich wie bei Befehlen aus, indem sie es ermöglichen, dass die Ausgabe formatiert wird, jedoch ist der Bereich der Steuerung größer.

Die einzigen, von `NATSPOOL` verwendeten SCS-Steuercodes sind `FF` (Form Feed) und `NL` (New Line).

## Spool-Server-Betriebsart

Zu jeder Natural-Transaktionskennung (ID) kann es nur eine Spool-Transaktionskennung geben.

Die Spool-Server-Betriebsart kann mit Funktion 30.5 oder dem dynamischen Parametermodul `NAFPARMC` definiert werden. Siehe Installing Natural Advanced Facilities under CICS on z/OS.

Der `NATSPOOL`-Spool-Server arbeitet standardmäßig als pseudo-konversationeller CICS-Task (d.h. im Modus `Terminate Task=Y`). Der Spool-Server immer dann beendet (und ein anderer Task wird gestartet), wenn ein einzelner Report gedruckt wurde. Die pseudo-konversationelle Betriebsart wird empfohlen, wenn es mehrere physische Drucker gibt, die zur gleichen Zeit aktiv sind.

Um in konversationeller Betriebsart zu arbeiten, müssen Sie `Terminate Task=N` angeben. Derselbe CICS-Task druckt dann alle Reports, die das gleiche Ziel/Formular (Destination/Form) haben. Die konversationelle Betriebsart wird empfohlen, wenn nicht viele physische Drucker zu jedem Zeitpunkt aktiv sind und schnelles Drucken erforderlich ist. Sonst kann die maximale Anzahl an aktiven CICS-Tasks (Schlüsselwort `AMXT` in CICS SIT) erreicht werden.

## Thread-Nutzung

Bevor der Spool-Server eine Ausgabe an einen Drucker sendet, lagert er die Session aus, um den Thread freizugeben. Dadurch kann der Thread freigegeben werden, falls der Drucker beim Drucken unterbrochen wird, z.B. bei Papiermangel oder falls der Drucker ausgeschaltet wird. Nach erfolgreichem Senden der Ausgabe wird die Session wieder eingelagert. Da das Verschieben während dieser Auslagerungsanforderung ausgeschaltet ist, wird derselbe Thread gewählt.

### On this page

- Übersicht
- CICS-Optionen
- CICS/MRO-Umgebungen
- Dynamische Parameter für den Spool-Server
- Dynamische Systemdatei-Angabe
- Automatische Session-Erstellung
- Spool-Datei-Scan bei Natural-Initialisierung
- Automatischer Neustart
- SCS-Drucker-Unterstützung
- Spool-Server-Betriebsart
- Thread-Nutzung