Entire Operations bietet dem Benutzer Funktionen, die die Definition von Objekten innerhalb des Systems und die Kontrolle und Überwachung der Ausführung von Netzwerken ermöglichen.
Nach Anmeldung bei Entire Operations erscheint das Hauptmenü. Sobald der Benutzer hier eine Auswahl trifft, wird er entweder nachgeordnete Funktionsmenüs oder aber eine Auflistung von Objekten angezeigt bekommen, die dann mit Zeilenkommandos oder aber per PF-Tasten verarbeitet werden können.
20.02.18 ***** Entire Operations ***** 17:33:01 Eigentuemer EXAMPLE Hauptmenue Benutzer-ID EXAMPLE ------------------------------------------------------------------------------ Hauptmenue RZ-Loesungen 1 Netzwerk- und Job-Definition 20 Entire Output Management 2 Aktive Job-Netzwerke 21 Natural ISPF 3 Zeitplaene 4 Kalender 5 Log-Information 6 Symboltabellen 7 Systemverwaltung 8 Berichte 9 Cross-Referenzen 10 Import/Export 11 Hilfe Kommando => ____________________________________________________________ Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help End Owner Mail |
Die Gestaltung des Hauptmenüs kann von Benutzer zu Benutzer unterschiedlich sein, je nach Autorisierung in seinem Benutzerprofil.
Eigene Anwendungen können in das Hauptmenü integriert werden, was umständliche An- und Abmeldeprozeduren überflüssig macht. Im obigen Beispiel eines Hauptmenüs sind unter der Überschrift RZ-Lösungen die Software AG-Produkte als Option 20 und (Integrated Structured Programming Facility) als Option 21 eingetragen und direkt aufrufbar.
Weitere Informationen siehe Entire Operations-Hauptmenü im Benutzerhandbuch.
Bevor Entire Operations ein Job-Netzwerk identifizieren und aktivieren kann, muss dieses im System definiert werden. Zur Erläuterung kann eine kurze Beschreibung hinzugefügt werden. Eine Knoten-Nummer sollte als Standardwert für die Ausführung aller Jobs in diesem Netzwerk angegeben werden. Eine Symboltabelle kann ebenfalls angegeben werden, um so die Möglichkeit der dynamischen Generierung von Jobkontrollanweisungen zu nutzen. Die Knoten-Nummer eines Rechners wird als Standardwert für die Ausführung aller Jobs des Netzwerks herangezogen und kann für jeden Job überschrieben werden.
20.02.18 ***** Entire Operations ***** 17:53:28 Eigentuemer EXAMPLE Netzwerk-Verwaltung +------------------------------------------------------------------------+ - | | -- | Netzwerk-Definition | | Eigentuemer EXAMPLE Netzwerk __________ Version __________ | | Beschreibung __________________________________________________ | | Schleife existiert | | Standardwerte fuer die Jobs | | Ausfueh. Knoten 146 MVS/ESA Symboltabelle __________ | | JCL Knoten 146 MVS/ESA Symboltabellen-Version __________ | | JCL Speicherart ___ Symboltab.-Aktivierungsmodus X | | Fluchtzeichen Akt. @ Start $ | | Jobende-Aktions-Fehler setzen 'nicht ok' Bedingungen ==> N | | | | Datei ______________________________________________________ | | VolSer ______ Passwort | | definiert nein | ** | --PF1-----PF3-----PF5---PF6---PF7---PF8---PF9---PF10---PF11--------- | | Help End Save Spec Symb SP-UR DfJb Copy MsgRe | +------------------------------------------------------------------------+ Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Add End Save Up Down NxtSt Menu |
Weitere Informationen siehe Netzwerk-Verwaltung im Benutzerhandbuch.
Zeitplanung für ein Job-Netzwerk bedeutet, Datums- und Zeitangaben festzulegen, an denen dieses Netzwerk durchgeführt werden soll. Ein Job-Netzwerk wird aktiviert (d.h. in die aktiven Datenbank kopiert) entsprechend seiner eingeplanten Startzeit und unter Berücksichtigung weiterer Plan-Parameter des Netzwerks.
10.12.18 ***** Entire Operations ***** 11:23:59 Netzwerk-Zeitplan-Definition Eigentuemer EXAMPLE Netzwerk A-1 ------------------------------------------------------------------------------- Zeitplan-Eigent. ==> EXAMPLE___ Zeitplan ==> A-1_______ gueltig ab ==> ________ ________ Zeitplan- Fruehester Spaetester Tage Endezeit Tage Kdo abhaengig Start Start spaeter T spaeter T _ +WW+135 14:00:00 15:00:00 ___ 16:00:00 ___ _ 22:00:00 22:30:00 ___ 23:00:00 ___ _ 16:00:00 16:30:00 ___ 17:00:00 ___ _ ________ ________ ___ ________ ___ _ ________ ________ ___ ________ ___ Anzahl Aktivierungen ==> _____ alle ==> _____ Minuten oder aktivieren um ==> _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ Tages-Endezeit ==> _____ Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help End ExplD Save Sch.L Sch.M Delet Menu |
Während der Durchführung eines Job-Netzwerks überprüft Entire Operations, ob alle Vorbedingungen für einen Job erfüllt sind: Zeitfenster, Ressourcen und Eingabebedingungen. Entsprechend dieser Überprüfung wird der Job automatisch gestartet und seine Ausführung überwacht.
Weitere Informationen siehe Zeitpläne und Zeitplan-Definition anlegen im Benutzerhandbuch.
Innerhalb der Job-Netzwerk-Verwaltung kann der Benutzer die Liste aller zu einem Netzwerk gehörenden Jobs anfordern. Er kann dann Jobs hinzufügen, löschen oder aber verändern. Ein Job wird hierbei definiert durch einen (logischen) Namen, einen Typ und seinen Speicherort (PDS-Datei, Natural-Bibliothek usw.). Eine kurze Beschreibung des Jobs kann hinzugefügt werden. Daneben kann für die Ausführung dieses Jobs eine Knoten-Nummer angegeben werden, die dann den Standardwert überschreibt, der bei der Netzwerk-Definition angegeben wurde.
20.02.18 ***** Entire Operations ***** 18:01:07 Job-Verwaltung Eigentmr EXAMPLE Netzwerk B60-FLOW Version ------------------------------------------------------------------------------ +------------------------------------------------------------------------+ | | | Job-Definition (Master) | 2 | | 1 | Job-Name ==> JOB-01____ Geaendert ==> SAG 20.03.17 14:20 | 1 | Beschreibung ==> Where it all starts_______________________________ | 1 | Jobtyp ==> JOB | | Ausfueh.Knoten ==> 31 BS2000 | 1 | | 2 | Spezieller Typ ==> ________ Symboltabelle ==> EXAM-ST1__ | 1 | Meilensteine ==> ________ Symboltabellen-Version ==> __________ | 1 | Restart-faehig ==> _ | | Suffix-Symbol ==> ________________________________________ | 2 | Fluchtzeichen: Aktivierung ==> @ | | Jobstart ==> $ | ** | Jobende-Aktions-Fehler setzen 'nicht ok' Bedingungen ==> _ | | | | Enter-PF1---PF2--PF3--PF4---PF5---PF6---PF7---PF8---PF9--PF10---PF12- | E | Help Add End Edit Save Spec Symb Net JCL Anzg. Menu | -- +------------------------------------------------------------------------+ |
Wenn im Job die Möglichkeit der dynamischen Generierung von Jobkontrollanweisungen genutzt werden soll, muss die zu verwendende Symboltabelle ebenfalls angegeben werden (siehe hierzu auch den Abschnitt Dynamische Generierung von Jobkontrollanweisungen ). Der Benutzer kann dann alle derart referenzierten Jobkontrollanweisungen einfach über eine zugeordnete PF-Taste editieren.
Weitere Informationen siehe Job-Verwaltung im Benutzerhandbuch.
Die Aktivierung des einzelnen Jobs hängt von seinen Zeitplanungsparametern ab. Genauso wie für ganze Netzwerke können auch für einzelne Jobs (früheste) Startzeiten vergeben werden.
20.02.18 ***** Entire Operations ***** 17:57:51 Job-Verwaltung Eigentmr EXAMPLE Netzwerk B60-FLOW Version +-------------------------------------------------------------------------+ - | | | Zeitplan-Parameter | | Job JOB-012 | | | | Geschaetzte Laufzeit ==> _________ Min. Durchschnitt ==> 0.00 | | Letzte Laufzeit ==> 0.00 0.00 0.00 0.00 | | 0.00 0.00 0.00 0.00 | | | | | | Frueheste Startzeit ==> ________ ___ Tage spaeter | | Spaeteste Startzeit ==> ________ ___ Tage spaeter | | Endezeit ==> ________ ___ Tage spaeter | | | | Zeitplanabhaengigkeit ==> N | | | * | ---PF1---PF3------------PF5----------------PF9---PF10---PF11---PF12-- | | Help End Save LMsg Acct ScDep Menu | +-------------------------------------------------------------------------+ Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Add End Save Up Down Menu |
Daneben kann der Benutzer angeben, ob ein eingeplanter Job, der aus irgendeinem Grund nicht durchgeführt wurde (z.B. wegen Hardware-Problemen) nochmals eingeplant werden soll: der Job würde dann zum nächsten Planungsdatum zweimal ausgeführt werden. Es kann darüber hinaus bestimmt werden, wie lange Jobs in der aktiven Datenbank auf ihre Ausführung warten dürfen. Auch kann der Benutzer dem Job eine geschätzte Laufzeit zuordnen: der Entire Operations-Monitor benutzt diese dann zur Berechnung der voraussichtlichen Ende-Zeit des Jobs.
Mit Hilfe der Zeitplan-Angaben eines Jobs ist es Entire Operations möglich, ausgewählte Benutzer des Systems davon zu unterrichten, dass der Start eines Jobs nicht erfolgt ist, um eine vorher definierte späteste Endezeit nicht zu überschreiten.
Kalender werden in Zeitplänen referenziert, welche ihrerseits in der Netzwerk-Verwaltung definiert sind. Die Anzahl von Kalendern innerhalb des Systems ist beliebig. Kalender können einem Eigentümer gehören oder aber innerhalb des gesamten Systems zur Verfügung stehen. In der Kalender-Verwaltung kann der Benutzer diese hinzufügen, löschen oder verändern (systemweite Kalender können nur vom Administrator verändert werden).
20.02.18 ***** Entire Operations ***** 18:04:17 Eigent. EXAMPLE Kalender EXAMPLECAL Jahr 2018 Januar Februar Maerz Montag . 8 15 22 29 5 12 19 26 5 12 19 26 Dienstag 2 9 16 23 30 6 13 20 27 6 13 20 27 Mittwoch 3 10 17 24 31 7 14 21 28 7 14 21 28 Donnerstag 4 11 18 25 1 8 15 22 1 8 15 22 29 Freitag 5 12 19 26 2 9 16 23 2 9 16 23 30 Samstag . . . . . . . . . . . . . Sonntag . . . . . . . . . . . . April Mai Juni Montag 2 9 16 23 30 7 14 21 28 4 11 18 25 Dienstag 3 10 17 24 1 8 15 22 29 5 12 19 26 Mittwoch 4 11 18 25 2 9 16 23 30 6 13 20 27 Donnerstag 5 12 19 26 3 10 17 24 31 7 14 21 28 Freitag 6 13 20 27 4 11 18 25 1 8 15 22 29 Samstag . . . . . . . . . . . . . Sonntag . . . . . . . . . . . . . Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help End Wkdy Up Down |
Ein Kalender wird durch seinen Namen und eine Jahresangabe definiert. Die Definition neuer oder die Verwaltung bestehender Kalender besteht dann einfach darin, Feiertage zu markieren.
Entire Operations berücksichtigt diese Feiertage dadurch, dass es Netzwerke, die für diese Tage eingeplant wurden, nicht aktiviert. Weitergehende Regelungen für diesen Fall können getroffen werden, wie z.B. aktiviere Netzwerk am folgenden Werktag.
Weitere Informationen siehe Kalender im Benutzerhandbuch.
Logische Bedingungen stellen Abhängigkeiten zwischen Jobs dar. Sie werden mit einer dafür vorgesehenen Verwaltungsfunktion definiert, gelöscht oder aber verändert. Mit einem Job kann eine beliebige Anzahl logischer Bedingungen verknüpft werden. Eine logische Bedingung kann zwei Zustände annehmen, die dann die weitere Verarbeitung innerhalb von Entire Operations bestimmen: wahr (Bedingung existiert) oder falsch (Bedingung existiert nicht).
Jede Bedingung wird durch einen Namen und ein Referenzdatum identifiziert. Dies erlaubt es dem Entire Operations-Monitor, zwischen gleichen Ereignissen zu unterscheiden, die zu verschiedenen Zeitpunkten eingetreten sind. Zeitangaben können entweder in relativen oder absoluten Einheiten gemacht werden. Alle relativen Angaben werden in absolute umgerechnet, wenn der Job in die aktive Datenbank eingestellt wird.
Logische Bedingungen können verwendet werden als:
Eingabebedingungen
Sämtliche Eingabebedingungen müssen erfüllt sein, bevor Entire
Operations einen zuvor aktivierten Job zur Ausführung bringen kann. Um nun zwei
Jobs zu verknüpfen, muss eine Eingabebedingung des einen Jobs mit als
Ausgabebedingung seines Vorgängers definiert werden. Eine Eingabebedingung kann
durch ein CPU-basiertes Ereignis oder durch einen manuellen Benutzereingriff
erfüllt werden.
Bildschirm zum Verwalten der Eingabebedingungen (Beispiel):
20.02.18 ***** Entire Operations ***** 18:16:53 +-------------------------------------------------------------+ Eigentu | | 2 | Master-Eingabebedingung aendern | -------- | | ------ K Bedin | Eigentuemer ==> EXAMPLE___ | it m E60-J | Netzwerk ==> B60-FLOW__ Version ==> | | Bedingung ==> E60-JOB2-O1_________ | | Referenz ==> RUN_____ | | | | Verwendung (markiere mit Y oder N) | | Muss Exist.: Y Exklusiv: _ Loeschen n. Verwendung: _ | | Aktivierungsmodus ==> N | | | | Abhaengig von | | Exit ==> _ Mehrfache Suffixe ==> _ | ******* | Dateiexistenz ==> _ Mailbox ==> _ | ****** D Loesc | Ben.-Sch.(BS2000) ==> _ Symbol-Wert ==> _ | | Job-Var.(BS2000) ==> _ | | | Kommand | -PF1---PF2---PF3-------PF5------------PF9---PF10---PF12-- | Enter-PF | Help Add End Save Xref ScDep Menu | F12--- He +-------------------------------------------------------------+ enu |
Neben dem Namen und dem Referenzdatum kann der Benutzer auch eine Mailbox mit einer Bedingung verknüpfen. Entire Operations wird dann automatisch alle Benutzer dieser Mailbox über alle ihre zugeordneten, ausstehenden Bedingungen informieren. Jedem Benutzer des Systems können bis zu 10 Mailboxen zugeordnet werden: er wird so die Liste aller Meldungen sehen können, die an eine dieser Mailboxen geschickt worden ist.
Daneben kann der Benutzer festlegen, in welchem Status eine Bedingung sein muss, damit ein Job zur Ausführung gebracht werden kann (wahr oder falsch), ob ein Job warten soll, bis ihm diese Bedingung exklusiv zur Verfügung steht (dies kann benutzt werden, um die parallele Ausführung von Jobs zu verhindern, die die gleiche Bedingung benutzen) und ob Entire Operations am Job-Ende die Bedingung automatisch zurücksetzen soll.
Vor der Durchführung eines Jobs überprüft der Entire Operations-Monitor automatisch alle Eingabebedingungen. Daneben können sie diese Prüfung auch von einer Natural-Benutzerroutine durchführen lassen: diese muss dazu bei der Definition der logischen Bedingung angegeben werden.
Weitere Informationen siehe Eingabebedingungen für Job verwalten im Benutzerhandbuch.
Ausgabebedingungen
Ausgabebedingungen werden vom Entire Operations-Monitor automatisch
gepflegt, wenn das ihnen zugeordnete Ereignis eingetreten ist. In diesem Fall
werden alle Jobs gestartet, für die diese Bedingung einzige Eingabebedingung
ist. Ereignisse und Ausgabebedingungen werden in Entire Operations innerhalb
der Job-Ende-Prüfungen festgelegt (siehe Jobende-Prüfung und
-Aktionen).
Fenster zum Verwalten der Ausgabebedingungen (Beispiel):
20.02.18 ***** Entire Operations ***** 18:24:46 Eigentuemer EXAMPLE Netzwerk B60-FLOW Version Job JOB-01 Jobende-Pruefung + Aktionen BS2000 Lauf Datum ------------------------------------------------------------------------------ K Aktion +---------------------------------------------------------+ t AA c C | | k | Auftreten von String 'INVALID RESPONSE-CODE' | | Ausgabebedingungen | | Kdo Status Name der Bedingung Referenz Lauf | | _ Setze E60-JOB1-O RUN | | _ Setze E60-JOB2-02 RUN | | _ Loe. E60-JO15-0 RUN | | _ Loe. E60-JO19-0 RUN | ************* | _ Loe. E60-JOB1-0 RUN | **** _ C | | _ | | ------------- | | ---- A Aktiv. B An | | And. P Beschreib. | | mbol | D Loeschen M Aendern W Wo benutzt | Kommando => _ | Enter-PF1---PF2---PF3---PF5-------PF7---PF8----PF12- | Enter-PF1---PF | Help Add End Save Up Down Menu | 2--- Help Ad +---------------------------------------------------------+ u |
Genau wie im Fall der Eingabebedingungen werden auch Ausgabebedingungen durch Namen und Referenzdatum definiert. Darüber hinaus kann der Benutzer bestimmen, ob die Ausgabebedingung bei Eintreffen des zugeordneten Ereignisses (auf wahr) gesetzt oder (auf falsch) zurückgesetzt werden soll.
Bis zu 20 Ausgabebedingungen können mit einem einzelnen Ereignis verknüpft werden.
Die Job-Ende-Prüfung bezeichnet die Verarbeitung, mit der Entire Operations das Job-Ende feststellt.
Bildschirm zum Verwalten der Job-Ende-Prüfungen und -Aktionen (Beispiel):
20.02.18 ***** Entire Operations ***** 18:27:42 Eigentuemer EXAMPLE Netzwerk B60-FLOW Version Job JOB-01 Jobende-Pruefung + Aktionen BS2000 Lauf Datum ------------------------------------------------------------------------------ K Aktion Step wird geprueft auf bedeutet AA _ C Auftreten von String 'INVALID RESPONSE-CODE' n.ok ******************************* Ende der Daten ******************************* _ C Alle Pruefungen ok _ Mindestens eine Pruefung nicht ok ------------------------------------------------------------------------------ A Aktiv. B Anzg. C Bed. D Loe. E Ed.Exit J Job-Var. L Ress.frg. M Aend. O And. P Beschreib. R Fe.beh. S SYSOUT T Output Mgmt. U Nachr. X Aktion-Exit Y Symbol Kommando => ____________________________________________________________ Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Add End Save Up Down Menu |
Unmittelbar nach Job-Ende untersucht Entire Operations, ob benutzerdefinierte Ereignisse eingetreten sind. Solche Ereignisse können sein:
ein Return-Code wurde in einem bestimmten Arbeitsschritt innerhalb eines Jobs gesetzt,
ein Return-Code wurde in einem beliebigen Arbeitsschritt eines Jobs gesetzt,
eine Zeichenkette wurde im Protokoll oder in den Ausgabe-Listen des Jobs gefunden,
ein Natural-User Exit wurde ausgeführt, welcher seinerseits den Job-Ende-Status durch das Setzen eines Return-Codes anzeigt.
Diese Benutzerroutine kann:
das Job-Protokoll oder die Ausgabelisten selbst untersuchen,
alle vom Job erzeugten Daten lesen,
Systemfunktionen durchführen,
Meldungen verschicken.
Je nach Betriebssystem, auf dem der Job durchgeführt wurde, unternimmt Entire Operations eine Reihe von Standard-Prüfungen zur Feststellung des Job-Ergebnisses. Für z/OS-Systeme werden z.B. Systemabbrüche oder Syntaxfehler in den Jobkontrollanweisungen automatisch erkannt. Diese Standard-Prüfungen werden für jeden Job durchgeführt, unabhängig davon, ob daneben noch benutzerdefinierte Prüfungen für diesen Job angefordert sind.
Für jedes definierte Ereignis kann der Benutzer festlegen, wie Entire Operations darauf reagieren soll. Folgende Möglichkeiten stehen zur Verfügung:
Verknüpfte Ausgabebedingungen automatisch setzen oder zurücksetzen (siehe Ausgabebedingungen).
Eine Nachricht schicken, und zwar wahlweise an:
einen bestimmten Betriebssystem-Benutzer,
die System-Konsole,
eine Entire Operations Mailbox,
an eine E-Mail-Adresse.
Job-Protokoll und Ausgabelisten löschen oder drucken.
Fehlerbehebungsmaßnahmen einleiten (im Falle eines Job-Abbruchs).
Weitere Informationen siehe Job-Ende-Prüfungen und -Aktionen im Benutzerhandbuch.
Bei der Definition eines Jobs innerhalb eines Job-Netzwerks kann der Benutzer bestimmen, dass dessen Jobkontrollanweisungen dynamisch generiert werden, und zwar entweder zur Zeit der Jobaktivierung oder des Jobstarts.
Die dynamische Generierung von Jobkontrollanweisungen ist mit Hilfe der Entire Operations MACRO-Funktionalität realisiert, als Erweiterung der Programmiersprache Natural. Ein solches MACRO besteht aus normalen Natural-Anweisungen sowie Jobkontrollanweisungen beliebigen Formats. Innerhalb der Jobkontrollanweisungen können durch Steuerzeichen gekennzeichnete Variablen verwendet werden, die während der dynamischen Generierung durch ihre Werte ersetzt werden.
Diese aktuellen Werte werden aus den Symboltabellen entnommen, die die aktuellen, als Ersetzungswerte zu verwendenden Werte enthalten müssen. Die zu benutzenden Symboltabellenhierarchie kann im Fenster Verwendbare Symboltabellen bestimmt werden (siehe Jobs und Netzwerke finden, die eine Symboltabelle verwenden im Benutzerhandbuch. Weitere Informationen siehe Fluchtzeichen definieren im Benutzerhandbuch.
Zum Zeitpunkt der Variablenersetzung (entweder Aktivierung oder Ausführung) wird jedes in den Jobkontrollanweisungen referenzierte Symbol, das nicht in der Symboltabelle des Jobs gefunden wird, in der oder den Symboltabellen des Eigentümers SYSDBA gesucht. Die Anzahl der Einträge, die ein Benutzer in einer Symboltabelle definieren kann, ist beliebig, die Anzahl der Symboltabellen ebenfalls.
Darüber hinaus stellt Entire Operations eine Reihe von
Standardvariablen dem dynamisch zu generierenden Programm in einem
Parameterabschnitt zur Verfügung, wie z.B. den Namen des Job-Eigentümers, des
Jobs, des Job-Netzwerks und des ursprünglichen Zeitplan-Datums. Ebenso sind
Natural-Systemvariablen z.B. für Datum (*DAT*
),
Zeit (*TIM*
), Benutzerkennung
(*USER
) verfügbar. Da es möglich ist, all diese
Parameter an beliebigen Stellen der Jobkontrollanweisungen einzubauen, können
unterschiedliche Folgen der Jobkontrollanweisungen in Abhängigkeit von
*DAT*
, *TIM*
usw.
generiert werden.
Die Möglichkeit zur dynamischen Generierung von Jobkontrollanweisungen bietet Entire Operations auf allen unterstützen Betriebssystemen an (z/OS, z/VSE, BS2000, UNIX).
Dynamische JCL-Generierung (JCL-Speicherart MAC).
Beispiel 1: Dynamische Jobkontrollanweisungen in einer z/OS-Umgebung
Beispiel 2: Dynamische Jobkontrollanweisungen in einer BS2000-Umgebung
Beispiel 3: Dynamische Jobkontrollanweisungen in einer UNIX-Umgebung
Die Symboltabelle des MACRO-Programms soll wie folgt aussehen:
Symbolname | Aktueller Wert |
---|---|
BIBLIOTHEK | SN.SYSF.SOURCE |
KLASSE | G |
Eine der Variablen im übergebenen Parameterabschnitt soll den Wert haben:
P-OWNER | NET1 |
Systemvariablen sollen die folgenden Werte besitzen:
*TPSYS | COMPLETE |
*DEVICE | BATCH |
*INIT-USER | SN |
Die folgende Auflistung stellt nun ein Natural MACRO-Programm dar, das einen Parameterabschnitt und Jobkontrollanweisungen umfasst. Variablennamen sind durch #gekennzeichnet und werden aus obiger Symboltabelle entnommen:
# DEFINE DATA PARAMETER USING NOPXPL-A # LOCAL /* MUST BE CODED # END-DEFINE //SNMAC4 JOB ,#P-OWNER,MSGCLASS=X,CLASS=#CLASS //STEP01 EXEC PGM=NOPCONTI,PARM='C0004' //STEPLIB DD DISP=SHR,DSN=#STEPLIB //* DEVICE: *DEVICE, INIT-USER: *INIT-USER //* TPSYS: *TPSYS # IF CLASS = 'G' //* THE MSGCLASS IS REALLY 'G' # ELSE //* ANOTHER MSG-CLASS FOUND # END-IF //*
Die hieraus dynamisch generierten Jobkontrollanweisungen lauten:
//SNMAC4 JOB ,NET1,MSGCLASS=X,CLASS=G //STEP01 EXEC PGM=NOPCONTI,PARM='C0004' //STEPLIB DD DISP=SHR,DSN=SN.SYSF.SOURCE //* DEVICE: BATCH, INIT-USER: SN //* TPSYS: COMPLETE //* THE MSGCLASS IS REALLY 'G' //*
Die Felder des View DB-INFO sollen hierbei nach dem Datenbank-Zugriff (FIND-Anweisung) folgende Werte haben:
Feld | Wert |
---|---|
NUCLEUS | 055 |
LP1 | 1000 |
NU1 | 100 |
ACCOUNT | EXAMPLE |
NH1 | 4000 |
MSG | FHL |
VERSION | 524 |
Die Variablen aus dem Parameterabschnitt sollen folgende Werte haben:
Variable | Wert |
---|---|
P-OWNER | OS |
P-JOB | NUC055 |
P-EXECUTION-NODE | 055 |
Es wird keine Symboltabelle für den MACRO-Job referenziert, alle Variablen sind durch ein vorangestelltes Steuerzeichen (hier: #) gekennzeichnet:
# DEFINE DATA PARAMETER USING NOPXPL-A # 1 L-JOB # 1 REDEFINE L-JOB # 2 L-JOB-A (A3) # 2 L-JOB-NUC (N3) # LOCAL /* LOCAL VARIABLES START HERE # 1 DB-INFO VIEW OF DB-INFO # 2 NUCLEUS # 2 LP1 # 2 NU1 # 2 ACCOUNT # 2 NH1 # 2 MSG # 2 VERSION /* E.G. 524 # 1 LWP (N7) # 1 NUC (N3) # 1 SPOOL (A10) INIT <'NOSPOOL'> # END-DEFINE # * # MOVE P-JOB TO L-JOB-A # MOVE P-EXECUTION-NODE TO NUC # F1. FIND DB-INFO WITH NUCLEUS = NUC /.NUC NUC LOGON #P-OWNER,#ACCOUNT /OPTION MSG=#MSG /REMARK /REMARK NUCLEUS #NUC /REMARK /SYSFILE SYSLST = NUC NUC..LST.NUC /SYSFILE SYSDTA = SYSCMD /FILE ADA VERSION..MOD,LINK=DDLIB /FILE *DUMMY,LINK=DDLOG /FILE *DUMMY,LINK=DDSIBA /FILE ADA NUC..ASSO,LINK=DDASSOR1,SHARUPD=YES /FILE ADA NUC..DATA,LINK=DDDATAR1,SHARUPD=YES /FILE ADA NUC..WORK,LINK=DDWORKR1,SHARUPD=YES /EXEC (ADARUN,ADA VERSION..MOD) # COMPUTE LWP = F1.LP1 * (F1.NU1 + 100) ADARUN PROG=ADANUC,LP=F1.LP1,LU=65535,LWP=#LWP ADARUN DB=#NUC,NU=#NU1,NC=20,TT=600,TNAE=1800 ADARUN NH= NH1 /SYSFILE SYSLST = (PRIMARY) /SYSFILE SYSDTA = (PRIMARY) /SYSFILE SYSOUT = (PRIMARY) /LOGOFF SPOOL # END-FIND
Hieraus resultieren folgende dynamisch generierte Jobkontrollanweisungen:
/.NUC055 LOGON OS,EXAMPLE /OPTION MSG=FHL /REMARK /REMARK NUCLEUS 055 /REMARK /SYSFILE SYSLST = NUC055.LST.NUC /SYSFILE SYSDTA = SYSCMD /FILE ADA524.MOD,LINK=DDLIB /FILE *DUMMY,LINK=DDLOG /FILE *DUMMY,LINK=DDSIBA /FILE ADA055.ASSO,LINK=DDASSOR1,SHARUPD=YES /FILE ADA055.DATA,LINK=DDDATAR1,SHARUPD=YES /FILE ADA055.WORK,LINK=DDWORKR1,SHARUPD=YES /EXEC (ADARUN,ADA524.MOD) ADARUN PROG=ADANUC,LP=1000,LU=65535,LWP=200000 ADARUN DB=055,NU=100,NC=20,TT=600,TNAE=1800 ADARUN NH=4000 /SYSFILE SYSLST = (PRIMARY) /SYSFILE SYSDTA = (PRIMARY) /SYSFILE SYSOUT = (PRIMARY) /LOGOFF NOSPOOL
Anmerkung:
Jede JCL, die zur Aktivierungs-Zeit generiert wurde und die
MACRO-Sprache benutzt, kann vom Benutzer geändert werden, bis der Job endgültig
bestätigt wurde. Natürlich ist diese Veränderung nur für den aktuellen
Netzwerk-Lauf gültig.
Im folgenden Beispiel soll eine dynamische Symbol-Ersetzung innerhalb eines Bourne Shell Scripts erfolgen (als Steuerzeichen dient hier §):
# # Bourne shell script for checking the number of users # entered in /etc/passwd. # If more than §USER-LIMIT entries appear, # the script will be ended with exit 1. # #!/bin/sh set -x USER_COUNT='wc -l < /etc/passwd' echo Number of users on node 'hostname' : $USER_COUNT if test $USER_COUNT -gt §USER-LIMIT then echo USER_COUNT_WARN exit 1 else echo USER_COUNT_OK fi
Die zu verwendende Symboltabelle soll wie folgt aussehen:
Symbol-Name | Aktueller Wert |
---|---|
USER-LIMIT | 100 |
Daraus ergibt sich die folgende ausführbare Shell-Prozedur:
# # Bourne shell script for checking the number of users # entered in /etc/passwd. # If more than 100 entries appear, # the script will be ended with exit 1. # #!/bin/sh set -x USER_COUNT='wc -l < /etc/passwd' echo Number of users on node 'hostname' : $USER_COUNT if test $USER_COUNT -gt 100 then echo USER_COUNT_WARN exit 1 else echo USER_COUNT_OK fi
Anmerkung:
Alle zur Aktivierungszeit durch die Natural MACRO-Funktionalität
aufgebauten Jobkontrollanweisungen können durch den Benutzer noch solange
modifiziert werden, bis der Job tatsächlich gestartet wird. Natürlich sind
diese Modifikationen dann nur für den aktuellen Netzwerklauf gültig.
Mit der Editor-Funktionalität in Entire Operations kann der Benutzer folgende Objekte erstellen, anzeigen oder bearbeiten:
Die Jobkontrollanweisungen (JCL) von Jobs, entweder aus der Master-Datenbank (und somit beliebigen externen Speicherquellen) oder aus der aktiven Datenbank.
Änderungen an den Jobkontrollanweisungen von aktiven Jobs beeinflussen nur den aktuellen Netzwerklauf, sie haben keine Auswirkungen auf die Master-Datenbank.
Natural-Programme und Benutzerroutinen;
Entire Operations MAC (Makro)-Jobs;
Online Dokumentation von Netzwerken, Jobs oder Ereignissen innerhalb von Jobs (Notizzettel-Informationen)
Job-Protokolle (nur zum Anzeigen)
Job-Ausgabelisten (nur zum Anzeigen)
Der Benutzer von Entire Operations ist somit zum Beispiel in der Lage, so unterschiedliche Daten wie UNIX-Prozeduren, CA-LIBRARIAN-Dateien oder LMS-Dateien mit einem einzigen Editor zu bearbeiten.
Der Benutzer kann den Editor aufrufen, indem er die Edit-Funktion im Verwaltungsbildschirm des entsprechenden Objekts auswählt.
Der Editor stellt eine umfassende Funktionalität z/OS/ISPF-ähnlicher
Kommandos zur Verfügung. Diese sind dem Typ des Objekts angepasst, welches
editiert werden soll: zum Beispiel sichert und katalogisiert das Kommando
STOW
ein Natural-Programm, es sollte aber für
Natural-MACRO-Programme nicht verwendet werden. Natural-MACRO-Programme werden
mit dem MACRO
-Kommando gesichert, vorverarbeitet und
katalogisiert.
An textverarbeitenden Funktionen bietet der Editor Zentrierung, physische und logische Tabulator-Benutzung und Text-Überlagerung.
Umfassende Online-Hilfe ist über eine PF-Taste innerhalb der Editor-Funktion verfügbar.
Entire Operations bietet eine große Auswahl an Berichten
("Reports") an, um die Arbeit mit dem System auf allen Ebenen zu
unterstützen. Der Benutzer kann die Berichtsfunktionen aufrufen, indem er die
entsprechende Option im Entire
Operations-Hauptmenü auswählt oder das Direktkommando
REPORTS
in der Kommandozeile
einer beliebigen Bildschirmmaske benutzt.
Berichte decken folgende Bereiche ab:
Information über alle Jobs, selektierbar nach abgebrochenen, beendeten oder nicht gestarteten Jobs. Datumsintervalle sowie Netzwerknamen können zur weiteren Einschränkung der Suche angegeben werden. Die für diese Objekte erstellten Berichte können alle Ereignisse, Aktivierungszeit, Meldungen, Job-Ende-Status usw. enthalten. Alle Job-Auswertungen sind nach Protokollierungszeitpunkten sortiert.
Netzwerk-Information, entweder in der Form eines kurzen Überblicks oder als umfassender Bericht, der detaillierte Informationen aller Netzwerk-Komponenten enthält. In allen Netzwerk-Berichts sind Informationen über das Netzwerk selbst, alle Jobs, die Eingabebedingungen und Ressourcen sowie bei Job-Ende-Behandlung inklusive der Ausgabebedingungen enthalten. Diese ausführlichere Beschreibung beinhaltet zudem auch alle Prosa-Beschreibungen auf Netzwerk-, Job- und Ereignis-Ebene.
Zeitplanübersicht für ausgewählte oder alle Netzwerke, inklusive der Liste aller Jobs, die innerhalb eines bestimmten Zeitfensters eingeplant sind. Diese Auswertung kann entweder für bereits vergangene Perioden angefordert werden, um z.B. alle nicht-erfolgten Netzwerk-Aktivierungen aufgelistet zu bekommen, oder aber für zukünftige Produktionsperioden, um Informationen für deren Vorhersage und Planung zu gewinnen.
Vergleich, ob alle Symbole einer Tabelle in einer anderen Tabelle vorhanden sind. Außerdem werden die Definitionen von gleichnamigen Symbolen verglichen.
Vergleich, ob alle Jobs eines Netzwerks in einem anderen Netzwerk vorhanden sind. Außerdem werden die Definitionen der Netzwerke und die der gleichnamigen Jobs verglichen.
Knoten-Übersicht, liefert eine nach Auswahlkriterien einschränkbare Übersicht über die in Entire Operations verwendeten Knoten (Server) sowie ausführliche Angaben zu den aufgelisteten Knoten.
Eine nach Auswahlkriterien (Eigentümer, Netzwerk, Version) einschränkbare Übersicht über die Verwendung von Unternetzwerken.
Alle Berichte sind online verfügbar, die Daten können aber auch gedruckt werden. Hiermit ist eine einfache Möglichkeit einer Langzeit-Dokumentation gegeben.
Die oben aufgeführten Funktionen können auch im Batch-Betrieb ausgeführt werden.
Mit Hilfe der Entire Operations Import/Export-Funktionen kann der Inhalt der Master-Datenbank in eine Einfachdatei (Flat File) entladen werden. Neben der eigentlichen Verwendung für Datenmigration und Transport können Sie diese Funktionen auch dazu benutzen, Ihr eigenes Berichtssystem aufzubauen.
Weitere Informationen siehe Berichte im Benutzerhandbuch.
Es stehen Online-Funktionen zur Verfügung, die Aussagen über die Verwendung von Objekten in Entire Operations liefern. Dieselben Funktionen können auch im Batch-Betrieb ausgeführt werden.
Weitere Informationen siehe Cross-Referenzen im Benutzerhandbuch.
Entire Operations kann Nachrichten an verschiedene Stellen versenden. Das Versenden kann durch systeminterne oder benutzerdefinierte Ereignisse ausgelöst werden.