COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23....

14
COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler Stromberger Straße 36A 55411 Bingen Fon: +49-6721-992611 Fax: +49-6721-992613 Mail: [email protected] Internet : http://www.cps4it.de Steuernummer: 08/220/2497/3, Finanzamt Bingen, Ust-ID : DE214792185

Transcript of COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23....

Page 1: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL

Dumpanalyse im z/OS

Musterlösungen zu den Übungen

23. Januar 2009

Eine Ausarbeitung von:

cps4it Ralf Seidler • Stromberger Straße 36A • 55411 Bingen Fon: +49-6721-992611 • Fax: +49-6721-992613 • Mail: [email protected] Internet : http://www.cps4it.de Steuernummer: 08/220/2497/3, Finanzamt Bingen, Ust-ID : DE214792185

Page 2: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 2 von 14

Diese Seite bleibt frei

Page 3: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 3 von 14

Inhaltsverzeichnis

1 Vorbereitungen _________________________________________________________ 5

1.1 Anmelden und Test der User-Iden ________________________________________________________________________ 5

1.2 Zugang zu Bookmanager im Intranet ______________________________________________________________________ 5

1.3 Zugang zum Bookmanager im Internet ____________________________________________________________________ 5

1.4 Wichtige Books in COBOL _______________________________________________________________________________ 6

1.5 Wichtige Books in LE ___________________________________________________________________________________ 6

1.6 Das Bookshelf „Messages and Codes“ _____________________________________________________________________ 6

2 LE – Programm Management _____________________________________________ 7

2.1 Sprachen unter LE _____________________________________________________________________________________ 7

2.2 CEL __________________________________________________________________________________________________ 7

2.3 Enklave ______________________________________________________________________________________________ 7

2.4 Thread _______________________________________________________________________________________________ 7

2.5 Prozess ______________________________________________________________________________________________ 7

3 LE – Condition Handling __________________________________________________ 8

3.1 Beispiele der CEL ______________________________________________________________________________________ 8

3.2 Initialisierung _________________________________________________________________________________________ 8

3.3 Storage Manager ______________________________________________________________________________________ 8

3.4 Condition Handler _____________________________________________________________________________________ 8

3.5 Terminator ___________________________________________________________________________________________ 8

4 LE – Condition Handling __________________________________________________ 9

4.1 Wichtige Module im Dump ______________________________________________________________________________ 9

4.2 Aufbau der COBOL-Meldungen ___________________________________________________________________________ 9

4.3 Dumpinformationen finden in Beispiel ____________________________________________________________________ 9

4.4 Dumpinformationen finden in einem Produktionsabbruch ___________________________________________________ 11

5 Linkage Convention und Optionen _________________________________________ 12

5.1 Programm erstellen ___________________________________________________________________________________ 12

5.2 Umwandlungsoptionen einstellen _______________________________________________________________________ 12

5.3 JCL zu Programm erstellen _____________________________________________________________________________ 12

6 Linkage Convention und Optionen _________________________________________ 13

6.1 Steuerblöcke in Umwandlungsliste ______________________________________________________________________ 13

6.2 Tests des Programms mit verschiedenen Abbrüchen ________________________________________________________ 13 6.2.1 Abbruch S0C7 auf verschiedenen Feldern ___________________________________________ 13 6.2.2 Abbruch S0CB _________________________________________________________________ 13 6.2.3 Abbruch S0C4 mit Subscript ______________________________________________________ 13 6.2.4 Abbruch U1066 mit Subscript _____________________________________________________ 13

6.3 Besonderes im IMS ___________________________________________________________________________________ 13

7 Programmiertechniken __________________________________________________ 14

7.1 Index-Nutzung _______________________________________________________________________________________ 14

7.2 Variablendefinitionen _________________________________________________________________________________ 14

Page 4: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 4 von 14

Diese Seite bleibt frei

Page 5: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 5 von 14

1 Vorbereitungen

Zum Schmunzeln

"Glück ist: zu begreifen, wie alles zusammenhängt." Sten Nadolny (*1942), dt. Schriftsteller

1.1 Anmelden und Test der User-Iden

Keine Musterlösung

1.2 Zugang zu Bookmanager im Intranet

Eine Möglichkeit ist über das Prodnet zu gehen; dort gibt es verschiedene Möglichkeiten, um zum Bookmanager zu kommen.

1.3 Zugang zum Bookmanager im Internet

http://www.ibm.com Nach Eingabe des Suchbegriffes „COBOL“ rechts oben erhält man eine Liste vieler Seiten. Die erste Angabe verweist auf: http://www-306.ibm.com/software/awdtools/cobol/ Links ist eine Navigationsleiste mit dem Begriff Library. Nach dem Klick, „En-terprise-COBOL“ auswählen. Die neueste Version ist Enterprise COBOL for

