NAF-Funktionen in einer BS2000-Umgebung

In diesem Dokument werden die Funktionen von Natural Advanced Facilities speziell für eine BS2000-Umgebung erläutert.


Übersicht

NATSPOOL sammelt alle während einer Natural-Benutzersitzung erzeugten Reports in der Spool-Datei. Um einen Report physisch zu drucken, führt NATSPOOL ein Event (Ereignis) aus, um die Kontrolle an eine Batch-Session zu übergeben.

Diese neue Natural-Session, der NATSPOOL-Spool-Server, ruft aus dem Task, der den Event unter Verwendung eines BS2000 CMP (Common Memory Pool) abgesetzt hat, verschiedene dynamische Parameter ab.

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

BS2000-Optionen

Nachdem Natural Advanced Facilities installiert worden ist, müssen Sie mit der Funktion 30.5 die BS2000-Optionen setzen.

Automatischer Start des Spool-Servers - nur bei openUTM

Der Spool-Server kann beim Start von openUTM automatisch gestartet werden. Dazu muss der SPOOL-Parameter in dem Makro NATUM angegeben werden. Der Spool-Server ist dann immer aktiv, wenn Natural Advanced Facilities in einer openUTM benutzt wird.

Der SPOOL-Parameter hat die folgende Syntax:

SPOOL=(NATSPOOL,'name',nn)
Parameter Beschreibung
NATSPOOL Bezieht sich auf das entfernte Spool-System von Natural Advanced Facilities.
' name' Der Name des Enter Jobs, der den Spool-Server startet.
nn Die Anzahl der zu startenden Spool-Server. Es können maximal 30 Spool-Server gleichzeitig gestartet werden.

Beispiel für den SPOOL-Parameter:

SPOOL=(NATSPOOL,'E.PTTASK',2)

Kann ein Spool-Server nicht gestartet werden (z.B. wenn das Batch-Limit erreicht worden ist), gibt der openUTM-Treiber die folgende Meldung aus:

SYSTEM ERROR: PLEASE GIVE KDCOFF

Auf System-Druckern drucken

Soll ein Report an einen System-Drucker gesendet werden, muss das Benutzerprofil folgende Angaben enthalten:

  • Es muss ein physischer Drucker mit dem Namen SYSTEM definiert sein und

  • dem physischen Drucker SYSTEM muss ein logischer Drucker zugewiesen sein.

Der Spool-Server erkennt dann, dass für diesen Drucker generierte Reports an den System-Drucker gesendet werden sollen. Der Report wird über das WRLST-Makro in den BS2000 EAM-Raum geschrieben. Danach wird der Report auf dem entsprechenden System-Drucker (über das BS2000-Kommando PRINT *SYSLST) gedruckt. Es wird kein entfernter Drucker aktiviert.

Die verschiedenen vorangehenden Verarbeitungsaktivitäten, die z.B. die Druckersteuerzeichen beeinflussen, werden im Spool-Server durchgeführt. Solange wie der Report in der Spool-Datei verbleibt, kann er an jeden beliebigen entfernten Drucker gesendet werden.

Zum Drucken eines Reports auf einem System-Drucker wird das PRNT-Makro mit den folgenden Angaben benutzt:

PRNT *SYSLST,ERASE,SPACE=E,
             COPIES=number of duplicates as specified in the LPF,
             PNAME=user ID of report,
             FORM=destination of report or value of BS2FORM from 
                  NAF parameter module,

Anmerkung:
Wenn Natural Security installiert ist, wird die Natural Security-Benutzerkennung als sendende Benutzerkennung verwendet. Wenn Natural Security nicht installiert ist, wird die Terminalkennung als sendende Benutzerkennung verwendet.

Auf RSO-Druckern drucken

Zum Drucken von Reports auf einem RSO-Drucker wird das PRNT-Makro mit den folgenden Angaben benutzt:

PRNT *SYSLST,ERASE,SPACE=E,
             COPIES=number of duplicates as specified in the LPF, 
             PNAME=user ID of report,
             FORM=destination of report, or value of RSOFORM from NAF parameter
                  module, or value defined for physical printer (31.4),
             DEV=physical printer

