Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Der einfache Weg zur fehlerfreien JCL
Smart/JCL Der einfache Weg zur fehlerfreien JCL Basisworkshop HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 1 1 1 1 1 1 1 1 1 1 1
2
Vorwort Der Basiskurs sollte beim ersten Mal in der vorgegebenen sequentiellen Reihenfolge durchgegangen werden. Er hilft Ihnen, SmartJCL besser kennen zu lernen. Der beste Weg dazu ist jedoch einfach: Benutzen Sie SmartJCL so oft es geht. Falls Sie den Kurs nicht in der sequentiellen Reihenfolge durchgehen, können Sie mit Hilfe des Index (s. nächste Folie) navigieren. Einführung Inhalt 1 Inhalt 2 Inhalt 3 Wenn Sie auf dieses Feld klicken, kommen Sie zurück zum Inhaltsverzeichnis.
3
Inhaltsverzeichnis Einführung Im Editor JCL prüfen
Im Editor Scheduling-Variablen simulieren Tipps zum EDIT-Makro Mit ISPF-Dialog/Batch JCL prüfen Mit ISPF-Dialog/Batch Scheduling-Variablen simulieren Sonstiges zu TWS-Variablen
4
Einführung SmartJCL ist ein JCL-Checker
Aufgabe eines JCL-Checkers ist das Auffinden von Fehlern in der JCL vor Produktionseinsatz Das erfordert folgende Eigenschaften: Einzelne Jobs müssen bei Erstellung geprüft werden: Direkt bei der Änderung im ISPF-Editor Nach der Änderung mittels ISPF-Dialog Batch-Modus
5
Einführung Erforderliche Eigenschaften (Fs.):
Ganze Jobketten, im günstigsten Fall der gesamte Produktionsablauf, müssen geprüft werden Dazu ist eine hohe Verarbeitungsgeschwindigkeit erforderlich Eine Simulation der Katalogaktionen wäre wünschenswert Variablen der Scheduling-Systeme müssen berücksichtigt bzw. aufgelöst werden Für TWS zOS existiert die in SmartJCL integrierte Komponente TWS/SimJCL Günstig wäre es, zukünftige Produktionsabläufe im Vorfeld zu prüfen
6
Standard-Kommandos In dieser Präsentation werden die Standardaufruf-Kommandos verwendet. In Ihrem Unternehmen könnten die Kommandos anders heißen. Die Standardkommandos beim EDIT-Makro sind: JCK: JCL prüfen OSJ: TWS-Variablen simulieren OSJ JCK: TWS-Variablen simulieren und aufgelöste JCL prüfen
7
Standard-REXXen In dieser Präsentation werden die Standardaufruf-REXXen verwendet. In Ihrem Unternehmen könnten die Aufrufe anders heißen oder in ISPF integriert sein. Die REXXen in der Datei HLQ.SMARTJCL.CLIST zum Starten des ISPF-Dialoges ist: JCKX: SmartJCL ISPF-Dialog
8
Aufruf-Varianten SmartJCL kann auf folgende Arten eingesetzt werden:
EDIT-Modus Einen Job prüfen Einen Job simulieren Einen Job simulieren und prüfen ISPF-Dialog oder per Batchjob viele Jobs prüfen viele Jobs simulieren viele Jobs simulieren und prüfen
9
JCL im Editor prüfen Sie editieren JCL und wollen diese prüfen
Folgende Varianten sind möglich: Editierte JCL checken prüfen simulieren simulieren und prüfen JCL aus Joblib
10
JCL im Editor prüfen JCL prüfen Verschiedene Beispiele
Beispiel Katalogsimulation Beispiel IDCAMS-Statements prüfen
11
... und wollen die JCL prüfen.
JCL im Editor prüfen Sie editieren Ihre JCL ... ... und wollen die JCL prüfen.
12
JCL im Editor prüfen Geben Sie JCK ein
13
JCL im Editor prüfen Wenn SmartJCL keinen Fehler findet, zeigt SmartJCL die Meldung „Check successful“ an. Ihre JCL ist OK.
14
JCL im Editor prüfen Hinweis: Prozeduren innerhalb des Jobs werden übrigens als NOTE-Zeilen in aufgelöster Form angezeigt
15
JCL im Editor prüfen Wenn SmartJCL einen Fehler findet, zeigt SmartJCL die Meldung „Errors occured“ an. Ihre JCL ist nicht OK. Alle Fehler werden als NOTE-Zeilen angezeigt, mit Label-Kennung, Messagenummer und einem Fehlertext
16
JCL im Editor prüfen Wenn Sie zu einem bestimmten Fehler springen wollen, geben Sie bitte „L .label-kennung“ ein, z.B. L .HAAA, um zum ersten Fehler zu kommen
17
JCL im Editor prüfen SmartJCL springt zum entsprechenden Fehler. Zu jedem fehlerhaften JCL-Statement ist als NOTE-Zeile der Fehlertext eingefügt
18
JCL im Editor prüfen Der Fehlertext „UNDEFINED PARAMETER DCG ON DD STMT“ zeigt an, das der Parameter DCG nicht erlaubt ist. Korrigieren Sie den Wert (hier DCB statt DCG), korrigieren Sie ggf. auch alle anderen Fehler und rufen Sie erneut JCK auf, ...
19
..., solange bis SmartJCL meldet, dass die Prüfung erfolgreich war.
JCL im Editor prüfen ..., solange bis SmartJCL meldet, dass die Prüfung erfolgreich war.
20
Beispiele Im Folgenden werden verschiedene Fehlerszenarien und ihre Meldungen gezeigt. Natürlich gibt es jede Menge weitere Fehlerszenarien, die hier nicht alle aufgeführt werden können. Invalid DCB-Parameter Invalid JCL statement, weil Fortsetzungszeichen fehlt Invalid JCL statement, DD falsch Invalid JCL statement, JOB falsch Invalid JCL statement, EXEC falsch Invalid DISP-Parameter Katalogsimulationsfehler, IDCAMS-DEL-Anweisung in Prozedur falsch
21
Invalid DCB-Parameter
Falsch DORG, richtig DSORG
22
Invalid JCL-Statement
Komma für Fortsetzungszeile fehlt
23
Invalid JCL-Statement
Falsch DF, richtig DD
24
Invalid JCL-Statement
Falsch JOP, richtig JOB
25
Invalid JCL-Statement
Falsch XXEC, richtig EXEC
26
Falsch KATLG, richtig CATLG
Invalid DISP Falsch KATLG, richtig CATLG
27
Katalogaktionen simulieren
Wenn neben den JCL-Fehlern auch die Katalogaktionen geprüft werden sollen (dies kann per Parameter gesteuert werden), kann z.B. o.a. Meldung erscheinen „dataset is already cataloged“.
28
Katalogaktionen simulieren
Springen Sie mit „l .haaa“ zu der entsprechenden Stelle
29
Katalogaktionen simulieren
Die Datei soll hier neu angelegt werden. SmartJCL prüft, ob die Datei schon vorhanden ist und stellt fest, dass die Datei in Ihrem Katalog schon existiert und daher nicht noch einmal angelegt werden kann. Suchen Sie im Job nach dem ersten Auftreten des Dateinamens ...
30
Katalogaktionen simulieren
... und schon erkennen Sie, dass die Datei zu Beginn des Jobs in einer IDCAMS-Prozedur gelöscht werden soll und dass darin die DEL-Anweisung statt mit DEL mit DEK geschrieben wurde.
31
IDCAMS-Statements Wenn in Ihrer Installation aktiviert ist, dass SmartJCL auch IDCAMS-Statements prüfen soll, bekommen Sie von SmartJCL angezeigt, dass das DEL-Statement falsch geschrieben ist.
32
Korrigieren Sie das DEK-Statement in DEL
IDCAMS-Statements Korrigieren Sie das DEK-Statement in DEL
33
JCL im Editor simulieren
Simulieren bedeutet, dass die Scheduler-Variablen aufgelöst werden. Bisher unterstützte Scheduling-Systeme TWS z/OS
34
TWS-JCL im Editor simulieren
Wenn SmartJCL die JCL mit TWS-Variablen simuliert, kommuniziert SmartJCL mit dem TWS. TWS sucht dabei die JCL in folgender Reihenfolge: 1. In der JS-Datei 2. In den TWS zugeordneten Job-Bibliotheken Daher muss eine zu simulierende JCL entweder in der JS-Datei oder auf einer der TWS-Job-Bibliotheken stehen. Weiterhin muss eine Operation im CP oder in der AD-Datei mit einem identischen Jobnamen existieren. Dies ist auch der Grund, dass SmartJCL oder Sie beim Simulieren einer „neuen“ JCL die JCL zuerst auf eine TWS-Joblib oder in die JS-Datei schreiben und dass zum Jobnamen eine Muster-Operation existieren muss.
35
TWS-JCL im Editor simulieren
JCL von Joblib simulieren Aktuell editierte JCL simulieren JCL simulieren und prüfen JCL simulieren und simulierte JCL in JS-Datei speichern Beispiele für Fehlermeldungen Simulation eines Noch-Nicht-TWS-Jobs Simulation eines Scripts
36
TWS-JCL im Editor simulieren
Sie editieren die JCL auf einer Ihrer TWS-Job-Bibliotheken die JCL hat TWS-Variablen
37
TWS-JCL im Editor simulieren
Sichern Sie die JCL mit SAVE und gehen zur nächsten Folie, oder ... ... klicken Sie hier drauf.
38
TWS-JCL im Editor simulieren
Geben Sie OSJ ein
39
TWS-JCL im Editor simulieren
Job-/Membername Der Jobname wird zuerst im TWS-Tagesplan (CP) gesucht. Meldung erscheint, ob der Job gefunden oder nicht gefunden wurde. Sie werden gefragt, ob der Job zusätzlich in der TWS-Definitionsdatei (AD) gesucht werden soll.
40
TWS-JCL im Editor simulieren
Dabei durchsucht SmartJCL alle Operationen aller Aufträge aus der TWS-Definitionsdatei (AD). Dies kann unter Umständen bei sehr vielen Aufträgen mit sehr vielen Operationen je Systemauslastung etwas dauern.
41
TWS-JCL im Editor simulieren
Alle Jobs aus dem Tagesplan (s. Wert CP in Spalte origin) und alle Jobs aus der Definitionsdatenbank (s. Wert AD in Spalte Origin) werden in einer Auswahlliste angezeigt.
42
TWS-JCL im Editor simulieren
Geben Sie das Simulationsdatum und -zeit ein Geben Sie ein IA-Datum und eine IA-Zeit ein. Die IA ist zwingend, wenn Origin AD ist.
43
TWS-JCL im Editor simulieren
Wählen Sie eine Operation aus
44
TWS-JCL im Editor simulieren
SmartJCL löst die TWS-Variablen auf und zeigt Ihnen die simulierte JCL als NOTE-Zeilen an
45
Geänderte JCL im Editor simulieren
Folgende Vorgehensweise benötigen Sie, wenn: die JCL im Editor verändert wurde und noch nicht gesichert worden ist die JCL noch auf keiner TWS-Job-Bibliothek steht Anmerkung: In beiden Fällen müssen Sie SmartJCL explizit mitteilen, dass es die JCL aus dem Editor zur Simulation verwenden soll.
46
Geänderte JCL im Editor simulieren
Geben Sie OSJ ein
47
Geänderte JCL im Editor simulieren
Der Jobname wird zuerst im TWS-Tagesplan (CP) gesucht. Eine Meldung erscheint, ob der Job gefunden oder nicht gefunden wurde. Sie werden gefragt, ob der Job zusätzlich in der TWS-Definitionsdatei (AD) gesucht werden soll.
48
Geänderte JCL im Editor simulieren
Alle Jobs aus dem Tagesplan (s. Wert CP in Spalte origin) und alle Jobs aus der Definitionsdatenbank (s. Wert AD in Spalte Origin) werden in einer Auswahlliste angezeigt.
49
Geänderte JCL im Editor simulieren
Geben Sie das Simulationsdatum und -zeit ein Geben Sie ein IA-Datum und eine IA-Zeit ein. Die IA ist zwingend, wenn Origin AD ist.
50
Geänderte JCL im Editor simulieren
Geben Sie SP an
51
Geänderte JCL im Editor simulieren
Ein Menü mit mehreren Eingabefeldern öffnet sich
52
Geänderte JCL im Editor simulieren
Wenn Sie die JCL aus dem Editor simulieren wollen, geben Sie hier Y an. Mit F3 verlassen Sie dieses Menü.
53
Geänderte JCL im Editor simulieren
Wählen Sie eine Operation aus
54
Geänderte JCL im Editor simulieren
SmartJCL löst die TWS-Variablen auf und zeigt Ihnen die simulierte JCL als NOTE-Zeilen an
55
Geänderte JCL im Editor simulieren
Technischer Ablauf die JCL aus dem Editor wird in die JS-Datei kopiert eine möglicherweise mit den selben Schlüsseldaten existierende JCL in der TWS-JS-Datei (Key Auftragsname, IA, Operationsnummer) wird von SmartJCL zwischen gespeichert und die „editierte JCL“ in die JS-Datei eingefügt die Simulation wird ausgeführt die „editierte JCL“ wird aus der JS-Datei gelöscht eine zwischen gespeicherte JCL wird zurück in die TWS-JS-Datei kopiert
56
Geänderte JCL im Editor simulieren
Wichtiger Hinweis Wenn Sie die JCL direkt im TWS-Tagesplan-Dialog ändern und die geänderte JCL simulieren wollen, funktioniert der Befehl SP nicht, weil TWS die „eigene“ JCL in diesem Moment gegen Änderungen sperrt. Im SmartJCL-Dialog bekommen Sie die Meldung „OSJM214E INSERT OF JCL TO JS-DATASET NOT DONE “. In Ihrer eigenen User-Session bekommen Sie im DD-Statement EQQMLOG folgende Meldungen angezeigt: EQQY722W DELETE RECORD WITH KEY adid ia NOT DONE, IS BEING UPDATED. EQQY722I RESOURCE IS JS EQQY721W CONCURRENT UPDATE (INSERT) OF RECORD WITH KEY adid ia, UPDATE PERFORMED
57
Geänderte JCL im Editor simulieren
Wichtiger Hinweis (Fortsetzung) Wenn Sie die JCL im TWS-Tagesplan-Dialog simulieren wollen, speichern Sie die JCL bitte in das JS-File, indem Sie den TWS-JCL-Editor einmal verlassen und anschließend gleich wieder die JCL editieren. Verwenden Sie beim Simulieren nicht das Kommando SP.
58
Simulieren und Prüfen Mit dem Kommando OSJ JCK können Sie das Simulieren und das Checken in einem Durchlauf durchführen lassen.
59
Simulieren und Prüfen Geben Sie OSJ JCK ein
60
Der Jobname wird zuerst im TWS-Tagesplan (CP) gesucht.
Simulieren und Prüfen Der Jobname wird zuerst im TWS-Tagesplan (CP) gesucht. Meldung erscheint, ob der Job gefunden oder nicht gefunden wurde. Sie werden gefragt, ob der Job zusätzlich in der TWS-Definitionsdatei (AD) gesucht werden soll.
61
Simulieren und Prüfen Alle Jobs aus dem Tagesplan (s. Wert CP in Spalte origin) und alle Jobs aus der Definitionsdatenbank (s. Wert AD in Spalte origin) werden in einer Auswahlliste angezeigt.
62
Geben Sie das Simulationsdatum und -zeit ein
Simulieren und Prüfen Geben Sie das Simulationsdatum und -zeit ein Geben Sie ein IA-Datum und eine IA-Zeit ein. Die IA ist zwingend, wenn die origin AD ist.
63
Wählen Sie eine Operation aus
Simulieren und Prüfen Wählen Sie eine Operation aus
64
Simulieren und Prüfen SmartJCL löst die TWS-Variablen auf und zeigt Ihnen die simulierte JCL sowie Fehlermeldungen als NOTE-Zeilen an.
65
Simulieren und Prüfen In diesem Fall wird die TWS-Variable OCTIME mit dem Wert 0600 ersetzt. Der Dateiname wird auf Gültigkeit geprüft und SmartJCL zeigt an, dass der Dateiqualifier 0600 ungültig ist.
66
JCL des Editors simulieren und speichern
Geben Sie OSJ ein
67
JCL des Editors simulieren und speichern
Der Jobname wird zuerst im TWS-Tagesplan (CP) gesucht. Meldung erscheint, ob der Job gefunden oder nicht gefunden wurde. Sie werden gefragt, ob der Job zusätzlich in der TWS-Definitionsdatei (AD) gesucht werden soll.
68
JCL des Editors simulieren und speichern
Alle Jobs aus dem Tagesplan (s. Wert CP in Spalte origin) und alle Jobs aus der Definitionsdatenbank (s. Wert AD in Spalte origin) werden in einer Auswahlliste angezeigt.
69
JCL des Editors simulieren und speichern
Geben Sie das Simulationsdatum und -zeit ein Geben Sie ein IA-Datum und eine IA-Zeit ein. Die IA ist zwingend, wenn die origin AD ist.
70
JCL des Editors simulieren und speichern
Geben Sie SP an
71
JCL des Editors simulieren und speichern
Ein Menü mit mehreren Eingabefeldern öffnet sich
72
JCL des Editors simulieren und speichern
Wenn Sie die JCL aus dem Editor simulieren wollen, geben Sie hier Y an. Wenn die simulierte JCL in die JS-Datei kopiert werden soll, geben Sie hier Y an. Mit F3 verlassen Sie dieses Menü.
73
JCL des Editors simulieren und speichern
Wählen Sie eine Operation aus
74
JCL des Editors simulieren und speichern
Wenn in der JS-Datei eine JCL existiert, werden Sie gefragt, ob Sie die JS-JCL überschreiben wollen. Geben Sie zum Überschreiben Y an.
75
Beispiele In den folgenden Folien werden verschiedene Beispiele aufgeführt, welche Fehler u.a. beim Simulieren der TWS-Variablentabellen auftreten können und von SmartJCL bzw. TWS/SimJCL aufgezeigt werden Variablentabelle existiert nicht Unbekannte Variable Ungültiges Variablenformat Überlappende Variablen Unbekanntes oder nicht aktives TWS-System Problem in der Kommunikation bzw. mit dem PIF-Server
76
Variablentabelle existiert nicht
77
Variablentabelle existiert nicht
Die Variablentabelle existiert im TWS nicht Lösung Variablentabelle im TWS anlegen
78
Unbekannte Variable
79
Unbekannte Variable TWS kennt die Variablen mit dem Namen &JOBNAME nicht Lösung korrekten Variablenname angeben, z.B. hier &JOBNAME in &OJOBNAME ändern Variable in einer Variablentabelle anlegen, welche dem Job bekannt ist
80
Ungültiges Variablenformat
81
Ungültiges Variablenformat
Die Variable ACDATE des SETFORM-Statements ist unbekannt Im SETFORM-Statement können nur dem TWS bekannte datums- oder zeit-bezogene Variablennamen oder „Trennzeichen“ verwendet werden Lösung Variablenname ACDATE in OCDATE ändern, entsprechend ACTIME in OCTIME
82
Ungültiges Variablenformat
Hier sehen Sie die simulierte JCL
83
Überlappende Variablen
Simulation meldet Fehler Simulation meldet Fehler
84
Überlappende Variablen
Lösung: Besser: nur ?-Variablen in einer Zeile gemeinsam verwenden
85
Überlappende Variablen
Hier sehen Sie die Original-JCL
86
Überlappende Variablen
Hier sehen Sie die korrekte JCL
87
Überlappende Variablen
Hier sehen Sie die simulierte JCL
88
Mögliche Problemsituationen
Auf den folgenden Folien werden einige Szenarien erläutert, welche beim Einsatz der TWS-Simulation von SmartJCL auftreten können: Gründe bei der Fehlermeldung „ERROR in PIF-Init“ Falscher TWS-Subsystemname Unbekannter PIF-Server
89
TWS-Subsystemname falsch
Wenn diese Fehlermeldung erscheint, kann SmartJCL nicht mit dem TWS kommunizieren. Das kann verschiedene Gründe haben.
90
TWS-Subsystemname falsch
Sehen Sie sich im SDSF Ihre aktuelle UserId-Session an.
91
TWS-Subsystemname falsch
Bei jedem „Problem mit TWS“ wird die Datei EQQMLOG normalerweise vom TWS mit Meldungen gefüllt. Sehen Sie sich die „letzte EQQMLOG“ an.
92
TWS-Subsystemname falsch
Hier erkennen sie, dass das TWS-System mit dem Namen OPCT nicht aktiv ist. Technischer Hintergrund: SmartJCL möchte mit einem TWS namens OPCT kommunizieren. Im INIT-Statement in der ersten Zeile erkennen Sie, ob SmartJCL das OPCT direkt ruft (es ist kein LUNAME-Parameter angegeben) oder mittels Server (LUNAME ist angegeben) mit dem OPCT kommunizieren möchte.
93
TWS-Subsystemname falsch
Mögliche Gründe, warum sich SmartJCL nicht an das TWS anmelden kann: mit dem Aufruf OSJ wurde ein Edit-Makro aufgerufen, welches sich an ein unbekanntes TWS-System anmelden möchte, z.B. der TWS-Subsystemname ist nicht korrekt Lösung: TWS-Subsystemnamen korrigieren der TWS-Subsystemname ist zwar korrekt, das TWS ist aber auf einem anderen System aktiv als der SmartJCL-Dialog Lösung: Auf das andere System wechseln oder PIF-Server zur Kommunikation einsetzen.
94
TWS-Subsystemname falsch
Prüfen Sie die Parameter des Members OPZXPARM in hlq.SMARTJCL.CLIST TWS-Subsystemname
95
Unbekannter PIF-Server
Hier erkennen sie am LUNAME in der ersten Zeile, dass SmartJCL mittels Server mit dem OPCT kommunizieren möchte. Die TWS-Fehlermeldung in der dritten Zeile bedeutet, dass dabei ein Problem aufgetreten ist.
96
Unbekannter PIF-Server
SmartJCL kann sicht nicht an das TWS anmelden mit dem Aufruf OSJ wurde ein Edit-Makro aufgerufen, welches sich mittels einem PIF-Server an ein TWS-System anmelden möchte Es gab Probleme mit dem PIF-Server, z.B. der PIF-Server ist nicht gestartet Lösung: PIF-Server starten der PIF-Server ist mit falschen Parametern aktiv Lösung: Systemparameter prüfen der PIF-Server ist auf dem System nicht aktiv STC APPC und/oder ASCH sind nicht aktiv Lösung: APPC und/oder ASCH starten
97
Unbekannter PIF-Server
Prüfen Sie die Angaben des Members OPGKEQQP in hlq.SMARTJCL.SKELS. Ist die Angabe bei LUNAME korrekt, muss in Ihrer APPC-Kommunikation und den dazugehörigen Definitionen die Problemursache liegen.
98
Simulieren eines Nicht-TWS-Jobs
Sie editieren einen neuen Job und zu dem Job existiert noch keine Operation im TWS. Sie wollen den Job simulieren. Technischer Hinweis: Beim Aufruf der TWS-Simulation mittels OSJ kommuniziert SmartJCL mit dem TWS. Dabei sucht TWS die JCL auf einer seiner Job-Bibliotheken. Außerdem sucht TWS die Operation mit dem dazugehörigen Jobnamen im Tagesplan (CP) und in seiner Definitionsdatei (AD).
99
Simulieren eines Nicht-TWS-Jobs
Sie editieren den neuen Job. Zum Simulieren rufen Sie das Kommando OSJ auf.
100
Simulieren eines Nicht-TWS-Jobs
SmartJCL bzw. TWS sucht den Job im Tagesplan und zeigt Ihnen an, dass der Job im CP nicht gefunden wurde. Sie könnten den Job auch noch in der Definitionsdatei (AD) suchen. Geben Sie dazu Y an.
101
Simulieren eines Nicht-TWS-Jobs
Wenn der Job weder im CP noch im AD gefunden wird, gibt SmartJCL eine entsprechende Meldung aus. SmartJCL kann den Job also so nicht simulieren.
102
Simulieren eines Nicht-TWS-Jobs
Mittels folgender Vorgehensweise kann auch ein nicht-TWS-Job simuliert werden: Legen Sie im TWS einen Muster-Auftrag mit einem Musterjob anlegen, z.B. mit Auftragsname SMARTJCLTEMPLATE und Jobname SMARTJCL. Kopieren Sie die geänderte JCL in das Musterjob-Member. Editieren Sie den Musterjob. Führen Sie die Simulation mit dem Musterjob aus. Auf den nächsten Folien wird dies veranschaulicht.
103
Simulieren eines Nicht-TWS-Jobs
Speichern Sie die JCL des neuen Jobs. Editieren Sie anschließend den SmartJCL-Musterjob, hier mit dem Jobnamen SMARTJCL.
104
Simulieren eines Nicht-TWS-Jobs
Kopieren Sie Ihren Job in den Musterjob
105
Simulieren eines Nicht-TWS-Jobs
Speichern Sie die JCL des Musterjobs
106
Simulieren eines Nicht-TWS-Jobs
Rufen Sie mit OSJ die Simulation auf
107
Simulieren eines Nicht-TWS-Jobs
SmartJCL meldet hier, dass der Job im Tagesplan (CP) nicht gefunden wurde und dass Sie den Job in der Definitionsdatei (AD) suchen können. Geben Sie dazu Y an.
108
Simulieren eines Nicht-TWS-Jobs
Der Musterjob SMARTJCL des Musterauftrags SMARTJCLTEMPLATE wird gefunden. Wenn Sie mehrere Musterjobs im TWS angelegt hätten, würden alle in der Liste angezeigt. Wählen Sie eine Operation aus.
109
Simulieren eines Nicht-TWS-Jobs
Die simulierte JCL wird angezeigt.
110
Simulieren/Prüfen eines Nicht-TWS-Jobs
Auch einen Nicht-TWS-Job könnten Sie mit dem Kommando OSJ JCK simulieren und gleichzeitig prüfen. Vorgehensweise siehe nächste Folien.
111
Simulieren/Prüfen eines Nicht-TWS-Jobs
Rufen Sie mit OSJ JCK die Simulation inklusive JCL-Prüfung auf
112
Simulieren/Prüfen eines Nicht-TWS-Jobs
SmartJCL meldet hier, dass der Job im Tagesplan (CP) nicht gefunden wurde und dass Sie den Job in der Definitionsdatei (AD) suchen können. Geben Sie dazu Y an.
113
Simulieren/Prüfen eines Nicht-TWS-Jobs
Der Musterjob SMARTJCL des Musterauftrags SMARTJCLTEMPLATE wird gefunden. Wenn Sie mehrere Musterjobs im TWS angelegt hätten, würden alle in der Liste angezeigt. Wählen Sie eine Operation aus.
114
Simulieren/Prüfen eines Nicht-TWS-Jobs
Die JCL wird simuliert angezeigt inkl. gefundener Fehler
115
TWS-Variable im Script
Auch bei “zentraler Script-Haltung” kann die Simulationsfunktion genutzt werden. Als Beispiel sehen Sie hier ein Skript mit einer TWS-Variable &MANDKEY #!/BIN/KSH # #* TEST Script //*%OPC SCAN TU="TEST_0" SRVID="S001V1" P1="&MANDKEY." PFAD="/PROJECT/TEST/SCR/" SCR="TEST01" SUDO SU - TEST_0 -C "$PFAD$SCR $P1" ; EXIT $?
116
TWS-Variable im Script
Z.B. werden bei Batch-Bridge-Produkten häufig TWS-Standard-Variable wie &OJOBNAME eingesetzt, z.B. //*%OPC SCAN //STEP1 EXEC MYPROC //MYSCRIPT DD * #!/BIN/KSH TU="TEST_0" SRVID="S001V1" P1="&MANDKEY." PFAD="/PROJECT/TEST/SCR/" SCR="TEST01" SUDO SU - TEST_0 -C "$PFAD$SCR $P1 %X" ; EXIT $? //SYSIN DD DSN=MY.XYLIB(L4711),DISP=SHR // DD * -C &OJOBNAME..&OOPNO..&OADID..&OYMD1..&OHHMM Variablen
117
TWS-Variable im Script
******************* JCL PREPARED BY SMARTJCL/SIMJCL ***** //P390KVS2 JOB CLASS=A,MSGCLASS=T,REGION=5M,NOTIFY=P390K //* //*%OPC SCAN //STEP1 EXEC MYPROC //MYSCRIPT DD DATA,DLM='$$' #!/BIN/KSH TU="TEST_0" SRVID="S001V1" P1="HORIZONT" PFAD="/PROJECT/TEST/SCR/" SCR="TEST01" //*%OPC BEGIN ACTION=NOSCAN SUDO SU - TEST_0 -C "$PFAD$SCR $P1 %x" ; EXIT $? //*%OPC END ACTION=NOSCAN $$ //SYSIN DD DSN=MY.XYLIB(L4711),DISP=SHR // DD * -C P390KVS2.075.HELMUTTESTV ************************** END OF PREPARED JCL ********** Mit der SmartJCL-Simulationsfunktion können auch TWS-Variablen in „zentralen Skripten“ simuliert werden
118
Tipps zum TWS-EDIT-Makro
TWS-Informationen im Editor in JCL anzeigen Simulierte JCL als NOTE-Zeilen anzeigen oder in temporäre Datei
119
TWS-Daten in der JCL anzeigen
Im Edit-Makro (mit dem Standardnamen OSJ) können Sie mit dem Parameter TWSINFO steuern, ob die TWS-Daten angezeigt werden sollen (TWSINFO=Y) oder nicht (TWSINFO=N). Hier ein Auszug des Makros: "SELECT CMD(EXEC '&OPICLIST(OSJXMAC0)'", "'CHK="PARAM" INI= DPT=N TWSINFO=Y') NEWAPPL(OSJ) PASSLIB" Der Standardwert ist TWSINFO=N. Das Ergebnis sehen Sie auf der nächsten Folie.
120
TWS-Daten in der JCL anzeigen
Anzeige der wichtigsten TWS-Informationen im JCL-Editor File Edit Confirm Menu Utilities Compilers Test Help EDIT P390A.HUP.PLI.DEV($C1) COMMAND ===> ****** ************************ Top of Data ********************* ==MSG> PREDECESSORS: ==MSG> APPLICATION OPNO JOBNAME ==MSG> ==MSG> XINFO XXRJCM2 ==MSG> XINFO XXRJCM1 ==MSG> XINFO ==MSG> SUCCESSORS: ==MSG> XINFO XXRJDBLC ==MSG> SPECIAL RESOURCES: ==MSG> ==MSG> DSN1 =NOTE= ******************* JCL PREPARED BY SMARTJCL/SIMJCL ******* //XXRJCM3 JOB (ACCOUNT),'HORIZONT',MSGCLASS=T,CLASS=A, Predecessor Successor Special Resource
121
Simulierte JCL als NOTE-Zeilen?
Im Edit-Makro (mit dem Standardnamen OSJ) können Sie mit dem Parameter DPT steuern, ob die simulierte und aufgelöste JCL als NOTE-Zeilen zu Beginn des editierten Members angezeigt werden (DPT=N) oder in einer eigenen temporären Datei im ISPF-Browse (DPT=B). Hier ein Auszug des Makros: "SELECT CMD(EXEC '&OPICLIST(OSJXMAC0)'", "'CHK="PARAM" INI= DPT=N TWSINFO=Y') NEWAPPL(OSJ) PASSLIB" Der Standardwert ist DPT=N.
122
SmartJCL ISPF-Dialog Der ISPF-Dialog von SmartJCL ist in Ihre ISPF-Umgebung integriert. Oder wird mittels der REXX JCKX aufgerufen.
123
SmartJCL ISPF-Dialog Geben Sie als erstes die JCL-Library an, auf der die Jobs stehen, welche Sie prüfen wollen Definieren Sie, ob Sie den Job, welcher generiert wird, sofort starten wollen (S), oder ob Sie den Job zuerst im Editor sehen wollen.
124
Jobs über eine Jobliste auswählen
SmartJCL ISPF-Dialog Sie können mit diesem Panel steuern, ob Sie einen Job prüfen wollen, ob Sie von einem Job bis zu einem Job prüfen wollen, oder ob Sie die Jobmember über eine Jobliste definieren wollen. 1 Job auswählen von-Job-bis-Job Jobs über eine Jobliste auswählen
125
1 Job-Member prüfen Wenn Sie genau einen Job prüfen wollen, geben Sie nur im linken Feld (hier mit hahmvara gefüllt) einen Membernamen an. Das rechte Feld muss leer sein.
126
„von-Job“ – „bis-Job“ prüfen
Wenn Sie von einem Job bis zu einem Job prüfen wollen, geben Sie das Startmember im linken Feld und das Ende-Member im rechten Feld an
127
SmartJCL ISPF-Dialog Wenn Sie im vorigen Panel definiert haben, dass Sie den Job im Editor sehen wollen, wird Ihnen die JCL angezeigt. Mit SUB können Sie den Job starten.
128
SmartJCL ISPF-Dialog - Ergebnis
Kontrollieren Sie den Job. Bei einem Returncode 0 hat SmartJCL keinen JCL-Fehler entdeckt. Im SYSPRINT sehen Sie Ihre JCL und dazugehörige Meldungen.
129
SmartJCL ISPF-Dialog - Ergebnis
Am Ende vom SYSPRINT wird Ihnen eine Zusammenfassung angezeigt.
130
Viele verschiedene Jobs prüfen
Wenn Sie viele verschiedene Jobs prüfen wollen, verwenden Sie das Kommando JOBLIST. Im Feld Joblist müssen Sie einen Dateinamen angeben.
131
Viele verschiedene Jobs prüfen
Wenn die Joblist-Datei existiert, wird diese angezeigt. Andernfalls wird die Datei angelegt und leer angezeigt.
132
Viele verschiedene Jobs prüfen
Mit MEMBER=jobname können Sie je Zeile einen Job spezifizieren. Mit den Platzhaltern % (für 1 Zeichen) und * (für beliebig viele Zeichen) können Sie mehrere Jobs auswählen.
133
Viele verschiedene Jobs prüfen
Definieren Sie, ob Sie den Job, welcher generiert wird, sofort starten wollen (S), oder ob Sie den Job zuerst im Editor sehen wollen.
134
Viele verschiedene Jobs prüfen
Wenn Sie im vorigen Panel definiert haben, dass Sie den Job im Editor sehen wollen, wird Ihnen die JCL angezeigt. Mit SUB können Sie den Job starten.
135
Viele verschiedene Jobs prüfen
Kontrollieren Sie den Job. Bei einem Returncode 0 hat SmartJCL keinen JCL-Fehler entdeckt. Im SYSPRINT sehen Sie Ihre JCL und dazugehörige Meldungen.
136
Viele verschiedene Jobs prüfen
Am Ende vom SYSPRINT wird Ihnen eine Zusammenfassung angezeigt.
137
TWS/SimJCL ISPF-Dialog
Der ISPF-Dialog der TWS-Simulation von SmartJCL ist in Ihre ISPF-Umgebung integriert. Oder wird mittels der REXX OSJX aufgerufen. Diese TWS-Simulations-Komponente wird mit TWS/SimJCL bezeichnet. Es erscheint folgendes Panel
138
TWS/SimJCL ISPF-Dialog
Das Panel ist in mehrere Gruppen aufgeteilt. Mit den Menüpunkten 1 bis 3 selektieren Sie Operationen aus der AD-, der CP-, dem LTP oder einem beliebigen zukünftigen Tag aus. Mit dem Menüpunkt 4 werden die aus 1 bis 3 selektierten Operationen simuliert. Mit dem Menüpunkt 5 können Sie die im Menüpunkt 4 simulierte JCL prüfen. Mit dem Menüpunkt 6 können Sie beliebige JCL prüfen. Der Menüpunkt 7 dient zum Reformatieren. (Hinweis: Verfügbar ab März 2003.)
139
TWS/SimJCL ISPF-Dialog
Selektion Auswahl 1: Selektion AD Auswahl 2: Selektion CP Auswahl 3: Forecast Simulation Auswahl 4: Simulation Check Auswahl 5: Check mit vorheriger Simulation Auswahl 6: Check ohne vorherige Simulation
140
Menü 1 - AD Wenn Sie Operationen aus der Definitionsdatei (AD) selektieren wollen, geben Sie 1 an.
141
AD - für x oder alle Aufträge
Wenn Sie die Selektion über den Auftragsnamen machen können, geben Sie hier Ihre Selektion an. Geben Sie * für alle Aufträge an.
142
AD - für x oder alle Aufträge
Wenn Sie im vorigen Panel definiert haben, dass Sie den Job im Editor sehen wollen, wird Ihnen die JCL angezeigt. Mit SUB können Sie den Job starten.
143
AD - für x oder alle Aufträge
Kontrollieren Sie den Job. Bei einem Returncode 0 hat SmartJCL keinen JCL-Fehler entdeckt. Im SYSPRINT sehen Sie Ihre JCL und dazugehörige Meldungen.
144
AD - für x oder alle Aufträge
Im SYSPRINT des Steps ADUNL erkennen Sie, wieviele Operationen gefunden wurden.
145
AD - für x oder alle Aufträge
Hier haben 39 Operationen in 9 von 3695 Aufträgen der Selektion entsprochen.
146
AD - erweiterte Selektion
Das Ergebnis ist eine Datei (Defaultdateinamen userid.OSJ.LIST) mit allen gefundenen Operationen. Spalten der Datei: Auftragsname, Workstation, Operationsnummer, Jobnamen.
147
AD - erweiterte Selektion
Wenn Sie die Selektion nicht über den Auftragsnamen machen können, löschen Sie das Feld.
148
AD - erweiterte Selektion
Nun haben Sie verschiedene Selektionsfelder zur Auswahl. Der weitere Ablauf ist identisch dem vorigen.
149
AD - erweiterte Selektion
Alternativ können Sie mit dem Befehl APP eine Applikationsliste editieren, welche als Selektion dient. Der weitere Ablauf ist identisch dem vorigen.
150
Menü 2 - CP Wenn Sie Operationen aus dem Tagesplan (CP) selektieren wollen, geben Sie 2 an.
151
CP - für x oder alle Aufträge
Wenn Sie die Selektion über den Auftragsnamen machen können, geben Sie hier Ihre Selektion an. Geben Sie * für alle Aufträge an.
152
CP - für x oder alle Aufträge
Wenn Sie im vorigen Panel definiert haben, dass Sie den Job im Editor sehen wollen, wird Ihnen die JCL angezeigt. Mit SUB können Sie den Job starten.
153
CP - für x oder alle Aufträge
Kontrollieren Sie den Job. Bei einem Returncode 0 hat SmartJCL keinen JCL-Fehler entdeckt. Im SYSPRINT sehen Sie Ihre JCL und dazugehörige Meldungen.
154
CP - für x oder alle Aufträge
Hier haben 10 Operationen der Selektion entsprochen.
155
CP - für x oder alle Aufträge
Das Ergebnis ist eine Datei (Defaultdateinamen userid.OSJ.LIST) mit allen gefundenen Operationen. Spalten der Datei: Auftragsname, Workstation, Operationsnummer, Jobnamen, IA, geplante Startzeit.
156
CP - erweiterte Selektion
Wenn Sie die Selektion nicht über den Auftragsnamen machen können, löschen Sie das Feld.
157
CP - erweiterte Selektion
Nun haben Sie verschiedene Selektionsfelder zur Auswahl. Der weitere Ablauf ist identisch dem vorigen.
158
CP - erweiterte Selektion
Alternativ können Sie mit dem Befehl APP eine Applikationsliste editieren, welche als Selektion dient. Der weitere Ablauf ist identisch dem vorigen.
159
Menü 3 - Forecast Wenn Sie Operationen aus dem Langzeitplan oder für jeden zukünftigen Tag selektieren wollen, geben Sie 3 an.
160
Menü 3 - Forecast Für x oder alle Aufträge aus AD
Für x Aufträge aus AD mit erweiterter Selektion Für alle Aufträge aus LTP Für x Aufträge aus LTP mit erweiterter Selektion
161
Forecast - für x oder alle Aufträge
Wenn Sie Operationen aus dem Langzeitplan oder für jeden zukünftigen Tag selektieren wollen, geben Sie 3 an.
162
Forecast - für x oder alle Aufträge
Geben Sie hier Ihren Simulationszeitraum (Startdatum-zeit, Endedatum,-zeit) an.
163
Forecast - für x oder alle Aufträge
Geben Sie hier an, ob die Aufträge aus dem Langzeitplan (L) ermittelt werden sollen, oder aus der Definitionsdatei (F).
164
Forecast - für x oder alle Aufträge
Wenn Sie die Selektion über den Auftragsnamen machen können, geben Sie hier Ihre Selektion an. Geben Sie * für alle Aufträge an.
165
Forecast - für x oder alle Aufträge
Wenn Sie die Selektion nicht über den Auftragsnamen machen können, löschen Sie das Feld.
166
Forecast - für x oder alle Aufträge
Nun haben Sie verschiedene Selektionsfelder zur Auswahl. Der weitere Ablauf ist identisch dem vorigen.
167
Forecast - für x oder alle Aufträge
Wenn Sie definiert haben, dass Sie den Job im Editor sehen wollen, wird Ihnen die JCL angezeigt. Mit SUB können Sie den Job starten.
168
Forecast - für x oder alle Aufträge
Kontrollieren Sie den Job. Bei einem Returncode 0 hat SmartJCL keinen JCL-Fehler entdeckt. Im SYSPRINT sehen Sie Ihre JCL und dazugehörige Meldungen.
169
Forecast - für x oder alle Aufträge
Hier haben 39 Operationen in 9 von 3695 Aufträgen der Selektion entsprochen.
170
Forecast - für x oder alle Aufträge
Das Ergebnis ist eine Datei (Defaultdateinamen userid.OSJ.LIST) mit allen gefundenen Operationen. Spalten der Datei: Auftragsname, Workstation, Operationsnummer, Jobnamen, IA, geplante Startzeit.
171
Mit dem Menüpunkt 4 starten Sie die Simulation.
Menü 4 - Simulation Mit dem Menüpunkt 4 starten Sie die Simulation.
172
Simulation Geben Sie hier die Eingabedatei an. Dies ist die Joblisten-Datei der vorherigen Menüpunkte 1 bis 3.
173
Simulation Geben Sie hier eine Ausgabedatei an, in welche die simulierte JCL geschrieben werden soll.
174
Simulation Geben Sie Ihren gewünschten Simulationszeitraum an. Sie können eine IA angeben (für &O-Variablen) sowie eine geplante Startzeit (für &C-Variablen). Mit der Option A wird die geplante Startzeit für alle Operationen verwendet, mit U nur für die Operationen, welche keine geplante Startzeit besitzen.
175
Simulation Wenn Sie im vorigen Panel definiert haben, dass Sie den Job im Editor sehen wollen, wird Ihnen die JCL angezeigt. Mit SUB können Sie den Job starten.
176
Simulation Kontrollieren Sie den Job. Bei einem Returncode 0 hat SmartJCL keine Fehler zur Simulation entdeckt. Im SYSPRINT sehen Sie Meldungen, z.B. wenn keine JCL gefunden wurde.
177
Simulation Wenn bei der Simulation Probleme aufgetreten sind, wird Ihnen die relavante Operation gemeldet.
178
Nach EQQMLOG meldet TWS seine Meldungen.
Simulation Nach EQQMLOG meldet TWS seine Meldungen.
179
Simulation Die simulierte bzw. aufgelöste JCL steht in der Datei userid.OSJ.JCLOUT.
180
Check der simulierten JCL
Mit 5 können Sie die in 4 simulierte JCL prüfen.
181
Check der simulierten JCL
Wenn Sie im vorigen Panel definiert haben, dass Sie den Job im Editor sehen wollen, wird Ihnen die JCL angezeigt. Mit SUB können Sie den Job starten.
182
Check der simulierten JCL - Ergebnis
Die geprüfte JCL inklusive Fehlermeldungen steht in SYSPRINT.
183
Check der simulierten JCL - Ergebnis
Kontrollieren Sie den Job. Bei einem Returncode 0 hat SmartJCL keinen JCL-Fehler entdeckt. Im SYSPRINT sehen Sie Ihre JCL und dazugehörige Meldungen.
184
Sonstiges Im Folgenden sind verschiedene Themen beschrieben, z.B. wie &O- oder &C-TWS-Variablen aufgelöst werden.
185
TWS-Variablen auflösen
Zur Technik &O- bzw. &Occurence-Datums-/Zeit-Variablen werden mittels dem IA-Wert aus dem Tagesplan (bei origin CP) oder mittels der angegeben IA (bei origin AD) berechnet &C- bzw. &Current-Datums-/Zeit-Variablen werden mittels dem angegeben Simulationszeitraum berechnet Variablen, welche sich auf den Auftragsnamen, den Jobnamen, die Workstation o.ä. beziehen, werden aufgelöst, wenn der Wert ermittelt werden kann
186
TWS-Variablen auflösen
Zur Technik (Fortsetzung) NOSCAN und SCAN-Direktriven werden unterstützt ?-Variablen werden korrekt ermittelt Statements wie SEARCH und TABLE werden berücksichtigt Variablen der globalen TWS-Varieblantabelle werden erkannt die Sonderformen der TWS-Variablen-Statements wie SETFORM, SETVAR, etc. werden aufgelöst, wenn möglich
187
JCL im Editor simulieren
Wenn SmartJCL die JCL mit TWS-Variablen simuliert, kommuniziert SmartJCL mit dem TWS. TWS sucht dabei die JCL in folgender Reihenfolge: 1. In der JS-Datei 2. In den TWS zugeordneten Job-Bibliotheken Daher muss eine zu simulierende JCL entweder in der JS-Datei oder auf einer der TWS-Job-Bibliotheken stehen. Weiterhin muss eine Operation im CP oder in der AD-Datei mit einem identischen Jobnamen existieren. Dies ist auch der Grund, dass SmartJCL oder Sie beim Simulieren einer „neuen“ JCL die JCL zuerst auf eine TWS-Joblib oder in die JS-Datei schreiben und dass zum Jobnamen eine Muster-Operation existieren muss.
188
Die Liste wird auf der Grundlage des JobNamen des aktuell editierten Members erstellt: d.h. ermittelt wird der Membername des aktuell editierten Members, wird dieser nicht gefunden wird geprüft ob der Aufruf aus einem TWS (Panel: EQQMJCLE) erfolgt und der JobName über eine TWS-Variable (UEJOBNM) in den shared Pool geholt, wird auch hier nichts gefunden (z.B. weil gerade ein temporäres Dataset editiert wird) liest das Programm die ersten 30 Zeilen aus dem edit und sucht den Jobnamen (Probleme kann es hier geben, wenn der Jobname als (TWS-) Variable vorliegt.
189
Smart/JCL HORIZONT Vielen Dank für Ihre Aufmerksamkeit!
Der einfache Weg zur fehlerfreien JCL Vielen Dank für Ihre Aufmerksamkeit! HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 1 1 1 1 1 1 1 1 1 1 1
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.