z/OS, Version 3 Release 4 Geben Sie als Suchbegriff „Language Environment“ ein. Auf der Liste gibt es einen Link, der direkt zur Library führt. Die aktuellste Version steht oben und ist z/OS V1R7 Language Environment. Die Einstiegsseite zu LE ist übrigens: http://www-03.ibm.com/servers/eserver/zseries/zos/le/

Page 6: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 6 von 14

1.4 Wichtige Books in COBOL

Die wesentlichen Books sind: Enterprise COBOL for z/OS V3.4 Language Reference Enterprise COBOL for z/OS V3.4 Programming Guide

1.5 Wichtige Books in LE

Die wesentlichen Books sind: z/OS V1R7.0 Language Environment Concepts Guide z/OS V1R7.0 Language Environment Programming Guide z/OS V1R7.0 Language Environment Run-Time Messages Alle anderen Books sind themenspezifisch.

1.6 Das Bookshelf „Messages and Codes“

Auf der IBM-Seite sind diese nicht einfach zu finden. Die neueste Version liegt bereit unter http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/Shelves/ez2mz700 Der Weg dauert recht lange und ist wie folgt möglich: Einstieg über: http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/library Als Suchbegriff Messages eingeben. Am Ende der Liste ist das Gesuchte.

Page 7: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 7 von 14

2 LE – Programm Management

2.1 Sprachen unter LE

Language Environment ist die gemeinsame Laufzeitumgebung für COBOL, PL1, C/C++ und Fortran. Assembler-Module können ebenfalls aufgerufen werden, denn ASM benötigt keine Laufzeitumgebung.

2.2 CEL

Die CEL ist die Sammlung aller Laufzeitmodule unter LE (Common Execution Library). Sie beinhaltet Funktionen zur Initialisierung, die Terminierung, das Storage Management, Condition Handling, Message Services, Datums- und Zeitfunktionen sowie mathematische Funktionen.

2.3 Enklave

Enklave ist innerhalb eines Prozesses die Laufzeitumgebung mit allen dazu-gehörenden Anwendungsprogrammen. Ein Thread mit einem COBOL-Hauptprogramm ist mit seiner Umgebung eine Enklave.

2.4 Thread

Ein Thread ist ein Hauptprogramm mit allen seinen Unterprogrammen und seinen (jeweils) eigenen Daten.

2.5 Prozess

Ein Prozess ist die Summe aller Enklaven, die einen fachlichen Vorgang be-arbeiten. Ein Prozess kann einen weiteren Prozess anstoßen, hat aber kei-nerlei Verbindungen und Daten miteinander.

Page 8: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 8 von 14

3 LE – Condition Handling

3.1 Beispiele der CEL

Siehe Lösung der Aufgabe 2.2. Oder auch: CEELOCT, CEEDATE, CEEMOUT und viele andere mehr.

3.2 Initialisierung

Umgebung aufbauen, Speicher besorgen (lassen), Condition Handler initiali-sieren, Optionen prüfen und sprachspezifische Laufzeitumgebung aufbauen; Übergabe der Kontrolle an das Anwendungshauptprogramm. Unter IMS gilt überigens der IMS-Regioncontroller für LE als das Anwendungshauptpro-gramm.

3.3 Storage Manager

Heap-Storage besorgen, Stack-Storage besorgen; jeweils zu Beginn und dann während der Ausführungszeit explizit und implizit.

3.4 Condition Handler

Abfangen der Fehlersituationen; prüfen, was zu tun ist (resume, percolate, promote, fix-up and resume); Informationen sammeln und ausgeben.

3.5 Terminator

Vollständiges „garbage collection“ nach Ende der Anwendung. oder: Gouverneur von Kalifornien? ;-)

Page 9: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 9 von 14

4 LE – Condition Handling

4.1 Wichtige Module im Dump

CEEHDSP (Top-Modul), CEEPLPKA (LE-Hauptprogramm), CEEBINIT (Initia-lisierungsmodul des LE; taucht nur auf, wenn in der Initialisierungsphase et-was schief geht), CEEHSGLT (signal handler), CEEV#GH (getheap), CEEV#FH (freeheap), CEEEV005 (COBOL event handler)

4.2 Aufbau der COBOL-Meldungen

IGZnnnnx mit x=I,W,E,S,C

4.3 Dumpinformationen finden in Beispiel

Kurzinformation über den Dump CEE3211S The system detected a decimal-divide exception (System Completion Code=0CB).

From compile unit TES47 at entry point TES47 at compile unit offset +000004A8 at entry offset +000004A8 at

address 2F717090.

<> LEAID ENTERED (LEVEL 05/09/2005 AT 11.27)

<> LEAID PROCESSING COMPLETE. RC=0

Call Hierarchie Traceback:

DSA Addr Program Unit PU Addr PU Offset Entry E Addr E Offset Statement Load Mod Service Status

0001D458 CEEHDSP 0A997968 +00004904 CEEHDSP 0A997968 +00004904 CEEPLPKA UK06547 Call

0001D318 TES47 2F716BE8 +000004A8 TES47 2F716BE8 +000004A8 TES47 Exception

0001D130 IGZCFCC 0A8429A8 +000002CA IGZCFCC 0A8429A8 +000002CA IGZCPAC Call

0001D018 TES39 2F700CF8 +00000468 TES39 2F700CF8 +00000468 TES39 Call

Fehlerart und Meldung

Condition Information for Active Routines

Condition Information for TES47 (DSA address 0001D318)

CIB Address: 0001DD98

Current Condition:

CEE3211S The system detected a decimal-divide exception (System Completion Code=0CB).

Inhalt des Programm-Status-Word

Machine State:

ILC..... 0006 Interruption Code..... 000B

PSW..... 078D1000 AF717096

Abbruchadresse

Location:

Program Unit: TES47 Entry: TES47 Statement: Offset: +000004A8

Page 10: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 10 von 14

Namen, DSA-Adresse und Registerinhalte der Anwendungsprogramme

TES47 (DSA address 0001D318):

UPSTACK DSA

Saved Registers:

GPR0..... 0001D458 GPR1..... 2F716E97 GPR2..... 000077FC GPR3..... 2F70E058

GPR4..... 2F70E0F8 GPR5..... 000071BC GPR6..... 0003D380 GPR7..... 00FD4E18

GPR8..... 00007A80 GPR9..... 0003FDF8 GPR10.... 2F716CF4 GPR11.... 2F716F94

GPR12.... 2F716CE4 GPR13.... 0001D318 GPR14.... AF71707C GPR15.... 8A841B28

und

TES39 (DSA address 0001D018):

UPSTACK DSA

Saved Registers:

GPR0..... 0001D130 GPR1..... 0001D120 GPR2..... 000077FC GPR3..... 2F70E040

GPR4..... 0001D118 GPR5..... 0001D110 GPR6..... 00000000 GPR7..... 00000000

GPR8..... 00007A80 GPR9..... 0003F100 GPR10.... 2F700E04 GPR11.... 2F701090

GPR12.... 2F700DF4 GPR13.... 0001D018 GPR14.... AF701162 GPR15.... 8A8429A8

Options Report

Run-Time Options Report:

LAST WHERE SET OPTION

-------------------------------------------------------------------------------

Installation default ABPERC(NONE)

Installation default ABTERMENC(ABEND)

Installation default NOAIXBLD

Installation default ALL31(OFF)

Installation default ANYHEAP(16384,8192,BELOW,FREE)

Installation default NOAUTOTASK

Installation default BELOWHEAP(8192,4096,FREE)

Installation default CBLOPTS(ON)

Installation default CBLPSHPOP(ON)

Installation default CBLQDA(OFF)

Installation default CHECK(ON)

Installation default COUNTRY(US)

Installation default NODEBUG

Installation default DEPTHCONDLMT(10)

Installation default ENVAR("")

Installation default ERRCOUNT(0)

Installation default ERRUNIT(6)

Installation default FILEHIST

Installation default FILETAG(NOAUTOCVT,NOAUTOTAG)

Default setting NOFLOW

Installation default HEAP(32768,32768,ANYWHERE,KEEP,8192,4096)

Installation default HEAPCHK(OFF,1,0,0,0)

Installation default HEAPPOOLS(OFF,8,10,32,10,128,10,256,10,1024,10,2048,10,0,10,0,10,0,10,0,10,0,10,0,10)

Installation default INFOMSGFILTER(OFF,,,,)

Installation default INQPCOPN

Installation default INTERRUPT(OFF)

Installation default LIBSTACK(4096,4096,FREE)

Installation default MSGFILE(SYSOUT,FBA,121,0,NOENQ)

Installation default MSGQ(15)

Installation default NATLANG(ENU)

Ignored NONONIPTSTACK(See THREADSTACK)

Installation default OCSTATUS

Installation default NOPC

Installation default PLITASKCOUNT(20)

Installation default POSIX(OFF)

Installation default PROFILE(OFF,"")

Installation default PRTUNIT(6)

Installation default PUNUNIT(7)

Installation default RDRUNIT(5)

Installation default RECPAD(OFF)

Installation default RPTOPTS(OFF)

Installation default RPTSTG(OFF)

Installation default NORTEREUS

Installation default NOSIMVRD

Installation default STACK(131072,131072,BELOW,KEEP,524288,131072)

Installation default STORAGE(NONE,NONE,NONE,32768)

Installation default TERMTHDACT(TRACE,,96)