Anmerkung:
Wenn Natural Security installiert ist, wird die Natural Security-Benutzerkennung als sendende Benutzerkennung verwendet. Wenn Natural Security nicht installiert ist, wird die Terminalkennung als sendende Benutzerkennung verwendet.

Implementierung des Spooling

Damit NATSPOOL unter BS2000 funktionieren kann, müssen ein oder mehrere Spool-Server (maximal 30) aktiv sein. Diese Tasks werden als Batch-Tasks gestartet und sind immer vorhanden. Wenn einem Drucker keine Reports zugeordnet sind, befindet sich der Spool-Server im Status WAIT und es wird nur eine minimale CPU-Zeit genutzt. Wird ein Report aus einer Natural-Session generiert, sucht der NATSPOOL-Nukleus nach dem angegebenen Drucker und aktiviert den Spool-Server über den P1-EVENTING-Mechanismus.

Die Kommunikation für das P1-EVENTING wird definiert mit den Parametern NAFERK1 und NAFERK2 im BS2000-Parametermodul NAFB2P für Natural Advanced Facilities. Weitere Informationen siehe Installing Natural Advanced Facilities on BS2000. Die Werte für NAFERK1 und NAFERK2 müssen für eine gegebene CPU eindeutig sein. Auf diese Weise können zwei verschiedene Natural-Umgebungen parallel in derselben CPU laufen und mit unterschiedlichen NATSPOOL-Umgebungen arbeiten. Die Parameter für das P1-EVENTING und die DCAM-Kommunikation (DC0 - DC30) müssen für jede Natural-Installation und für jede Natural Advanced Facilities-Installation verschieden sein. Wenn zwei oder mehr Natural- oder Natural Advanced Facilities-Umgebungen unter Benutzung der gleichen BS2000-Benutzerkennung installiert werden, ist es möglich, verschiedene Module für NAFB2P zu erstellen, indem man den BS2000-Prozedurparameter PRGSUFF in dem entsprechenden Installationsjob setzt. Dieser Parameter muss für jede Installation eindeutig sein.

Der Spool-Server, bei dem es sich um eine DCAM-Anwendung handelt, führt Folgendes durch:

  • Aktiviert den angegebenen Drucker (DCAM-Makro YOPNCON). Wenn der Drucker nicht aktiviert werden kann, setzt der Spool-Server den Drucker in den Status INOP.

  • Liest den Report aus der Spool-Datei.

  • Setzt die Druckersteuerzeichen so, dass sie den in der Druckerdefinition für diesen Drucker angegebenen Zeichen entsprechen.

  • Übergibt den Report (DCAM-Makro YSEND) in Segmenten an den Drucker, die der Größe des Druckerpuffers entsprechen.

Nach jedem Segment des Reports wird die Übertragungsbestätigung (DCAM-Makro YRECEIVE) geprüft, um festzustellen, ob der Report gedruckt wurde. Ist dies nicht der Fall, so wird nach einer bestimmten Wartezeit ein weiterer Versuch unternommen. Ist die Übergabe dann immer noch nicht erfolgreich, wird der Drucker in den Status INOP gesetzt.

Nachdem der Report gedruckt wurde, prüft der Spool-Server, ob ein weiterer Report für diesen Drucker in die Spool-Datei geschrieben wurde. Ist dies der Fall, wird dieser Report sofort gedruckt. Wenn keine weiteren Reports anstehen, wird der Drucker deaktiviert (DCAM-Makro YCLSCON) und steht für andere Spool-Systeme zur Verfügung. Der Spool-Server kehrt in den Status WAIT zurück, bis ein neues PRINT-Kommando für diesen oder einen anderen Drucker erteilt wird.

User-Exits für den Spool-Server

Unter BS2000 stellt Natural Advanced Facilities die unten beschriebenen User-Exits zur Verfügung. Die User-Exits sind in Assembler geschrieben. Alle Informationen, die an diese User-Exits übergeben werden, verwenden von der Software AG definierte DSECTS namens NAFDINFO, NAFDTECH und NATDINFO.

NAFEXIT1

Dieser User-Exit muss mit dem Front-Teil des Spool-Servers verknüpft werden, indem der CSECT-Name NAFEXIT1 verwendet wird. Der Exit wird für alle physischen Drucker aktiviert, für die im Feld User Exit der Wert EXIT1 definiert ist. Der Exit übernimmt für jeden Report zeilenweise die Kontrolle. Der Spool-Server wird keine Report-Daten nachbearbeiten.

