Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Der einfache Weg zur fehlerfreien JCL

Ähnliche Präsentationen


Präsentation zum Thema: "Der einfache Weg zur fehlerfreien JCL"—  Präsentation transkript:

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


Herunterladen ppt "Der einfache Weg zur fehlerfreien JCL"

Ähnliche Präsentationen


Google-Anzeigen