Installation default NOTEST(ALL,"*","PROMPT","INSPPREF")

Installation default THREADHEAP(4096,4096,ANYWHERE,KEEP)

Installation default THREADSTACK(OFF,4096,4096,BELOW,KEEP,131072,131072)

Installation default TRACE(OFF,4096,DUMP,LE=0)

Installation default TRAP(ON,SPIE)

Installation default UPSI(00000000)

Installation default NOUSRHDLR(,)

Installation default VCTRSAVE(OFF)

Installation default XPLINK(OFF)

Installation default XUFLOW(AUTO)

Page 11: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 11 von 14

Informationen über Variableninhalte der Anwendungsprogramme

Local Variables:

TES47 was not compiled with the SYM suboption of the TEST option. A formatted variable dump cannot be produced.

Local Variables:

TES39 was not compiled with the SYM suboption of the TEST option. A formatted variable dump cannot be produced.

4.4 Dumpinformationen finden in einem Produktionsabbruch

Keine Musterlösung

Page 12: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 12 von 14

5 Linkage Convention und Optionen

5.1 Programm erstellen

Falls eine Kodierung zu lange dauert, kopieren Sie die Programme von der Datei des Referenten.

5.2 Umwandlungsoptionen einstellen

Die Optionen sollten i.A. wie der Default eingestellt sein. Hiilfreiche Optionen für den Test sind: LIST, TEST(SYM), SSRANGE. Die Optionen in der Produktion sollten stets NOTEST und NOSSRANGE sein, da sonst deutliche Performanceeinbußen zu erwarten sind. LIST: COBOL-Befehle mit Adresse und Assembler-Auflösung NOLIST: COBOL-Befehle nur mit Adresse und Zeile TEST(SYM): Bei Abbruch Anzeige der Variableninhalte NOTEST: „normaler“ Dump SSRANGE: Prüfung auf Index / Subscript-Überlauf / Bereiche NOSSRANGE: keine Prüfung auf Indizes / Subscripte / Bereiche

5.3 JCL zu Programm erstellen

Falls eine Kodierung zu lange dauert, kopieren Sie die JCL von der Datei des Referenten.

Page 13: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 13 von 14

6 Linkage Convention und Optionen

6.1 Steuerblöcke in Umwandlungsliste

Zu finden sein sollten zumindest BLW, BLL, BLX, TGT.

6.2 Tests des Programms mit verschiedenen Abbrüchen

Führen Sie das Programm aus mit unterschiedlichen Abbruchkonstellationen. Versuchen Sie, die Abbruchursache in den Dump-Informationen zu finden. Suchen Sie auch die im Kurs erwähnten Steuerblöcke. Was helfen Ihnen die-se bei der Suche nach der Abbruchursache? Wann helfen Sie Ihnen?

6.2.1 Abbruch S0C7 auf verschiedenen Feldern

Keine Musterlösung

6.2.2 Abbruch S0CB

Keine Musterlösung

6.2.3 Abbruch S0C4 mit Subscript

Es fällt auf, dass der Abbruch nicht mit einem Subscript auftritt, der „knapp über der Grenze“ liegt, sondern erst bei einem sehr hohen Wert. Dies ist ein Hinweis, dass der eigene Speicher „beliebig“ zerschossen werden darf, ehe das System sich meldet. Und genau in solchen Fällen kann das Wissen um die Steuerblöcke die entschiedenen Hinweise auf die Abbruchursache geben.

6.2.4 Abbruch U1066 mit Subscript

Keine Musterlösung

6.3 Besonderes im IMS

Folgende Punkte:

Hauptprogramm ist IMS-Region-Controller DFSRCCnn

Es gibt im DUMP Informationen zu jedem PCB.

IMS-Fehler sind U-Codes.

Page 14: COBOL Dumpanalyse im z/OS€¦ · COBOL Dumpanalyse im z/OS Musterlösungen zu den Übungen 23. Januar 2009 Eine Ausarbeitung von: cps4it Ralf Seidler • Stromberger Straße 36A

COBOL – Dump-Analyse im z/OS

13. August 2011 Seite 14 von 14

7 Programmiertechniken

7.1 Index-Nutzung

Sie sollten den Block finden, in dem der Index zu finden ist.

7.2 Variablendefinitionen

Überlegen Sie sich die Auswirkungen im Speicherinhalt bei der Nutzung der folgenden Definitionen:

REDEFINES gleiche Adresse; ersichtlich an BLW-Informationen

88-er Stufen gleiche Adresse; ersichtlich an BLW-Informationen

nicht benutzte Variablen Hinweis: BLWxxxx in der Umwandlung

SYNCHRONIZED Es gibt „leere“ Bereiche im Dump. Wichtig dabei ist, die Adressen aus der Umwandlungsliste zur Hand zu haben.