Dieser Exit führt die folgenden Funktionen aus:

Code Funktion
1 Report öffnen
2 Report schreiben
3 Report senden

Die korrekte Ausführung des Exits muss über Register 15 (Wert = 0) mitgeteilt werden. Ansonsten wird der Inhalt des Exits als negativer Rückmeldecode erkannt.

Register 1 adressiert den folgenden Parameterbereich:

Offset Addresse von
0 Funktionscode
4 Nicht verwendet, darf nicht geändert werden
8 Datenbereich
12 Länge
16 NAFDINFO
20 NAFDTECH
24 NATDINFO

Nicht verwendete Adressen werden vom Spool-Server auf einen hohen Wert gesetzt.

Register 13 adressiert den Speicherbereich für Register. Register 15 muss den Rückgabecode enthalten.

NAFEXIT2

Dieser User-Exit muss über den CSECT-Namen NAFEXIT2 mit dem Front-Teil des Spool-Servers verknüpft werden.

Bevor das DCAM-Makro YSEND ausgeführt wird, wird der Nachrichtenblock an den Exit übergeben, damit der Benutzer den Datenbereich ändern kann. Der geänderte Meldungsblock wird dann mit Hilfe des DCAM-Makros YSEND an den jeweiligen Drucker gesendet. Führt eine Änderung des Meldungsblocks zu einer neuen Meldungslänge, muss der entsprechende Parameter aktualisiert werden.

Die korrekte Ausführung des Exits muss über Register 15 (Wer t= 0) mitgeteilt werden. Ansonsten wird der Inhalt des Exits als negativer Rückgabecode erkannt.

Register 1 adressiert den folgenden Parameterbereich:

Offset Addresse von
0 Nicht verwendet
4 Nicht verwendet
8 Datenbereich
12 Länge
16 NAFDINFO
20 NAFDTECH
24 NATDINFO

Nicht verwendete Adressen werden vom Spool-Server auf einen hohen Wert gesetzt.

Register 13 adressiert den Speicherbereich für Register. Register 15 muss den Rückgabecode enthalten.

NAFEXIT3

Dieser User-Exit muss mit dem Spool-Server über den CSECT-Namen NAFEXIT3 verknüpft werden.

Dieser Exit steuert alle Funktionen, die bei einer Startanforderung ausgeführt werden sollen. Der Spool-Server ignoriert alle Aktivitäten, er ruft nur den Exit auf und prüft den Rückgabecode.

Dieser Exit führt die folgenden Funktionen aus:

Code Funktion
1 Verbindung zum Spooling-Gerät öffnen
2 Report öffnen
3 Report-Daten senden
4 Report schließen
5 Verbindung zum Spooling-Gerät schließen

Die korrekte Ausführung des Exits muss über Register 15 (Wert = 0) mitgeteilt werden. Ansonsten wird der Inhalt des Exits als negativer Rückgabecode erkannt. Wenn eine Funktion mit einem Fehler abbricht, kann über den Offset 4 von Register 1 ein Funktionsname zurückgegeben werden.

Register 1 adressiert den folgenden Parameterbereich:

Offset Addresse von
0 Funktionscode
4 Abnormal beendete Funktion
8 Datenbereich
12 Länge
16 NAFDINFO
20 NAFDTECH
24 NATDINFO

Nicht verwendete Adressen werden vom Spool-Server auf einen hohen Wert gesetzt.

Register 13 adressiert den Speicherbereich für Register. Register 15 muss den Rückgabecode enthalten.

NAFEXIT4

Dieser User-Exit muss mit dem Front-Teil der Natural openUTM- oder TIAM-Schnittstelle über den CSECT-Namen NAFEXIT4 verlinkt werden.

Dieser Exit steuert alle Funktionen, die beim Erstellen eines Reports ausgeführt werden. Die Spool-Daten werden nicht in der Spool-Datei gespeichert und die ET/BT-Logik wird nicht unterstützt.

Dieser Exit führt die folgenden Funktionen aus:

Code Funktion
1 Report öffnen
2 Report schreiben
3 Report schließen und keine weiteren Daten schreiben
4 Report schließen und letzte Daten schreiben

