NAF-Funktionen in einer CICS-Umgebung

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


Ü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 bzw. Installing Natural Advanced Facilities under CICS on z/VSE), 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 bzw. Installing Natural Advanced Facilities under CICS on z/VSE.

Der NATSPOOL-Spool-Server arbeitet standardmäßig als pseudo-konversationaler 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-konversationale Betriebsart wird empfohlen, wenn es mehrere physische Drucker gibt, die zur gleichen Zeit aktiv sind.

Um in konversationaler 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 konversationale 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.