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