Dieses Kapitel erläutert die für eine CICS-Umgebung spezifischen Funktionen von Natural Advanced Facilities.
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:

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
|
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 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.
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,FDICundFSPOOL), denselben Bufferpool (BPID) und dieselbe Einstellung des ParametersRCA.- Im Natural-Parametermodul definierte Parameter
Alle weiteren, oben nicht erwähnten Parameter werden aus dem Natural-Parametermodul übernommen.
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).
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.
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.
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.
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).
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.
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.