Die korrekte Ausführung des Exits muss über Register 15 (Wert = 0) mitgeteilt werden. Ansonsten wird der Inhalt des Exits als negativer Rückgabecode erkannt.

Register 1 adressiert den folgenden Parameterbereich:

Offset Addresse von
0 Funktionscode
4 Nummer des logischen Druckers
8 Datenbereich
12 Länge
16 NAFDINFO
20 Nicht verwendet
24 NATDINFO
28 Benutzspezifisches Feld

Nicht verwendete Adressen werden vom Spool-Server auf einen hohen Wert gesetzt.

Register 13 adressiert den Speicherbereich für Register. Register 15 muss den Rückgabecode enthalten.

Kommunikation mit Natural

Die Online-Kommunikation von Natural mit dem Spool-Server erfolgt über den Mechanismus P1-EVENTING und einen gemeinsamen Speicherpool.

Neben dem Parameter FSPOOL für die Natural-Spool-Datei werden auch die Werte für die Parameter FNAT und FSEC übertragen.

Unter BS2000 sind drei Arten der Kommunikation zwischen Natural und dem Spool-Server möglich, siehe die folgenden Abbildungen.

Wenn bei der Kommunikation zwischen Natural und dem Spool-Server ein Fehler auftritt, kann der Systemverwalter den gemeinsam genutzten Speicherpool zurücksetzen. Siehe Funktion 40.6.

Eine Natural-Umgebung mit einem Spool-Server

Zwei Natural-Umgebungen mit einem gemeinsam genutzten Spool-Server

Zwei Natural-Umgebungen mit je einem eigenen Spool-Server

BS2000-Monitor

Mit Hilfe des BS2000-Monitors können Sie einen Report von dem Rechner aus starten, auf dem er erstellt wurde, auch wenn die Konfiguration nicht mit einem Spool-Server kommunizieren kann.

Bei Verwendung eines Monitor-Task muss im NAF-Parametermodul Folgendes definiert sein:

  • Der Parameter MONEVT muss für das P1-EVENTING des Monitors definiert werden. Für P1-EVENTING können Sie nur einen Monitor-Task starten.

  • Der Parameter PAMO muss mit einem gültigen LOGON-Kommando für den Monitor definiert sein.

Das Natural-Programm SVPMON01, das beim Start des Monitors aktiviert wird, erwartet die folgenden Eingaben:

  • Das Zeitintervall in Minuten für die Überprüfung der Spool-Datei. Gültige Werte sind 1 bis 300.

  • Wie die Meldungen über die ausgeführten Aktionen (z. B. Prüfen oder Starten) behandelt werden sollen.

  • Datenbankkennung und Dateinummer der zu prüfenden Spool-Datei. Sie können bis zu 50 verschiedene Spool-Dateien definieren. Nach der letzten gewünschten Spool-Datei geben Sie als Datenbankkennung 99999 an, um das Ende der Liste zu kennzeichnen.

Beispiel:

Rechner 1 hat keine Drucker, keine Spool-Datei und keinen Spool-Server. Nur an Rechner 2 sind Drucker sowie eine Spool-Datei und ein Spool-Server angeschlossen.

Auf Rechner 1 erstellte Reports können nur auf Rechner 2 gedruckt werden. Sie werden in der Spool-Datei von Rechner 2 gespeichert. Da der Start der Ausgabe durch P1-EVENTING gesteuert wird, ist es nicht möglich, Reports von Rechner 1 aus zu starten.

Um Reports von Rechner 1 aus zu starten, können Sie wie folgt vorgehen:

  • Definieren Sie in der Spool-Datei von Rechner 2 logische Drucker, die sich auf Zuordnungen beziehen, deren Warteschlangenstatus auf MONITOR gesetzt ist.

  • Alle auf Rechner 1 erstellten Reports verwenden die oben genannten logischen Drucker.

  • Definieren und starten Sie auf Rechner 2 einen Monitor-Task (zusätzlich zu den Spool-Servern).

Der Monitor-Task prüft nun in festgelegten Intervallen die Spool-Datei auf Reports, die zu einer Monitor-Warteschlange gehören. Wenn Reports gefunden werden und ein Spool-Server für diese Warteschlange nicht aktiv ist, wird die Ausgabe für diese Warteschlange automatisch gestartet.