Sie sind auf Seite 1von 112

DB2

DB2 Version 9
fr Linux, UNIX und Windows

Fehlerbehebung

GC12-3635-00

DB2

DB2 Version 9
fr Linux, UNIX und Windows

Fehlerbehebung

GC12-3635-00

Hinweis Vor Verwendung dieser Informationen und des darin beschriebenen Produkts sollten die allgemeinen Informationen unter Bemerkungen gelesen werden.

Diese Verffentlichung ist eine bersetzung des Handbuchs IBM DB2 Version 9 for Linux, UNIX and Windows Troubleshooting Guide, IBM Form GC10-4240-00, herausgegeben von International Business Machines Corporation, USA Copyright International Business Machines Corporation 1993, 2006 Copyright IBM Deutschland GmbH 2006 Informationen, die nur fr bestimmte Lnder Gltigkeit haben und fr Deutschland, sterreich und die Schweiz nicht zutreffen, wurden in dieser Verffentlichung im Originaltext bernommen. Mglicherweise sind nicht alle in dieser bersetzung aufgefhrten Produkte in Deutschland angekndigt und verfgbar; vor Entscheidungen empfiehlt sich der Kontakt mit der zustndigen IBM Geschftsstelle. nderung des Textes bleibt vorbehalten. Herausgegeben von: SW TSC Germany Kst. 2877 Juli 2006

Inhaltsverzeichnis
Kapitel 1. Weitere Informationen zu verschiedenen Themen . . . . . . . . . 1
Einfhrung in die Fehlerbestimmung . . . . . . 1 FFDC (First Failure Data Capture) . . . . . . . 3 Informationen von First Failure Data Capture (FFDC) . . . . . . . . . . . . . . . 3 Allgemein - FFDC (First Failure Data Capture) . . 4 Protokoll mit Benachrichtigungen fr die Systemverwaltung . . . . . . . . . . . . . . . 6 Protokoll mit Benachrichtigungen fr die Systemverwaltung . . . . . . . . . . . . . . 6 Festlegen der Aufzeichnungsebene fr die Protokolldatei mit Benachrichtigungen fr die Systemverwaltung . . . . . . . . . . . 6 Interpretieren von Eintrgen in der Protokolldatei mit Benachrichtigungen fr die Systemverwaltung. 7 Protokoll der DB2-Diagnoseprogramme . . . . . 9 Festlegen der Aufzeichnungsebene fr die Diagnoseprotokolldatei . . . . . . . . . . 9 Interpretieren von Informationsdatenstzen in der Datei db2diag.log . . . . . . . . . . . 9 Interpretieren von Eintrgen in der Protokolldatei der Diagnoseprogramme . . . . . . . . . 10 db2cos-Ausgabedateien (callout-Script) . . . . . 13 Speicherauszugsdateien . . . . . . . . . . 15 Trapdateien . . . . . . . . . . . . . . 16 Trapdateien . . . . . . . . . . . . . 16 Formatieren von Trapdateien (Windows) . . . 17 Plattformspezifische Fehlerprotokolle . . . . . . 17 Informationen in plattformspezifischen Fehlerprotokollen . . . . . . . . . . . . . 17 Systemkerndateien (UNIX) . . . . . . . . 18 Zugreifen auf Informationen in Systemkerndateien (UNIX) . . . . . . . . . . . . 19 Zugreifen auf Ereignisprotokolle (Windows) . . 20 Exportieren von Ereignisprotokollen (Windows) 20 Zugriff auf die Protokolldatei von Dr. Watson (Windows). . . . . . . . . . . . . . 21 Kombinieren von Diagnoseprogrammen der DB2Datenbank und des Betriebssystems . . . . . . 21 Diagnosetools . . . . . . . . . . . . . 32

Kapitel 4. Tools fr die Fehlerbehebung 33


bersicht ber das Tool db2dart . . . . . . . Analysieren von db2diag.log-Dateien mit db2diag Anzeigen und ndern der globalen Registrierdatenbank (UNIX) mit db2greg . . . . . . . . . Identifizieren der Version und des Service-Levels von Produkten . . . . . . . . . . . . . Nachahmen von Datenbanken mit db2look . . . Auflisten von DB2-Produkten, die auf dem System installiert sind (Linux und UNIX) . . . . . . . berwachung und Fehlerbehebung mit db2pd . . Erfassen von Informationen zur Umgebung mit db2support . . . . . . . . . . . . . . Traces . . . . . . . . . . . . . . . . Grundlegende Tracediagnose . . . . . . . DB2-Traces . . . . . . . . . . . . . DRDA-Traces . . . . . . . . . . . . . Durchfhren von Traces in der Steuerzentrale . . JDBC-Tracedateien . . . . . . . . . . . CLI-Traces . . . . . . . . . . . . . . Plattformspezifische Tools . . . . . . . . . Diagnosetools (Windows) . . . . . . . . . Diagnosetools (Linux und UNIX) . . . . . . 33 33 35 35 36 40 42 50 53 53 54 57 67 68 71 77 77 78

Kapitel 5. Durchsuchen von Wissensbasen . . . . . . . . . . . . . . . 81


Effektives Suchen nach bekannten Problemen . Ressourcen zur Fehlerbestimmung . . . . . . . . 81 . 82

Kapitel 6. Abrufen von Programmkorrekturen (Fixes) . . . . . . . . . 83


Anwenden von Fixpacks . . . . . . . . . . 83

Anhang A. Technische Informationen zu DB2-Datenbanken. . . . . . . . . 85


bersicht ber technische Informationen zu DB2 . . Feedback zur Dokumentation . . . . . . . Bibliothek mit technischen Informationen zu DB2 im PDF-Format . . . . . . . . . . . . . . Bestellen gedruckter DB2-Bcher . . . . . . . Anzeigen der Hilfe fr den SQL-Status ber den Befehlszeilenprozessor . . . . . . . . . . . Zugriff auf verschiedene Versionen der DB2Informationszentrale . . . . . . . . . . . Anzeigen von Themen in der gewnschten Sprache in der DB2-Informationszentrale . . . . . . . Aktualisieren der auf Ihrem Computer oder Intranet-Server installierten DB2-Informationszentrale . . DB2-Lernprogramme . . . . . . . . . . . Informationen zur Fehlerbehebung in DB2 . . . . Bedingungen . . . . . . . . . . . . . . 85 85 86 89 90 90 90 91 94 94 95

Kapitel 2. Fehlerbehebung - DB2

. . . 27

Fehlerbehebung fr DB2 . . . . . . . . . . 27 Fehlerbehebung - Umgebungen mit partitionierten Datenbanken . . . . . . . . . . . . . . 27 Absetzen von Befehlen in einer Umgebung mit partitionierten Datenbanken . . . . . . . . 27

Kapitel 3. Fehlerbehebung - DB2 Connect . . . . . . . . . . . . . . . . 29


Fehlerbestimmung . . . . . . . . . . . Erfassen relevanter Informationen . . . . . . Nicht erfolgreiche einleitende Verbindung . . . Probleme nach dem Herstellen einer einleitenden Verbindung . . . . . . . . . . . . . . 29 . 29 . 30 . 31

iii

Anhang B. Bemerkungen . . . . . . . 97
Marken . . . . . . . . . . . . . . . . 99

Kontaktaufnahme mit IBM . . . . . . 103

Index . . . . . . . . . . . . . . . 101

iv

Fehlerbehebung

Kapitel 1. Weitere Informationen zu verschiedenen Themen


Einfhrung in die Fehlerbestimmung
Der erste Schritt einer jeden guten Fehleranalyse ist die vollstndige Beschreibung des vorliegenden Fehlers. Ohne eine Fehlerbeschreibung werden Sie nicht wissen, wo Sie mit der Suche nach der Fehlerursache beginnen sollen. Im Rahmen der Fehlerbeschreibung sollten Sie sich unter anderem die folgenden grundlegenden Fragen stellen: v Welche Symptome sind vorhanden? v Wo tritt der Fehler auf? v Wann tritt der Fehler auf? v Unter welchen Umstnden tritt der Fehler auf? v Ist der Fehler reproduzierbar? Durch Beantwortung dieser und anderer Fragen lassen sich die meisten Fehler gut beschreiben, und dies ist der beste erste Schritt auf dem Weg zur Fehlerbeseitigung. Welche Symptome sind vorhanden?: Zu Beginn einer Fehlerbeschreibung ist die offensichtlichste Frage Welche Symptome sind vorhanden?. Diese Frage mag auf den ersten Blick recht einfach erscheinen, kann jedoch in eine Reihe weiterer Fragen unterteilt werden, um ein Bild zu erhalten, das das Problem genauer beschreibt. Hierbei kann es sich unter anderem um folgende Fragen handeln: v Wer oder was meldet den Fehler? v Wie lauten die Fehlercodes und Fehlernachrichten? v Wie uert sich der Fehler? Beispiel: Schleife, Blockierung, Absturz, Leistungseinbuen, falsche Ergebnisse. v Wie wirkt sich der Fehler auf die Geschftsablufe aus? Wo tritt der Fehler auf?: Es ist nicht immer einfach zu ermitteln, woher der Fehler ursprnglich stammt. Dennoch ist dies einer der wichtigsten Schritte bei der Fehlerbehebung. Zwischen der Komponente, die den Fehler meldet, und der Komponente, die fehlschlgt, knnen viele Technologieschichten liegen. Netze, Platten und Treiber sind nur einige der Komponenten, die bei der Untersuchung des Problems zu bercksichtigen sind. v Ist der Fehler plattformspezifisch oder tritt er auf mehreren Plattformen auf? v Besteht Untersttzung fr die aktuelle Umgebung und Konfiguration? v Wird die Anwendung auf dem Datenbankserver lokal ausgefhrt oder auf einem fernen Server? v Ist ein Gateway beteiligt? v Befindet sich die Datenbank auf einzelnen Platten oder auf einem RAID-Plattenstapel?

Fragen wie diese helfen Ihnen dabei, die Ebene des Problems einzugrenzen, und sind erforderlich, um den Ursprung des Fehlers zu ermitteln. Bedenken Sie, dass der Fehler seine Wurzeln nicht immer auf der Ebene hat, die den Fehler meldet. Um ermitteln zu knnen, wo ein Fehler auftritt, muss man unter anderem die Umgebung kennen, in der das Problem liegt. Sie sollten immer ein wenig Zeit darauf verwenden, die Umgebung des Fehlers vollstndig zu beschreiben, einschlielich des Betriebssystems und seiner Version, der gesamten zugehrigen Software und entsprechender Versionen sowie der Hardware. Vergewissern Sie sich, dass Sie in einer Umgebung arbeiten, bei der es sich um eine untersttzte Konfiguration handelt, da sich viele Fehler dadurch erklren lassen, dass Softwareversionen vorliegen, die nicht fr die gemeinsame Ausfhrung gedacht sind oder nicht ausreichend zusammen getestet wurden. Wann tritt der Fehler auf?: Ein weiterer erforderlicher Schritt bei der Fehleranalyse besteht darin, den detaillierten Zeitablauf der Ereignisse zu ermitteln, die zu dem Fehler gefhrt haben. Dies gilt insbesondere fr Fehler, die nur ein einziges Mal auftreten. Am einfachsten lsst sich dies bewerkstelligen, wenn Sie rckwrts arbeiten. Beginnen Sie hierbei mit dem Zeitpunkt, zu dem der Fehler auftrat (und zwar so przise wie mglich, selbst wenn es sich um Millisekunden handelt), und arbeiten Sie sich dann rckwrts durch die verfgbaren Protokolle und Informationen. Normalerweise braucht man lediglich das erste verdchtige Ereignis in den Protokollen der Diagnoseprogramme zu finden. Allerdings ist dies nicht immer einfach und setzt einige praktische Erfahrung voraus. Es ist insbesondere dann schwierig zu wissen, wie weit man die Protokolle rckverfolgen soll, wenn mehrere Technologieschichten vorliegen, die jeweils eigene Diagnoseinformationen bereitstellen. v Tritt der Fehler nur zu einer bestimmten Tages- oder Nachtzeit auf? v Wie hufig tritt der Fehler auf? v Welche Folge von Ereignissen fhrt zu dem Zeitpunkt, zu dem der Fehler gemeldet wird? v Tritt der Fehler nach einer nderung an der Umgebung auf, beispielsweise nach einem Upgrade bereits vorhandener Software- oder Hardwarekomponenten bzw. nach der Installation neuer Software- oder Hardwarekomponenten? Die Beantwortung solcher Fragen hilft Ihnen dabei, den zeitlichen Ablauf der Ereignisse genau zu bestimmen und so einen Bezugsrahmen fr die Analyse zu schaffen. Unter welchen Umstnden tritt der Fehler auf?: Eine vollstndige Fehlerbeschreibung setzt voraus, dass man wei, welche anderen Komponenten zum Zeitpunkt des Fehlers sonst noch ausgefhrt werden. Wenn ein Problem in einer bestimmten Umgebung oder unter bestimmten Umstnden auftritt, kann dies ein wesentlicher Hinweis auf die Fehlerursache sein. v Tritt der Fehler immer bei der Ausfhrung derselben Task auf? v Ist eine bestimmte Folge von Ereignissen erforderlich, damit das Problem auftritt? v Schlagen gleichzeitig noch andere Anwendungen fehl? Die Beantwortung dieser Art von Fragen hilft Ihnen dabei, die Umgebung zu beschreiben, in der das Problem auftritt, und eventuelle Zusammenhnge und

Fehlerbehebung

Abhngigkeiten zu erkennen. Bedenken Sie, dass verschiedene Probleme nicht unbedingt miteinander zusammenhngen mssen, nur weil sie zu derselben Zeit auftreten. Ist der Fehler reproduzierbar?: Fr die Fehlerbeschreibung und -analyse ist es ideal, wenn sich ein Fehler reproduzieren lsst. Bei reproduzierbaren Fehlern steht fast immer eine grere Anzahl an Tools oder Prozeduren zur Verfgung, die bei der Untersuchung helfen knnen. Daher sind reproduzierbare Fehler normalerweise leichter zu beheben. Allerdings knnen reproduzierbare Fehler auch einen Nachteil haben: Wenn das Problem signifikante Auswirkungen auf die Geschftsablufe hat, will man eine Wiederholung des Problems natrlich vermeiden. In diesem Fall ist die Reproduktion des Fehlers in einer Test- oder Entwicklungsumgebung hufig vorzuziehen. v Kann der Fehler auf einer Testmaschine reproduziert werden? v Haben mehrere Benutzer oder Anwendungen die gleiche Art von Problem? v Lsst sich der Fehler reproduzieren, indem ein einzelner Befehl, eine Befehlsgruppe oder eine bestimmte Anwendung bzw. eine eigenstndige Anwendung ausgefhrt wird? v Kann der Fehler reproduziert werden, indem der/die quivalente Befehl/ Abfrage ber eine DB2-Befehlszeile ausgegeben wird? Die Reproduktion eines einmalig auftretenden Fehlers in einer Test- oder Entwicklungsumgebung ist hufig vorzuziehen, da sich die Untersuchung in einer solchen Umgebung normalerweise flexibler gestalten und besser steuern lsst. Zugehrige Konzepte: v Ressourcen zur Fehlerbestimmung auf Seite 82

FFDC (First Failure Data Capture) Informationen von First Failure Data Capture (FFDC)
First Failure Data Capture (FFDC), was in etwa Erfassung erster Fehlerdaten bedeutet, ist eine Bezeichnung fr den Satz von Diagnoseinformationen, der von DB2-Datenbankprodukten automatisch erfasst wird, wenn Fehler auftreten. Diese Informationen verringern die Notwendigkeit, Fehler zur Beschaffung von Diagnoseinformationen zu reproduzieren. Weitere Informationen zu bestimmten FFDC-Typen finden Sie unter den nachstehend aufgefhrten zugehrigen Links. Zugehrige Konzepte: v Speicherauszugsdateien auf Seite 15 v Trapdateien auf Seite 16 Zugehrige Referenzen: v Allgemein - FFDC (First Failure Data Capture) auf Seite 4

Kapitel 1. Weitere Informationen zu verschiedenen Themen

Allgemein - FFDC (First Failure Data Capture)


Protokoll mit Benachrichtigungen fr die Systemverwaltung (instanzname.nfy) v Betriebssysteme: Alle v Standardposition: Linux und UNIX: In dem Verzeichnis, das durch den Konfigurationsparameter diagpath des Datenbankmanagers angegeben ist. Windows: Verwenden Sie die Ereignisanzeigefunktion (Start>Systemsteuerung>Verwaltung>Ereignisanzeige). v Wird bei der Erstellung der Instanz automatisch generiert. v Wenn bedeutsame Ereignisse auftreten, schreibt DB2 Informationen in das Protokoll mit Benachrichtigungen fr die Systemverwaltung. Die Informationen sind fr Datenbank- und Systemadministratoren gedacht. Der Typ der in dieser Datei aufgezeichneten Nachrichten hngt von der Einstellung des Konfigurationsparameters notifylevel ab. DB2-Diagnoseprotokoll (db2diag.log) v Betriebssysteme: Alle v Standardposition: In dem Verzeichnis, das durch den Konfigurationsparameter diagpath des Datenbankmanagers angegeben ist. v Wird bei der Erstellung der Instanz automatisch generiert. v Diese Textdatei enthlt Diagnoseinformationen zu den in der Instanz festgestellten Fehlern und Warnungen. Diese Informationen dienen zur Fehlerbestimmung und sind fr die IBM Kundenuntersttzung gedacht. Der Typ der in dieser Datei aufgezeichneten Nachrichten hngt von der Einstellung des Konfigurationsparameters diaglevel des Datenbankmanagers ab. Diagnoseprotokoll des DB2-Verwaltungsservers (DAS) (db2dasdiag.log) v Betriebssysteme: Alle v Standardposition: Linux und UNIX: Im Verzeichnis DASHOME/das/dump, wobei DASHOME das Ausgangsverzeichnis des DAS-Eigners ist. Windows: Im Ordner dump im DAS-Ausgangsverzeichnis. Beispiel: C:\Program Files\IBM\SQLLIB\DB2DAS00\dump v Wird bei der Erstellung des DAS automatisch generiert. v Diese Textdatei enthlt Diagnoseinformationen zu den vom DAS festgestellten Fehlern und Warnungen. DB2-Ereignisprotokoll (db2eventlog.xxx, wobei xxx die Datenbankpartitionsnummer ist) v Betriebssysteme: Alle v Standardposition: In dem Verzeichnis, das durch den Konfigurationsparameter diagpath des Datenbankmanagers angegeben ist. v Wird bei der Erstellung der Instanz automatisch generiert. v Die DB2-Ereignisprotokolldatei ist ein Umlaufprotokoll fr Ereignisse auf Infrastrukturebene, die im Datenbankmanager auftreten. Die Datei hat eine festgelegte Gre und fungiert als Umlaufpuffer fr die bestimmten Ereignisse, die protokolliert werden, whrend die Instanz ausgefhrt wird. Sobald die Instanz gestoppt wird, wird das vorherige Ereignisprotokoll ersetzt und nicht angehngt. Wird die Instanz durch einen Fehler unterbrochen, wird auerdem eine Datei namens db2eventlog.XXX.crash generiert. Diese Dateien sind fr die Verwendung durch die IBM Kundenuntersttzung vorgesehen.

Fehlerbehebung

Ausgabedateien des DB2-Aufrufscripts (db2cos) v Betriebssysteme: Alle v Standardposition: In dem Verzeichnis, das durch den Konfigurationsparameter diagpath des Datenbankmanagers angegeben ist. v Werden bei Auftreten einer Panic-Situation, einer Fehlerunterbrechung (Trap) oder eines Segmentierungsverstoes automatisch erstellt. Knnen auch bei bestimmten Problemszenarien erstellt werden, die mit dem Befehl db2pdcfg angegeben wurden. v In der Standardkonfiguration ruft das Script db2cos db2pd-Befehle zum entsperrten Erfassen von Informationen auf. In Abhngigkeit von den im Script db2cos enthaltenen Befehlen kann der Inhalt der Ausgabedateien dieses Scripts unterschiedlich sein. Speicherauszugsdateien v Betriebssysteme: Alle v Standardposition: In dem Verzeichnis, das durch den Konfigurationsparameter diagpath des Datenbankmanagers angegeben ist. v Werden bei Auftreten bestimmter Problemszenarien automatisch erstellt. v Fr einige Fehlerbedingungen werden Zusatzinformationen in Binrdateien protokolliert, die nach der Prozess-ID des fehlgeschlagenen Prozesses benannt werden. Diese Dateien sind fr die Verwendung durch die IBM Kundenuntersttzung vorgesehen. Trapdateien v Betriebssysteme: Alle v Standardposition: In dem Verzeichnis, das durch den Konfigurationsparameter diagpath des Datenbankmanagers angegeben ist. v Werden bei abnormaler Beendigung der Instanz automatisch erstellt. Knnen auch beliebig mit Hilfe des Befehls db2pd erstellt werden. v Der Datenbankmanager generiert eine Trapdatei, wenn er die Verarbeitung aufgrund einer Fehlerunterbrechung (Trap), eines Segmentierungsverstoes oder einer Ausnahmebedingung nicht fortsetzen kann. Kerndateien v Betriebssysteme: Linux und UNIX v Standardposition: In dem Verzeichnis, das durch den Konfigurationsparameter diagpath des Datenbankmanagers angegeben ist. v Werden bei abnormaler Beendigung der DB2-Instanz vom Betriebssystem erstellt. v Die Kerndatei ist eine Binrdatei, die Informationen enthlt, die den Informationen der Trapdateien hneln, die von DB2-Datenbankprodukten generiert werden. Kerndateien knnen auch das gesamte Speicherimage des beendeten Prozesses enthalten. Zugehrige Konzepte: v Protokoll mit Benachrichtigungen fr die Systemverwaltung auf Seite 6 v db2cos-Ausgabedateien (callout-Script) auf Seite 13 v Speicherauszugsdateien auf Seite 15 v Interpretieren von Eintrgen in der Protokolldatei mit Benachrichtigungen fr die Systemverwaltung auf Seite 7 v Trapdateien auf Seite 16

Kapitel 1. Weitere Informationen zu verschiedenen Themen

Protokoll mit Benachrichtigungen fr die Systemverwaltung Protokoll mit Benachrichtigungen fr die Systemverwaltung
Wenn bedeutsame Ereignisse auftreten, schreibt der DB2-Datenbankmanager Informationen in das Protokoll mit Benachrichtigungen fr die Systemverwaltung. Der Datenbankmanager zeichnet z. B. den Status von DB2-Dienstprogrammen, (REORG, BACKUP, RECOVERY, ROLL-FORWARD), bergeordnete Anwendungsprobleme, die Lizenzaktivitt, Speicherprobleme, Probleme mit Protokolldateipfaden, berwachungs- und Indexierungsprobleme, Tabellenbereichsprobleme etc. auf. Diese Informationen sind fr Datenbank- und Systemadministratoren gedacht. Hinweisnachrichten liefern zustzliche Informationen, die den bereitgestellten SQLCODE-Wert ergnzen. Der Typ von Ereignis und die Detaillierungsebene der Informationen, die gesammelt werden, werden durch den Konfigurationsparameter NOTIFYLEVEL bestimmt. Diese detaillierten Diagnoseinformationen werden in der Textprotokolldatei db2diag.log aufgezeichnet, nicht in dem Protokoll fr die Systemverwaltung. Diagnoseinformationen werden zur Fehlerbestimmung verwendet und sind fr die DB2-Kundenuntersttzung vorgesehen. Der Detaillierungsgrad wird durch den Konfigurationsparameter DIAGLEVEL bestimmt. Zugehrige Konzepte: v Interpretieren von Eintrgen in der Protokolldatei mit Benachrichtigungen fr die Systemverwaltung auf Seite 7 v Interpretieren von Eintrgen in der Protokolldatei der Diagnoseprogramme auf Seite 10 v Interpretieren von Informationsdatenstzen in der Datei db2diag.log auf Seite 9 Zugehrige Tasks: v Festlegen der Aufzeichnungsebene fr die Diagnoseprotokolldatei auf Seite 9 v Festlegen der Aufzeichnungsebene fr die Protokolldatei mit Benachrichtigungen fr die Systemverwaltung auf Seite 6 Zugehrige Referenzen: v notifylevel - Benachrichtigungsstufe in Systemverwaltung: Optimierung v diaglevel - Aufzeichnungsebene bei Fehlerdiagnose in Systemverwaltung: Optimierung

Festlegen der Aufzeichnungsebene fr die Protokolldatei mit Benachrichtigungen fr die Systemverwaltung


Welche Informationen DB2 im Protokoll mit Benachrichtigungen fr die Systemverwaltung aufzeichnet, ist abhngig von der Einstellung fr NOTIFYLEVEL. Geben Sie Folgendes ein, um die aktuelle Einstellung zu berprfen:
DB2 GET DBM CFG

Suchen Sie nach der folgenden Variablen:


Aufzeichnungsebene (NOTIFYLEVEL) = 3

Fehlerbehebung

Verwenden Sie zum ndern der Einstellung den folgenden Befehl:


DB2 UPDATE DBM CFG USING NOTIFYLEVEL X

Dabei ist X die gewnschte Aufzeichnungsebene. Zugehrige Referenzen: v notifylevel - Benachrichtigungsstufe in Systemverwaltung: Optimierung

Interpretieren von Eintrgen in der Protokolldatei mit Benachrichtigungen fr die Systemverwaltung


Rufen Sie die Protokolldatei mit Benachrichtigungen fr die Systemverwaltung in einem Texteditor auf der Maschine auf, auf der vermutlich ein Fehler aufgetreten ist. Die zuletzt aufgezeichneten Ereignisse befinden sich am Ende der Datei. Im Allgemeinen enthlt jeder Eintrag die folgenden Komponenten: v Eine Zeitmarke. v Die Position, die den Fehler meldet. Anhand von Anwendungs-IDs knnen Sie in den Protokollen von Servern und Clients die Eintrge zuordnen, die zu einer Anwendung gehren. v Eine Diagnosenachricht, die normalerweise mit DIA oder ADM beginnt und den Fehler erlutert. v Alle verfgbaren untersttzenden Daten, wie zum Beispiel Datenstrukturen des SQL-Kommunikationsbereichs (SQLCA) und Zeiger auf die Position zustzlicher Speicherauszugs- oder Trapdateien. Wenn das Verhalten der Datenbank normal ist, sind diese Informationen nicht wichtig und knnen ignoriert werden. Die Verwaltungsprotokolle werden fortlaufend grer. Wenn sie zu gro werden, sichern Sie sie, und lschen Sie anschlieend die Datei. Neue Dateien werden automatisch generiert, wenn sie das nchste Mal vom System bentigt werden. Das folgende Beispiel zeigt die Kopfdaten fr einen Beispielprotokolleintrag, wobei alle Teile des Protokolls identifiziert werden. Anmerkung: Nicht jeder Protokolleintrag enthlt alle diese Komponenten.
2006-02-15-19.33.37.630000 1 Instance:DB2 2 Node:000 3 PID:940(db2syscs.exe) TID: 660 4 Appid:*LOCAL.DB2.020205091435 5 recovery manager 6 sqlpresr 7 Probe:1 8 Database:SAMPLE 9 ADM1530E 10 Die Recovery nach dem Systemabsturz wurde eingeleitet.

11

Legende: 1. Eine Zeitmarke fr die Nachricht. 2. Der Name der Instanz, die die Nachricht generiert. 3. Bei Systemen mit mehreren Partitionen die Partition, die die Nachricht generiert. (In einer nicht partitionierten Datenbank ist der Wert 000.) 4. Die DB2-Komponente, die die Nachricht erstellt. Fr Nachrichten, die von Benutzeranwendungen mit der API db2AdminMsgWrite erstellt werden, lautet die Angabe der Komponente User Application. 5. Identifikation der Anwendung, fr die der Prozess ausgefhrt wird. In diesem Beispiel wird der Prozess, der die Nachricht generiert, fr eine Anwendung mit der ID *LOCAL.DB2.020205091435 ausgefhrt.

Kapitel 1. Weitere Informationen zu verschiedenen Themen

Zur weiteren Identifikation einer bestimmten Anwendungs-ID haben Sie folgende Mglichkeiten: v Verwenden Sie den Befehl db2 list applications auf einem DB2-Server oder den Befehl db2 list dcs applications auf einem DB2 Connect-Gateway, um eine Liste von Anwendungs-IDs anzuzeigen. Anhand dieser Liste knnen Sie Informationen ber den Client ermitteln, auf dem der Fehler auftritt, wie zum Beispiel den Knotennamen und die TCP/IP-Adresse des Clients. v Verwenden Sie den Befehl db2 get snapshot for application, um eine Liste von Anwendungs-IDs anzuzeigen. 6. Die DB2-Komponente, die die Nachricht erstellt. Fr Nachrichten, die von Benutzeranwendungen mit der API db2AdminMsgWrite erstellt werden, lautet die Angabe der Komponente User Application. 7. Der Name der Funktion, die die Nachricht bereitstellt. Diese Funktion operiert innerhalb der DB2-Unterkomponente, die die Nachricht schreibt. Fr Nachrichten, die von Benutzeranwendungen mit der API db2AdminMsgWrite geschrieben werden, lautet die Angabe der Funktion User Function. Weitere Informationen ber die Art der durch eine Funktion ausgefhrten Aktivitt liefert der vierte Buchstabe des Namens. In diesem Beispiel weist der Buchstabe p im Funktionsnamen sqlpresr auf ein Datenschutzproblem hin. (Protokolle knnten zum Beispiel beschdigt sein.) Die folgende Liste zeigt einige der Buchstaben, die an der vierten Stelle im Funktionsnamen Verwendung finden, sowie die Art der Aktivitt, auf die sie hinweisen: b c d e o p r s Pufferpools Kommunikation zwischen Clients und Servern Datenverwaltung Prozesse der Steuerkomponente Betriebssystemaufrufe (z. B. ffnen und Schlieen von Dateien) Datenschutz (z. B. Sperren und Protokollieren) Relationale Datenbankservices Sortieren

x Indexieren 8. Eindeutige interne ID. Diese Nummer gibt der DB2-Kundenuntersttzung und der DB2-Entwicklung die Mglichkeit, die Stelle im DB2-Quellcode zu lokalisieren, von der die Nachricht ausgegeben wurde. 9. Die Datenbank, in der der Fehler auftrat. 10. Eine Nachricht, falls verfgbar, die den Fehlertyp und die Fehlernummer als Hexadezimalcode angibt. 11. Ein Nachrichtentext, falls verfgbar, der das protokollierte Ereignis erlutert. Zugehrige Konzepte: v Protokoll mit Benachrichtigungen fr die Systemverwaltung auf Seite 6 v Informationen von First Failure Data Capture (FFDC) auf Seite 3 Zugehrige Referenzen: v notifylevel - Benachrichtigungsstufe in Systemverwaltung: Optimierung

Fehlerbehebung

Protokoll der DB2-Diagnoseprogramme Festlegen der Aufzeichnungsebene fr die Diagnoseprotokolldatei


Das DB2-Diagnoseprotokoll ist eine Datei, die die von DB2 protokollierten Textinformationen enthlt. Diese Informationen dienen zur Fehlerbestimmung und sind fr die DB2-Kundenuntersttzung gedacht. Welche Informationen DB2 in db2diag.log aufzeichnet, ist abhngig von der Einstellung fr DIAGLEVEL. Geben Sie Folgendes ein, um die aktuelle Einstellung zu berprfen:
DB2 GET DBM CFG

Suchen Sie nach der folgenden Variablen:


Aufzeichnungsebene bei Fehlerdiagnose (DIAGLEVEL) = 3

Verwenden Sie zum ndern der Einstellung den folgenden Befehl:


DB2 UPDATE DBM CFG USING DIAGLEVEL X

Dabei ist X die gewnschte Aufzeichnungsebene. Anmerkung: Wenn Sie eine Fehlerdiagnose fr einen reproduzierbaren Fehler durchfhren, empfiehlt es sich, bei der Fehlerbestimmung DIAGLEVEL 4 zu verwenden. Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3 Zugehrige Referenzen: v diaglevel - Aufzeichnungsebene bei Fehlerdiagnose in Systemverwaltung: Optimierung

Interpretieren von Informationsdatenstzen in der Datei db2diag.log


Die erste Nachricht in db2diag.log ist stets ein Informationssatz. Einzige Ausnahme: Wenn die erste Nachricht in einer Protokolldatei von einer Komponente generiert wird, die ossLog-API-Aufrufe verwendet (z. B. DAS, genreg etc.), wird kein Informationssatz ausgegeben. Nachfolgend ist ein Beispiel fr einen Informationssatz dargestellt:
2006-02-09-18.07.31.059000-300 I1H917 LEVEL: Event PID : 3140 TID : 2864 PROC : db2start.exe INSTANCE: DB2 NODE : 000 FUNCTION: DB2 UDB, RAS/PD component, _pdlogInt, probe:120 START : New Diagnostic Log file DATA #1 : Build Level, 124 bytes Instanz "DB2" verwendet "32" Bit und DB2-Codefreigabe "SQL09010" mit Aktualitts-ID "01010107". Informationstoken: "DB2 v9.1.0.190", "s060121", "", Fixpack "0". DATA #2 : System Info, 1564 bytes System: WIN32_NT MYSRVR Service Pack 2 5.1 x86 Family 15, model 2, stepping 4 CPU: total:1 online:1 Cores per socket:1 Threading degree per core:1
Kapitel 1. Weitere Informationen zu verschiedenen Themen

Physical Memory(MB): total:1024 free:617 available:617 Virtual Memory(MB): total:2462 free:2830 Swap Memory(MB): total:1438 free:2213 Die Informationen in diesem Informationssatz sind nur zum Zeitpunkt der Erstellung dieser Datei gltig (siehe Zeitmarke dieses Satzes).

Der Informationssatz wird fr db2start in jeder logischen Partition ausgegeben. Auf diese Weise werden mehrere Informationsstze generiert: einer fr jede logische Partition. Da der Informationssatz Speicherwerte enthlt, die fr jede Partition unterschiedlich sind, knnen diese Informationen ntzlich sein.

Interpretieren von Eintrgen in der Protokolldatei der Diagnoseprogramme


Rufen Sie die Diagnoseprotokolldatei in einem Texteditor auf der Maschine auf, auf der vermutlich ein Fehler aufgetreten ist. Die zuletzt aufgezeichneten Ereignisse befinden sich am Ende der Datei. Anmerkung: Die Verwaltungsprotokolle werden fortlaufend grer. Wenn sie zu gro werden, sichern Sie sie, und lschen Sie anschlieend die Datei. Ein neuer Satz von Dateien wird automatisch generiert, wenn sie das nchste Mal vom System angefordert werden. Das folgende Beispiel zeigt die Kopfdaten fr einen Beispielprotokolleintrag, wobei alle Teile des Protokolls bezeichnet werden. Anmerkung: Nicht jeder Protokolleintrag enthlt alle diese Komponenten. Nur die ersten Felder (Zeitmarke bis TID) und FUNCTION sind in allen Eintrgen von db2diag.log vorhanden.
2006-02-13-14.34.35.965000-300 1 I17502H435 2 LEVEL: Error 3 PID : 940 4 TID : 660 5 PROC : db2syscs.exe 6 INSTANCE: DB2 7 NODE : 000 8 DB : SAMPLE 9 APPHDL : 0-1433 10 APPID: *LOCAL.DB2.050120082811 11 FUNCTION: 12 DB2 UDB, data protection, sqlpsize, probe:20 RETCODE : 13 ZRC=0x860F000A=-2045837302=SQLO_FNEX "Datei nicht gefunden." DIA8411C Eine Datei "" konnte nicht gefunden werden.

Legende: 1. 2. Die Zeitmarke und die Zeitzone fr die Nachricht. Das Feld mit der Satz-ID. Die Satz-ID von db2diag.log gibt die relative Dateiposition, an der die aktuelle Nachricht aufgezeichnet wird (beispielsweise 17502), sowie die Nachrichtenlnge (beispielsweise 435) fr die Plattform an, auf der das DB2-Diagnoseprotokoll erstellt wurde. Die einer Fehlernachricht zugeordnete Diagnosestufe. Zum Beispiel Info, Warning, Error, Severe oder Event. Die Prozess-ID. Die Thread-ID. Der Prozessname. Der Name der Instanz, die die Nachricht generiert. Bei Mehrpartitionssystemen die Partition, die die Nachricht generiert. (In einer nicht partitionierten Datenbank ist der Wert 000.) Der Datenbankname

3. 4. 5. 6. 7. 8. 9.

10

Fehlerbehebung

10.

Die Anwendungskennung. Dieser Wert richtet sich nach dem in der db2pd-Ausgabe und den Speicherauszugsdateien fr Sperren verwendeten Wert. Er besteht aus der Koordinatorpartitionsnummer, gefolgt von einem Gedankenstrich und der Koordinatorindexnummer. Kennung der Anwendung, fr die der Prozess arbeitet. In diesem Beispiel wird der Prozess, der die Nachricht generiert, fr eine Anwendung mit der ID *LOCAL.DB2.050120082811 ausgefhrt. Eine von TCP/IP generierte Anwendungs-ID besteht aus drei Abschnitten: 1. IP-Adresse: Diese wird als 32-Bit-Zahl dargestellt, die als Hexadezimalzahl mit hchstens 8 Stellen angezeigt wird. 2. Portnummer: Diese wird als vierstellige Hexadezimalzahl dargestellt. 3. Eine eindeutige Kennung fr die Instanz dieser Anwendung. Anmerkung: Wenn die hexadezimale Version der IP-Adresse oder Portnummer mit 0-9 beginnt, wird sie jeweils in G-P umgesetzt. So wird 0 beispielsweise in G umgesetzt, 1 in H etc. Die IP-Adresse AC10150C.NA04.006D07064947 wird wie folgt interpretiert: Die IP-Adresse bleibt AC10150C, d. h. 172.16.21.12. Die Portnummer ist NA04. Das erste Zeichen ist N, das in 7 umgesetzt wird. So lautet die Portnummer im Hexadezimalformat 7A04, nach der Umsetzung in Dezimalformat 31236. Zur weiteren Identifikation einer bestimmten Anwendungs-ID haben Sie folgende Mglichkeiten: v Verwenden Sie den Befehl db2 list applications auf einem DB2-Server oder den Befehl db2 list dcs applications auf einem DB2 Connect-Gateway, um eine Liste von Anwendungs-IDs anzuzeigen. Anhand dieser Liste knnen Sie Informationen ber den Client ermitteln, auf dem der Fehler auftritt, wie zum Beispiel den Knotennamen und die TCP/IPAdresse des Clients. v Verwenden Sie den Befehl db2 get snapshot for application, um eine Liste von Anwendungs-IDs anzuzeigen. v Verwenden Sie den Befehl db2pd -applications -db sample.

11.

12.

Name des Produkts (DB2), der Komponente (Datenschutz) und der Funktion (sqlpsize), das bzw. die die Nachricht generiert (sowie der Testpunkt (20) innerhalb der Funktion). Der Rckkehrcode (falls vorhanden) einer aufgerufenen Funktion. Dieses Feld besteht aus einer Typangabe (ZRC), dem Rckkehrcodewert und der zugehrige Fehlerbeschreibung.

13.

Anmerkung: Die Zeitmarken in db2diag.log enthalten eine Zeitzone. Beispiel: 2006-02-13-14.34.35.965000-300. Hierbei ist -300 die Differenz zwischen der Weltzeit (Coordinated Universal Time, UTC - frher GMT) und der Ortszeit auf dem Anwendungsserver in Minuten. Das heit, -300 bedeutet UTC - 5 Stunden, z. B. EST (Eastern Standard Time). Nach der Beschreibung des db2diag.log-Beispieleintrags folgt nun eine Liste aller mglichen Felder:
<zeitmarke><zeitzone> PID : <pid> INSTANCE: <instanz> <satzID> TID : <tid> NODE : <knoten> LEVEL: <stufe> (<quelle>) PROC : <prozName> DB : <datenbank>

Kapitel 1. Weitere Informationen zu verschiedenen Themen

11

APPHDL : <anwKennung> APPID: <anwID> FUNCTION: <produktname>, <komponentenname>, <funktionsname>, probe:<testnr> MESSAGE : <nachrichtenID> <nachrichtentext> CALLED : <produktname>, <komponentenname>, <funktionsname> OSERR : <fehlername> (<fehlernr>) RETCODE : <typ>=<rckkehrcode> <fehlerbeschreibung> ARG #N : <typentitel>, <typenname>, <gre> bytes ... argument ... DATA #N : <typentitel>, <typenname>, <gre> bytes ... data ...

Die Felder, die nicht bereits im Beispiel beschrieben wurden, sind nachfolgend aufgefhrt: v <quelle> Gibt den Ursprung des protokollierten Fehlers an. Die mglichen Werte sind: origin - Die Nachricht wird von der Funktion protokolliert, bei der der Fehler ursprnglich auftrat (Anfangspunkt). OS - Der Fehler wurde vom Betriebssystem generiert. received - Der Fehler wurde von einem anderen Prozess (Client/Server) empfangen. sent - Der Fehler wurde an einen anderen Prozess (Client/Server) gesendet. v MESSAGE Enthlt die protokollierte Nachricht, bestehend aus: <nachrichtenID> - Nachrichtennummer, z. B. ECF=0x9000004A oder DIA8604C <nachrichtentext> - Fehlerbeschreibung Wenn das Feld CALLED ebenfalls aufgefhrt ist, dann ist <nachrichtentext> die Folge des Fehlers, der durch die unter CALLED aufgelistete Funktion fr die Funktion zurckgegeben wird, fr die eine Nachricht protokolliert wird. (Diese Funktion wird im Feld FUNCTION aufgefhrt.) v CALLED Gibt die Funktion an, die einen Fehler zurckgibt, bestehend aus: <produktname> - Produktname: OS, DB2, DB2 Tools oder DB2 Common <komponentenname> - Der Komponentenname (- im Falle eines Systemaufrufs) <funktionsname> - Name der aufgerufenen Funktion v OSERR Betriebssystemfehler, der durch den Systemaufruf (CALLED) zurckgegeben wird, bestehend aus: <fehlername> - systemspezifischer Fehlername <fehlernummer> - Fehlernummer des Betriebssystems v ARG In diesem Abschnitt sind die Argumente eines Funktionsaufrufs aufgefhrt, der einen Fehler zurckgab, bestehend aus: <N> - Position eines Arguments in einem Aufruf an die durch CALLED angegebene Funktion <typentitel> - Bezeichnung, die dem Typennamen des N-ten Arguments zugeordnet ist <typenname> - Typenname des protokollierten Arguments <gre> - Gre des zu protokollierenden Arguments v DATA Enthlt zustzliche Daten, fr die mglicherweise von der Protokollierungsfunktion ein Speicherauszug erstellt wird, bestehend aus: <N> - Fortlaufende Nummer des Datenobjekts, fr das ein Speicherauszug erstellt wird <typentitel> - Bezeichnung der Daten, fr die ein Speicherauszug erstellt wird

12

Fehlerbehebung

<typenname> - Typenname des Datenfelds, das protokolliert wird, z. B. PD_TYPE_UINT32, PD_TYPE_STRING <gre> - Gre eines Datenobjekts Zugehrige Konzepte: v Interpretieren von Informationsdatenstzen in der Datei db2diag.log auf Seite 9

db2cos-Ausgabedateien (callout-Script)
Das Script db2cos wird standardmig aufgerufen, wenn der Datenbankmanager die Verarbeitung aufgrund einer Panic-Situation, eines Traps, einer Segmentierungsverletzung oder einer Ausnahmebedingung nicht fortsetzen kann. In der Standardkonfiguration ruft das Script db2cos db2pd-Befehle zum entsperrten Erfassen von Informationen auf. In einer Konfiguration mit mehreren Partition wird das Script nur fr den Trapagenten auf der betreffenden Partition mit dem Trap aufgerufen. Mssen Informationen von anderen Partitionen erfasst werden, knnen Sie das Script db2cos entsprechend aktualisieren, damit der Befehl db2_all verwendet wird oder die Option -alldbpartitionnums im Befehl db2pd angegeben wird, wenn sich alle Partitionen auf derselben Maschine befinden. Die Signaltypen, die den Aufruf von db2cos auslsen, knnen ebenfalls konfiguriert werden. Hierfr wird der Befehl db2pdcfg -cos verwendet. In der Standardkonfiguration wird das Script db2cos ausgefhrt, wenn entweder eine Panic-Situation oder ein Trap eintritt. Generierte Signale hingegen fhren standardmig nicht zum Start des Scripts db2cos. Eine Panic-Situation, ein Trap, eine Segmentierungsverletzung oder eine Ausnahmebedingung fhrt zu folgenden Ereignissen in der angegebenen Reihenfolge: 1. Eine Trapdatei wird erstellt. 2. Eine Signalroutine wird aufgerufen. 3. Das Script db2cos wird aufgerufen (in Abhngigkeit von den aktivierten db2cos-Einstellungen). 4. Ein Eintrag wird im Protokoll mit Benachrichtigungen fr die Systemverwaltung aufgezeichnet. 5. Ein Eintrag wird in der Datei db2diag.log protokolliert. Die mit dem Befehl db2pd im Script db2cos erfassten Standardinformationen umfassen Angaben zum Betriebssystem, zur Version und zum Service-Level des installierten DB2-Produkts, zum Datenbankmanager und zur Datenbankkonfiguration sowie Angaben zu folgenden Elementen: Status der Agenten, Speicherpools, Speichergruppen, Speicherblcke, Anwendungen, Dienstprogramme, Transaktionen, Pufferpools, Sperren, Transaktionsprotokolle, Tabellenbereiche und Container. Darber hinaus werden Informationen zum Status der dynamischen Cachespeicher, statischen Cachespeicher und Katalogcachespeicher, zu Tabellenund Indexstatistiken und zum Recoverystatus geliefert sowie die reoptimierten SQL-Anweisungen und eine Liste der aktiven Anweisungen angegeben. Sollen weitere Informationen erfasst werden, brauchen Sie das Script db2cos lediglich mit den entsprechenden zustzlichen Befehlen zu aktualisieren.

Kapitel 1. Weitere Informationen zu verschiedenen Themen

13

Wird das Script db2cos in der Standardkonfiguration aufgerufen, werden die Ausgabedateien des Scripts in dem Verzeichnis erstellt, das mit dem Konfigurationsparameter DIAGPATH des Datenbankmanagers angegeben wird. Die Namen der Dateien haben das Format db2cosXXXYYY.ZZZ, wobei XXX die Prozess-ID (PID), YYY die Thread-ID (TID) und ZZZ die Datenbankpartitionsnummer (bzw. 000 bei Einzelpartitionsdatenbanken) ist. Tritt ein Trap in mehreren Threads auf, wird das Script db2cos fr jeden Thread separat aufgerufen. Falls eine Kombination aus PID und TID mehr als einmal vorkommt, werden die Daten an die Datei angehngt. Die Iterationen der Ausgabe lassen sich anhand von Zeitmarken unterscheiden. In Abhngigkeit von den im Script db2cos angegebenen Befehlen enthalten die Ausgabedateien des Scripts unterschiedliche Informationen. Wurde das Standardscript nicht gendert, werden Eintrge hnlich den nachstehenden Eintrgen (gefolgt von der ausfhrlichen Ausgabe von db2pd) angezeigt:
2005-10-14-10.56.21.523659 PID : 782348 TID : 1 PROC : db2cos INSTANCE: db2inst1 NODE : 0 DB : SAMPLE APPHDL : APPID: *LOCAL.db2inst1.051014155507 FUNCTION: oper system services, sqloEDUCodeTrapHandler, probe:999 EVENT : Invoking /home/db2inst1/sqllib/bin/db2cos from oper system services sqloEDUCodeTrapHandler Trap Caught Instanz db2inst1 verwendet 64 Bit und DB2-Codefreigabe SQL09010 ... Operating System Information: OSName: AIX NodeName: n1 Version: 5 Release: 2 Machine: 000966594C00 ...

Die Datei db2diag.log enthlt ebenfalls Eintrge, die mit dem Vorkommen in Zusammenhang stehen. Beispiel:
2005-10-14-10.42.17.149512-300 I19441A349 LEVEL: Event PID : 782348 TID : 1 PROC : db2sysc INSTANCE: db2inst1 NODE : 000 FUNCTION: DB2 UDB, trace services, pdInvokeCalloutScript, probe:10 START : Invoking /home/db2inst1/sqllib/bin/db2cos from oper system services sqloEDUCodeTrapHandler 2005-10-14-10.42.23.173872-300 I19791A310 LEVEL: Event PID : 782348 TID : 1 PROC : db2sysc INSTANCE: db2inst1 NODE : 000 FUNCTION: DB2 UDB, trace services, pdInvokeCalloutScript, probe:20 STOP : Completed invoking /home/db2inst1/sqllib/bin/db2cos 2005-10-14-10.42.23.519227-300 E20102A509 LEVEL: Severe PID : 782348 TID : 1 PROC : db2sysc INSTANCE: db2inst1 NODE : 000 FUNCTION: DB2 UDB, oper system services, sqloEDUCodeTrapHandler, probe:10 MESSAGE : ADM0503C Ein unerwarteter interner Verarbeitungsfehler ist aufgetreten. ALLE DIESER INSTANZ ZUGEORDNETEN DB2-PROZESSE WURDEN BEENDET. Diagnoseinformationen wurden aufgezeichnet. Weitere Hilfe erhalten Sie bei der IBM Untersttzungsfunktion. 2005-10-14-10.42.23.520111-300 E20612A642 LEVEL: Severe PID : 782348 TID : 1 PROC : db2sysc INSTANCE: db2inst1 NODE : 000 FUNCTION: DB2 UDB, oper system services, sqloEDUCodeTrapHandler, probe:20 DATA #1 : Signal Number Recieved, 4 bytes

14

Fehlerbehebung

11 DATA #2 : Siginfo, 0x0FFFFFFFFFFFD5C0 0x0FFFFFFFFFFFD5D0 0x0FFFFFFFFFFFD5E0 0x0FFFFFFFFFFFD5F0

64 bytes : 0000 000B : 0000 0000 : 0000 0000 : 0000 0000

0000 0000 0000 0000

0000 0000 0000 0000

0000 0000 0000 0000

0009 0000 0000 0000

0000 0000 0000 0000

0000 0000 0000 0000

................ ................ ................ ................

Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3 v Trapdateien auf Seite 16 Zugehrige Referenzen: v db2pd - Monitor and troubleshoot DB2 database command in Command Reference v db2pdcfg - Configure DB2 database for problem determination behavior command in Command Reference

Speicherauszugsdateien
Speicherauszugsdateien (engl. Dump Files) werden erstellt, wenn ein Fehler auftritt, fr den zustzliche Informationen verfgbar sind, die bei der Diagnose eines Problems ntzlich sein knnten (z. B. interne Steuerblcke). Jedem Datenelement, das in die Speicherauszugsdateien geschrieben wird, wird zur Untersttzung der Problembestimmung eine Zeitmarke zugeordnet. Speicherauszugsdateien liegen im Binrformat vor und sind fr Ansprechpartner der DB2-Kundenuntersttzung gedacht. Wenn eine Speicherauszugsdatei erstellt wird oder an sie Daten angehngt werden, wird ein Eintrag in der Datei db2diag.log aufgezeichnet, der die Uhrzeit und den Typ der geschriebenen Daten angibt. Diese Eintrge in der Datei db2diag.log sehen in etwa wie folgt aus:
2006-03-16-11.53.18.001160 Instance:payroll Node:000 PID:44829(db2agent (SAMPLE)) Appid:*LOCAL.payroll.970317140834 relation_data_serv sqlrerlg Probe:17 Database:SAMPLE DIA9999E An internal return code occurred. Report the following : "0xFFFFE101". Dump File: /home/db2/sqllib/db2dump/56772.000 Data : SECTION STMT 1

Legende: 1 In diesem Beispiel fr UNIX werden SECTION STMT-Daten in einer Datei mit dem Namen 56772.000 gespeichert, die sich im Verzeichnis /home/ db2/sqllib/db2dump befindet.

Anmerkungen: v Bei partitionierten Datenbanksystemen gibt die Erweiterung des Dateinamens die Partitionsnummer an. Zum Beispiel gibt der folgende Eintrag an, dass die Speicherauszugsdatei durch einen DB2-Prozess erstellt wurde, der in Partition 10 ausgefhrt wurde:
Dump File: /home/db2/sqllib/db2dump/56772.010 Data : SECTION STMT

Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3

Kapitel 1. Weitere Informationen zu verschiedenen Themen

15

Trapdateien Trapdateien
DB2 generiert eine Trapdatei, falls DB2 die Verarbeitung aufgrund einer Fehlerunterbrechung (Trap), einer Segmentierungsverletzung oder einer Ausnahmebedingung nicht fortsetzen kann. Alle Signale oder Ausnahmebedingungen, die von DB2 empfangen werden, werden in der Trapdatei aufgezeichnet. Die Trapdatei enthlt auerdem die Funktionsfolge, die aktiv war, als der Fehler aufgetreten ist. Diese Folge wird manchmal auch als Funktionsaufrufstack (engl. function call stack) oder Stack-Traceback bezeichnet. Die Trapdatei enthlt darber hinaus Informationen zum Status des Prozesses, als das Signal oder die Ausnahmebedingung aufgefangen wurde. Die Dateien befinden sich in dem Verzeichnis, das durch den Konfigurationsparameter DIAGPATH des Datenbankmanagers angegeben wird. Unter Linux und UNIX ist der erste Buchstabe im Dateinamen ein t, gefolgt von einer Prozess-ID (PID). Die Dateierweiterung ist die Partitionsnummer (000 fr Datenbanken mit nur einer Partition). Unter Windows erhlt jede Trapdatei einen Namen im Format Pxxxxx.yyy. Hierbei ist xxxxx die Prozess-ID (PID) und yyy die Nummer der Datenbankpartition (bzw. 000 fr Datenbanken mit nur einer Partition). Wenn die Trapdatei aufgrund einer Ausnahmebedingung generiert wird, erhlt sie die Erweiterung .TRP. Es gibt auch Diagnosetraps, die der Code generiert, wenn bestimmte Bedingungen eintreten, die keine Unterbrechung der Instanz rechtfertigen, bei denen aber der Stack ntzliche Informationen enthlt. Der Name dieser Traps besteht aus der PID im Hexadezimalformat, gefolgt von der Partitionsnummer (0 fr Datenbanken mit nur einer Partition). Beispiele: v t56772.000 ist eine Trapdatei fr den Prozess mit der PID 56772. v t56772.010 ist eine Trapdatei fr den Prozess mit der PID 56772. Sie wurde durch einen DB2-Prozess erstellt, der in Partition 10 ausgefhrt wurde. Sie knnen Trapdateien nach Bedarf erstellen, indem Sie den Befehl db2pd mit der Option -stack all oder -dump verwenden. Im Allgemeinen sollte dies jedoch nur auf Anforderung der DB2-Untersttzungsfunktion erfolgen. Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3 v Systemkerndateien (UNIX) auf Seite 18 Zugehrige Tasks: v berwachung und Fehlerbehebung mit db2pd auf Seite 42 Zugehrige Referenzen: v db2pd - Monitor and troubleshoot DB2 database command in Command Reference

16

Fehlerbehebung

Formatieren von Trapdateien (Windows)


Fr das Formatieren von Trapdateien (*.TRP) steht Ihnen das Tool db2xprt.exe zur Verfgung. Es formatiert die binren Trapdateien der DB2-Datenbank in vom Benutzer lesbare ASCII-Dateien. Das Tool verwendet DB2-Symboldateien zum Formatieren der Trapdateien. Eine Untergruppe dieser .PDB-Dateien wird in die DB2-Datenbankprodukte integriert. Wurde die Trapdatei DB30882416.TRP unter DIAGPATH generiert, kann diese wie folgt formatiert werden:
db2xprt DB30882416.TRP DB30882416.FMT

Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3 v Trapdateien auf Seite 16 Zugehrige Referenzen: v db2xprt - Format trap file command in Command Reference

Plattformspezifische Fehlerprotokolle Informationen in plattformspezifischen Fehlerprotokollen


Auch auerhalb von DB2 steht eine Vielzahl weiterer Dateien und Dienstprogramme zur Verfgung, die Sie bei der Fehleranalyse untersttzen. Hufig sind sie fr die Ermittlung der eigentlichen Fehlerursache ebenso wichtig wie die verfgbaren DB2-Dateien. Ein Teil dieser Informationen befindet sich in Protokollen und Traces innerhalb der folgenden Bereiche: v Betriebssysteme v Anwendungen und Fremdanbieter v Hardware Abhngig von der verwendeten Betriebsumgebung knnen sich relevante Informationen auch in Bereichen befinden, die hier nicht beschrieben sind. Achten Sie daher auf alle in Frage kommenden Bereiche, in denen Sie nach den erforderlichen Informationen suchen mssen, wenn Sie die Fehlerbehebung auf Ihrem System durchfhren. Betriebssysteme: Jedes Betriebssystem verfgt ber eigene Diagnosedateien, in denen Aktivitten und Fehler protokolliert werden. Die am hufigsten vorkommenden (und normalerweise ntzlichsten) dieser Dateien sind Fehlerberichte oder Ereignisprotokolle. Nachfolgend sind die Methoden aufgefhrt, mit denen diese Informationen erfasst werden: v AIX: Mit dem Befehl /usr/bin/errpt -a v Solaris: Mit /var/adm/messages*-Dateien oder dem Befehl /usr/bin/dmesg v Linux: Mit /var/log/messages*-Dateien oder dem Befehl /bin/dmesg v HP-UX: Mit der Datei /var/adm/syslog/syslog.log oder dem Befehl /usr/bin/ dmesg

Kapitel 1. Weitere Informationen zu verschiedenen Themen

17

v Windows: Mit den Ereignisprotokolldateien fr System, Sicherheit und Anwendungen sowie mit der Datei windir\drwtsn32.log (wobei windir das WindowsInstallationsverzeichnis ist) Fr jedes Betriebssystem gibt es weitere Trace- und Debugdienstprogramme. Verwenden Sie die Dokumentation und das Untersttzungsmaterial fr Ihr Betriebssystem, um festzustellen, welche Informationen zustzlich zur Verfgung stehen. Anwendungen und Fremdanbieter: Normalerweise verfgt jede Anwendung ber eigene Protokoll- und Diagnosedateien. Diese Dateien ergnzen die DB2-Informationen und vermitteln so ein genaueres Bild mglicher Problembereiche. Hardware: Hardwareeinheiten zeichnen Informationen normalerweise in Betriebssystemfehlerprotokollen auf. In manchen Situationen sind jedoch mglicherweise zustzliche Informationen erforderlich. In diesen Fllen mssen Sie feststellen, welche Hardwarediagnosedateien und -dienstprogramme fr welche Hardwarekomponente in der verwendeten Umgebung verfgbar sind. Ein Beispiel hierfr ist, wenn DB2 eine fehlerhafte Seite oder eine Beschdigung meldet. Normalerweise wird diese Nachricht aufgrund eines Plattenfehlers ausgegeben, was bedeutet, dass die Hardwarediagnose berprft werden muss. Bitte verwenden Sie die Dokumentation und das Untersttzungsmaterial fr die jeweilige Hardware, um festzustellen, welche Informationen zustzlich zur Verfgung stehen. Zusammenfassend lsst sich sagen, dass Sie, um einen Fehler vollstndig zu verstehen und auszuwerten, mglicherweise alle Informationen erfassen mssen, die von DB2, von den Anwendungen, vom Betriebssystem und von der zugrunde liegenden Hardware bereitgestellt werden. Das Tool db2support automatisiert die Erfassung der meisten DB2- und Betriebssysteminformationen, die Sie bentigen; dennoch sollten Sie auch auf Informationen auerhalb dieser Erfassung achten, die bei der Untersuchung von Fehlern ntzlich sein knnen. Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3

Systemkerndateien (UNIX)
Wenn ein Programm abnormal beendet wird, wird eine Kerndatei (engl. Core File) durch das System erstellt, um ein Speicherimage des beendeten Prozesses zu speichern. Fehler, wie zum Beispiel Speicheradressverletzungen, unzulssige Instruktionen, Busfehler und benutzergenerierte Beendigungssignale fhren zur Generierung von Kerndateien. Die Kerndatei erhlt den Namen core und wird in dem Verzeichnis abgelegt, in dem die Anwendung ausgefhrt wurde. Beachten Sie, dass sich die Systemkerndateien von DB2-Trapdateien unterscheiden. Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3

18

Fehlerbehebung

Zugreifen auf Informationen in Systemkerndateien (UNIX)


Der Systembefehl dbx hilft Ihnen bei der Ermittlung, welche Funktion dazu fhrte, dass eine Systemkerndatei erstellt wurde. Hierbei handelt es sich um eine einfache Prfung, die dabei hilft festzustellen, ob der Datenbankmanager den Fehler verursacht hat oder ob ein Fehler des Betriebssystems bzw. einer Anwendung fr den Fehler verantwortlich ist. Vorbedingungen: Sie mssen den Befehl dbx installiert haben. Vorgehensweise: Gehen Sie wie folgt vor, um festzustellen, welche Funktion die Erstellung der Kerndatei verursacht hat: 1. Geben Sie den folgenden Befehl ber eine UNIX-Eingabeaufforderung ein:
dbx programmname kerndateiname

Dabei ist programmname der Name des Programms, dass abnormal beendet wurde, und kerndateiname der Name der Datei, die den Kerndateispeicherauszug enthlt. Der Parameter fr den kerndateinamen ist optional. Wenn Sie ihn nicht angeben, wird der Standardname core verwendet. 2. Zum Abruf symbolischer Informationen, kompilieren Sie die Anwendung mit der Option -g. 3. Zum Beenden des Befehls dbx geben Sie quit in die dbx-Eingabeaufforderung ein. 4. Fr das HP-UX-Betriebssystem verwenden Sie den Befehl xdb fr eine hnliche Funktion. 5. Stellen Sie unter AIX sicher, dass die volle Kernoption (Core) mit Hilfe des Befehls chdev oder ber smitty aktiviert wurde. 6. Der Befehl dbx stellt wesentlich mehr Funktionen bereit, als in diesem Abschnitt beschrieben werden. Wenn Sie mehr erfahren mchten, geben Sie den Befehl man dbx ber eine UNIX-Eingabeaufforderung ein. Beispiel fr den Befehl dbx: Das folgende Beispiel zeigt, wie der Befehl dbx verwendet wird, um die Kerndatei fr ein Programm mit dem Namen main zu lesen. 1. Geben Sie in eine Eingabeaufforderung Folgendes ein:
dbx main

2. Auf Ihrem Bildschirm wird eine Ausgabe hnlich der folgenden angezeigt:
dbx version 3.1 for AIX. Type help for help. reading symbolic information ... [using memory image in core] segmentation.violation in freeSegments at line 136 136 (void) shmdt((void *) pcAdress[i]);

3. Der Name der Funktion, die den Kernspeicherauszug verursacht hat, ist freeSegments. Wenn der Funktionsname mit db2, sql oder ddcs beginnt, kann dies auf einen Fehler im Produkt des Datenbankmanagers oder von DB2 ConKapitel 1. Weitere Informationen zu verschiedenen Themen

19

nect hinweisen. Geben Sie where in die dbx-Eingabeaufforderung ein, um den Programmpfad zu der Stelle mit dem Fehler anzuzeigen.
(dbx) where freeSegments(numSegs = 2, iSetId = 0x2ff7f730, pcAddress = 0x2ff7f758, line 136 in "main.c" main (0x1, 2ff7f7d4), line 96 in "main.c"

In diesem Beispiel ist der Fehler in Zeile 136 der Funktion freeSegments aufgetreten, die in Zeile 96 im Programm main.c aufgerufen wurde. 4. Zum Beenden des Befehls dbx geben Sie quit in die dbx-Eingabeaufforderung ein. Zugehrige Konzepte: v Diagnosetools (Linux und UNIX) auf Seite 78 v Systemkerndateien (UNIX) auf Seite 18

Zugreifen auf Ereignisprotokolle (Windows)


Die Windows-Ereignisprotokolle knnen ebenfalls ntzliche Informationen liefern. Das Systemereignisprotokoll ist in der Regel am ntzlichsten bei DB2-Abstrzen oder anderen ungeklrten Fehlern im Zusammenhang mit Systemressourcen; es empfiehlt sich jedoch, alle drei Ereignisprotokolltypen abzurufen: v System v Anwendung v Sicherheit Die Vorgehensweise zum Starten der Windows-Ereignisanzeige richtet sich danach, ob Sie Windows XP, Windows 2003 oder Windows 2000 verwenden. Klicken Sie unter Windows XP zum Starten der Ereignisanzeige beispielsweise Start Systemsteuerung an. Whlen Sie Leistung und Wartung aus, und klicken Sie danach Verwaltung an. Klicken Sie anschlieend doppelt Ereignisanzeige an. Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3 Zugehrige Tasks: v Exportieren von Ereignisprotokollen (Windows) auf Seite 20

Exportieren von Ereignisprotokollen (Windows)


In der Ereignisanzeige knnen Sie Ereignisprotokolle in zwei Formaten exportieren: v .evt - dieses Format kann wieder zurck in eine Ereignisanzeige (z. B. auf einer anderen Maschine) geladen werden v Textformat Das Ereignisanzeigenformat ist einfach zu bearbeiten, da Sie die GUI verwenden knnen, um die chronologische Reihenfolge zu ndern, bestimmte Ereignisse herauszufiltern und vorwrts oder zurck zu blttern. Textdateien haben einen entscheidenden Vorteil - die Zeitmarken sind verlsslich! Wenn Sie Ereignisprotokolle im .evt-Format exportieren, weisen die Zeitmarken das Weltzeitformat (Coordinated Universal Time) auf und werden in die Ortszeit

20

Fehlerbehebung

der Maschine in der Anzeige konvertiert. So kann es vorkommen, dass Sie aufgrund der Zeitzonendifferenz wichtige Ereignisse bersehen. Darber hinaus sind Textdateien einfacher zu durchsuchen; sobald Sie ein Ereignisprotokoll von einer anderen Maschine in die Ereignisanzeige geladen haben, knnen Sie es einfach erneut im Textformat exportieren. Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3 Zugehrige Tasks: v Zugreifen auf Ereignisprotokolle (Windows) auf Seite 20

Zugriff auf die Protokolldatei von Dr. Watson (Windows)


Das Protokoll von Dr. Watson, drwtsn32.log, ist eine chronologische Aufzeichnung aller Ausnahmebedingungen, die auf dem System aufgetreten sind. Obwohl die DB2-Trapdateien aussagekrftiger sind als das Dr. Watson-Protokoll, kann es bei der Einschtzung der allgemeinen Systemstabilitt sowie zur Dokumentation der Protokollierung von DB2-Traps ntzlich sein. Der Standardpfad lautet <installationsverzeichnis>:\Dokumente und Einstellungen \All Users\ Dokumente\DrWatson. Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3 Zugehrige Referenzen: v Diagnosetools (Windows) auf Seite 77

Kombinieren von Diagnoseprogrammen der DB2-Datenbank und des Betriebssystems


Das Diagnostizieren von Problemen im Hinblick auf Hauptspeicher, Auslagerungsdateien, CPUs, Plattenspeicher und andere Ressourcen erfordert grndliche Kenntnisse darber, wie das betreffende Betriebssystem die entsprechenden Ressourcen verwaltet. Die Definition eines ressourcenbezogenen Problems erfordert als Minimum Kenntnisse darber, wie viel einer Ressource vorhanden ist und welche Ressourcengrenzen pro Benutzer gelten. (Die entsprechenden Grenzwerte gelten normalerweise fr die Benutzer-ID des DB2-Instanzeigners.) Im Folgenden werden einige der wichtigen Konfigurationsdaten aufgefhrt, die abgerufen werden mssen: v Programmkorrekturstufe (Patch-Level) des Betriebssystems sowie installierte Software und Upgrade-Verlauf v Anzahl der CPUs v Volumen des Arbeitsspeichers (RAM) v Einstellungen fr Auslagerungs- und Dateicache v Grenzwerte fr Benutzerdaten und Dateiressourcen sowie Prozessgrenzwerte pro Benutzer v IPC-Ressourcengrenzwerte (Nachrichtenwarteschlangen, gemeinsam genutzte Speichersegmente, Semaphore) v Typ des Plattenspeichers

Kapitel 1. Weitere Informationen zu verschiedenen Themen

21

v Wofr wird das System sonst noch verwendet? Muss sich DB2 die Ressourcen mit anderen Anwendungen teilen? v Wo findet die Authentifizierung statt? Auf den meisten Plattformen knnen Informationen zu Ressourcen mit Hilfe von einfachen Befehlen abgerufen werden. Allerdings ist es nur selten erforderlich, diese Informationen manuell abzurufen, da diese Daten und viele mehr vom Dienstprogramm db2support erfasst werden. Die Datei detailed_system_info.html, die von db2support generiert wird (sofern die Optionen -s und -m angegeben werden), enthlt die Syntax fr viele der Betriebssystembefehle, die zum Erfassen dieser Informationen verwendet werden. Anhand der folgenden bungen soll gezeigt werden, wie Informationen zur Systemkonfiguration und Benutzerumgebung in den verschiedenen DB2-Diagnosedateien ermittelt werden. Die erste bung illustriert die erforderlichen Schritte zur Ausfhrung des Dienstprogramms db2support. Die nachfolgenden bungen befassen sich mit Trapdateien, die weitere von DB2 generierte Daten bereitstellen, die fr ein besseres Verstndnis der Benutzerumgebung und Ressourcengrenzen ntzlich sein knnen. bung 1: Befehl db2support ausfhren 1. Starten Sie die DB2-Instanz mit Hilfe des Befehls db2start. 2. Erstellen Sie ein Verzeichnis zum Speichern der Befehlsausgabe von db2support. (Hierbei wird davon ausgegangen, dass die Datenbank SAMPLE bereits vorhanden ist.) 3. Wechseln Sie in dieses Verzeichnis, und geben Sie den folgenden Befehl aus:
db2support <verzeichnis> -d sample -s -m

4. berprfen Sie die Konsolausgabe, und achten Sie hierbei insbesondere auf die Typen der erfassten Informationen. Die Befehlsausgabe sollte wie folgt aussehen (unter Windows):
... "Systemdateien" erfassen "db2cache.prf" "db2cos9402136.0" "db2cos9402840.0" "db2dbamr.prf" "db2diag.bak" "db2eventlog.000" "db2misc.prf" "db2nodes.cfg" "db2profile.bat" "db2systm" "db2tools.prf" "HealthRulesV82.reg" "db2dasdiag.log" ... "Detaillierte Betriebssystem- und Hardwareinformationen" erfassen "Systemressourceninformationen (Datentrger, CPU, Speicher)" erfassen "Betriebssystem und -stufe" erfassen "JDK-Stufe" erfassen "DB2-Release-Informationen" erfassen "DB2-Installationspfadinformationen" erfassen "Registrierungsdatenbankinformationen" erfassen ... Endgltiges Ausgabearchiv erstellen "db2support.html" "db2_sqllib_directory.txt" "detailed_system_info.html" "db2supp_system.zip"

22

Fehlerbehebung

"dbm_detailed.supp_cfg" "db2diag.log" db2support ist jetzt beendet. Die folgende Archivdatei wurde erstellt: db2support.zip

5. Zeigen Sie die Datei detailed_system_info.html nun mit einem Web-Browser an. Ermitteln Sie auf jedem System jeweils die folgenden Informationen: v Anzahl der CPUs v Version des Betriebssystems v Benutzerumgebung v Ressourcengrenzwerte fr Benutzer (UNIX-Befehl ulimit) bung 2: Informationen zur Umgebung in einer DB2-Trapdatei ermitteln 1. Stellen Sie sicher, dass eine DB2-Instanz gestartet ist, und geben Sie anschlieend den folgenden Befehl aus:
db2pd -stack all

Die Aufrufstacks werden in Dateien im Diagnoseverzeichnis gestellt (das im Konfigurationsparameter DIAGPATH des Datenbankmanagers definiert ist). 2. Suchen Sie in einer der Trapdateien nach folgenden Informationen: v DB2-Codeversion v Data seg top (dies ist der maximal erforderliche private Adressraum) v Cur data size (dies ist der maximale Grenzwert fr den privaten Adressraum) v Cur core size (dies ist der maximale Grenzwert fr die Kerndatei) v Signalroutinen (diese Information wird unter Umstnden nicht in allen Trapdateien angezeigt) v Umgebungsvariablen (diese Information wird unter Umstnden nicht in allen Trapdateien angezeigt) v Zuordnungsausgabe (zeigt die geladenen Bibliotheken) Beispieltrapdatei aus Windows (abgeschnitten):
... <DB2TrapFile version="1.0"> <Trap> <Header> DB2 build information: DB2 v9.1.0.190 s060121 SQL09010 timestamp: 2006-02-17-14.03.43.846000 uname: S:Windows comment: process id: 940 thread id: 3592 </Header> <SystemInformation> Number of Processors: 1 Processor Type: x86 Family 15 Model 2 Stepping 4 OS Version: Microsoft Windows XP, Service Pack 2 (5.1) Current Build: 2600 </SystemInformation> <MemoryInformation> <Usage> Physical Memory: 1023 total, 568 free. Virtual Memory : 2047 total, 1882 free. Paging File : 2461 total, 2011 free. Ext. Virtual : 0 free. </Usage> </MemoryInformation <EnvironmentVariables> <![CDATA[
Kapitel 1. Weitere Informationen zu verschiedenen Themen

23

[e] DB2PATH=C:\Program Files\IBM\SQLLIB [g] DB2_EXTSECURITY=YES [g] DB2SYSTEM=MYSRVR [g] DB2PATH=C:\Program Files\IBM\SQLLIB [g] DB2INSTDEF=DB2 [g] DB2ADMINSERVER=DB2DAS00 ]]></EnvironmentVariables>

Korrelation zwischen DB2 und Systemereignissen bzw. -fehlern: Systemnachrichten und Fehlerprotokolle werden viel zu hufig ignoriert. Sie knnen bei der Lsung von Problemen Stunden, Tage oder sogar Wochen sparen, wenn Sie sich die Zeit nehmen, ganz am Anfang der Problemdefinition und -untersuchung eine einfache Task auszufhren. Diese Task besteht darin, die Eintrge in verschiedenen Protokollen miteinander zu vergleichen und alles zu notieren, das miteinander in Zusammenhang zu stehen scheint, was die Zeit und die Ressourcen betrifft, auf die die Eintrge verweisen. Die besten Hinweise sind hufig in den Systemprotokollen enthalten, auch wenn diese nicht immer fr die Problemdiagnose relevant sind. Wenn ein gemeldetes Systemproblem mit DB2-Fehlern korreliert, d. h. in Zusammenhang gebracht werden kann, dann ist in vielen Fllen bereits klar, worin die direkte Ursache fr das DB2-Symptom liegt. Offensichtliche Beispiele sind Plattenfehler, Netzfehler und Hardwarefehler. Weniger offensichtlich sind Probleme, die auf verschiedenen Maschinen gemeldet werden, wie beispielsweise auf Domnencontrollern oder NIS-Servern, und die sich auf die Verbindungszeit oder die Authentifizierung auswirken knnen. Systemprotokolle knnen Aufschluss ber die Stabilitt des Systems geben. Dies gilt insbesondere dann, wenn Probleme auf ganz neuen Systemen gemeldet werden. Gelegentlich auftretende Traps in einheitlichen Anwendungen knnen ein Anzeichen dafr sein, dass es sich bei dem zugrunde liegenden Problem um einen Hardwarefehler handelt. Systemprotokolle bieten unter anderem auch folgende Informationen: v Bedeutende Ereignisse, wie beispielweise der Zeitpunkt eines Systemwarmstarts v Zeitliche Abfolge der DB2-Traps im System (sowie Fehler, Traps und Ausnahmebedingungen anderer fehlschlagender Softwarekomponenten) v Fehler aufgrund von Kernel-Notfllen (Panic-Situationen), unzureichendem Dateisystemspeicher und unzureichendem Auslagerungsspeicher (die verhindern knnen, dass das System einen neuen Prozess oder eine neue Prozessverzweigung erstellt) Systemprotokolle knnen dabei helfen, Absturzeintrge in der Datei db2diag.log als Ursache auszuschlieen. Wenn Sie in den DB2-Protokollen mit Benachrichtigungen fr die Systemverwaltung oder in den DB2-Diagnoseprotokollen auf eine Recovery nach Systemabsturz stoen, ohne dass zuvor ein Fehler aufgetreten ist, dann ist diese Recovery von DB2 nach Systemabsturz wahrscheinlich die Folge eines Systemabschlusses. Das Prinzip der Korrelation von Informationen erstreckt sich auch auf Protokolle aus anderen Quellen und auf alle identifizierbaren Benutzersymptome. So kann es beispielsweise sehr ntzlich sein, korrelierende Eintrge aus dem Protokoll einer anderen Anwendung zu identifizieren und zu dokumentieren, selbst wenn Sie die Eintrge nicht vollstndig interpretieren knnen.

24

Fehlerbehebung

Das Ergebnis dieser Informationen ist ein sehr grndliches Verstndnis Ihres Servers und der Gesamtheit der verschiedenen Ereignisse, die zum Zeitpunkt des Fehlers auftreten. Zugehrige Referenzen: v db2pd - Monitor and troubleshoot DB2 database command in Command Reference v db2support - Problem analysis and environment collection tool command in Command Reference

Kapitel 1. Weitere Informationen zu verschiedenen Themen

25

26

Fehlerbehebung

Kapitel 2. Fehlerbehebung - DB2


Fehlerbehebung fr DB2
Bei der Fehlerbehebung geht es im Wesentlichen darum, einen Fehler einzugrenzen und zu bestimmen, um anschlieend nach einer Lsung suchen zu knnen. In diesem Abschnitt wird die Fehlerbehebung fr bestimmte DB2-Funktionen erlutert. Wenn allgemeine Fehler bekannt werden sollten, werden sie in diesem Abschnitt in Form von Checklisten hinzugefgt, sobald nhere Informationen verfgbar sind. Sollten Sie den bei Ihnen aufgetretenen Fehler nicht mit Hilfe der Checkliste beheben knnen, empfiehlt es sich, weitere Diagnosedaten zu sammeln, die sie dann selbst analysieren oder zur Analyse bei der IBM Untersttzungsfunktion einreichen knnen.

Fehlerbehebung - Umgebungen mit partitionierten Datenbanken Absetzen von Befehlen in einer Umgebung mit partitionierten Datenbanken
In einer Umgebung mit partitionierten Datenbanken kann es wnschenswert sein, Befehle absetzen zu knnen, die auf Computern in der Instanz oder auf Datenbankpartitionsservern (Knoten) ausgefhrt werden. Sie haben diese Mglichkeit mit Hilfe des Befehls rah oder des Befehls db2_all. Der Befehl rah ermglicht Ihnen das Absetzen von Befehlen, die Sie auf Computern in der Instanz ausfhren wollen. Wenn Sie die Befehle auf Datenbankpartitionsservern in der Instanz ausfhren wollen, verwenden Sie den Befehl db2_all. Dieser Abschnitt enthlt eine bersicht ber diese Befehle. Die folgenden Informationen beziehen sich ausschlielich auf Umgebungen mit partitionierten Datenbanken. Anmerkungen: 1. Auf Plattformen unter Linux und UNIX kann Ihre Anmeldeshell eine KornShell oder eine beliebige andere Shell sein. Jedoch gibt es Unterschiede in der Art, wie verschiedene Shells Befehle behandeln, die Sonderzeichen enthalten. 2. Darber hinaus verwendet der Befehl rah auf Linux- und UNIX-Plattformen das Programm fr die ferne Shell, das durch die Registrierdatenbankvariable DB2RSHCMD angegeben wird. Sie knnen zwischen den folgenden beiden Programmen fr die ferne Shell whlen: ssh (fr zustzliche Sicherheit) oder rsh (bzw. remsh fr HP-UX). Das Programm ssh fr die ferne Shell wird verwendet, um die bertragung von unverschlsselten Kennwrtern in UNIXBetriebssystemumgebungen zu verhindern. Wenn diese Registrierdatenbankvariable nicht definiert ist, wird rsh (bzw. remsh fr HP-UX) verwendet. 3. Unter Windows mssen Sie mit einem Benutzerkonto angemeldet sein, das zur Administratorengruppe gehrt, um den Befehl rah oder db2_all ausfhren zu knnen. Informationen zum Geltungsbereich eines Befehls finden Sie im Handbuch Command Reference, das Angaben darber enthlt, ob ein Befehl auf einem einzelnen Datenbankpartitionsserver oder auf allen ausgefhrt wird. Wenn der Befehl auf einem Datenbankpartitionsserver ausgefhrt wird und Sie ihn auf allen Datenbankpartitionsservern ausfhren wollen, verwenden Sie dazu den Befehl db2_all.

27

Eine Ausnahme bildet der Befehl db2trc, der in allen logischen Knoten (Datenbankpartitionsservern) auf einem Computer ausgefhrt wird. Wenn Sie den Befehl db2trc in allen logischen Knoten auf allen Computern ausfhren wollen, verwenden Sie dazu den Befehl rah. Zugehrige Konzepte: v bersicht ber die Befehle rah und db2_all in Systemverwaltung: Implementierung v Angeben der Befehle rah und db2_all in Systemverwaltung: Implementierung Zugehrige Referenzen: v Beschreibungen der Befehle rah und db2_all in Systemverwaltung: Implementierung

28

Fehlerbehebung

Kapitel 3. Fehlerbehebung - DB2 Connect


Fehlerbestimmung
Die DB2 Connect-Umgebung umfasst mehrere Software-, Hardware- und Kommunikationsprodukte. Der beste Ansatz fr die Fehlerbestimmung ist das Ausschlieen von Mglichkeiten und eine Annherung an die Fehlerursache in Einzelschritten. Arbeiten Sie nach Erfassen der relevanten Informationen und Auswahl des entsprechenden Themas mit dem Abschnitt weiter, auf den verwiesen wird. Zugehrige Konzepte: v Diagnosetools auf Seite 32 v Erfassen relevanter Informationen auf Seite 29 v Nicht erfolgreiche einleitende Verbindung auf Seite 30 v Probleme nach dem Herstellen einer einleitenden Verbindung auf Seite 31 v Tracedienstprogramm auf Seite 58

Erfassen relevanter Informationen


Die Fehlerbestimmung umfasst das Einkreisen des Problembereichs und das Prfen mglicher Ursachen. Zu Beginn der Analyse sollten die relevanten Informationen zusammengestellt werden, und es sollte festgestellt werden, welche Fakten bekannt sind, welche Fakten nicht bekannt sind und welche mglichen Problemursachen ausgeschlossen werden knnen. Es sollten mindestens folgende Fragen beantwortet werden: v War die einleitende Verbindung erfolgreich? v Funktioniert die Hardware einwandfrei? v Funktionieren die bertragungswege ordnungsgem? v Wurden nderungen am Kommunikationsnetzwerk vorgenommen, durch die frhere Verzeichniseintrge ungltig wurden? v Wurde die Datenbank gestartet? v Tritt der Kommunikationsfehler zwischen dem Client und der DB2 ConnectWorkstation, zwischen der DB2 Connect-Workstation und dem Host- bzw. iSeries-Datenbankserver, bei allen Clients oder nur bei einem Client auf? v Was lsst sich aus dem Inhalt der Nachricht und den in der Nachricht aufgefhrten Token ablesen? v Knnen Diagnose-Tools im derzeitigen Stadium Hilfe bieten? v Arbeiten andere Maschinen, die die gleichen Funktionen ausfhren, einwandfrei? v Wird im Fall einer fernen Funktion diese lokal erfolgreich ausgefhrt? Zugehrige Konzepte: v Diagnosetools auf Seite 32 v Fehlerbestimmung auf Seite 29

29

Nicht erfolgreiche einleitende Verbindung


Beantworten Sie folgende Fragen, und stellen Sie sicher, dass die Schritte zur Installation ordnungsgem durchgefhrt wurden: 1. Wurde der Installationsvorgang erfolgreich abgeschlossen? v Waren alle vorausgesetzten Softwareprodukte verfgbar? v War genug Hauptspeicher und Plattenspeicher verfgbar? v Wurde die Untersttzung fr ferne Clients installiert? v Wurde die Installation der Kommunikationssoftware ohne Fehlerbedingungen beendet? 2. Fr UNIX-Betriebssysteme: Wurde eine Instanz des Produkts erstellt? v Haben Sie als root-Benutzer einen Benutzer und eine Gruppe als Instanzeigner und als Gruppe SYSADM erstellt? 3. Wurden (falls dies im vorliegenden Fall zutrifft) die Lizenzinformationen erfolgreich verarbeitet? v Fr UNIX-Betriebssysteme: Wurde die Nodelock-Datei editiert und das von IBM bereitgestellte Kennwort eingegeben? 4. Waren der Host- oder iSeries-Datenbankserver und die Kommunikation der Workstation ordnungsgem konfiguriert? v Es gibt drei Konfigurationen, die betrachtet werden mssen: a. Die Konfiguration des Host- oder iSeries-Datenbankservers identifiziert den Anwendungsrequester gegenber dem Server. Das Datenbankverwaltungssystem des Host- oder iSeries-Servers verfgt ber Systemkatalogeintrge, die die Position, das Netzwerkprotokoll und die Sicherheit des Requesters definieren. b. Die Konfiguration der DB2 Connect-Workstation definiert die Gruppe von Clients gegenber dem Server sowie den Host- oder iSeries-Server gegenber dem Client. c. In der Konfiguration der Client-Workstation mssen der Name der Workstation und das bertragungsprotokoll definiert sein. v Wenn keine einleitende Verbindung hergestellt wurde, muss im Rahmen der Problemanalyse berprft werden, ob die Namen aller physischen Einheiten vollstndig und korrekt sind. Bei TCP/IP-Verbindungen muss berprft werden, ob die korrekte Anschlussnummer und der korrekte Hostname angegeben wurden. v Sowohl der Datenbankadministrator des Host- oder iSeries-Servers als auch die Netzwerkadministratoren verfgen ber Dienstprogramme, mit denen eine Problemdiagnose durchgefhrt werden kann. 5. Verfgen Sie ber die fr das Datenbankverwaltungssystem des Host- oder iSeriesServers erforderliche Berechtigungsstufe zur Verwendung der Host- oder iSeries-Serverdatenbank? v Es mssen die Zugriffsberechtigung des Benutzers, die Regeln fr Tabellenqualifikationsmerkmale und die erwarteten Ergebnisse beachtet werden. 6. Schlgt der Versuch fehl, mit dem Befehlszeilenprozessor (CLP) SQL-Anweisungen fr einen Host- oder iSeries-Datenbankserver abzusetzen? v Wurde der Befehlszeilenprozessor (CLP) anhand der entsprechenden Prozedur an den Host- oder iSeries-Datenbankserver gebunden? Zugehrige Konzepte: v Fehlerbestimmung auf Seite 29 v Probleme nach dem Herstellen einer einleitenden Verbindung auf Seite 31

30

Fehlerbehebung

Probleme nach dem Herstellen einer einleitenden Verbindung


Die folgenden Fragen sollen helfen, den Problembereich einzukreisen. 1. Liegen irgendwelche speziellen oder ungewhnlichen Umstnde beim Betrieb vor? v Handelt es sich um eine neue Anwendung? v Werden neue Prozeduren verwendet? v Wurden in letzter Zeit nderungen vorgenommen, die Auswirkungen auf das System haben knnten? Wurden z. B. Softwareprodukte oder Anwendungen gendert, seit die Anwendung oder das Szenario zum letzten Mal erfolgreich durchgefhrt wurden? v Bei Anwendungsprogrammen: Welche Anwendungsprogrammierschnittstelle (API) wurde zur Erstellung des Programms verwendet? v Wurden andere Anwendungen, die die Software oder Kommunikations-APIs verwenden, auf dem System des Benutzers ausgefhrt? v Wurde in letzter Zeit eine vorlufige Programmkorrektur (PTF - Program Temporary Fix) vorgenommen? Trat das Problem auf, als ein Benutzer versuchte, eine Funktion zu verwenden, die seit ihrer Installation nicht im Betriebssystem verwendet (oder geladen) wurde, ermitteln Sie die letzte PTFStufe von IBM, und laden Sie diese Stufe, nachdem die Funktion installiert wurde. 2. Trat dieser Fehler bereits frher auf? v Gibt es eine dokumentierte Lsung fr frhere Fehlerbedingungen? v Wer waren die Betroffenen? Knnen diese Hinweise fr mgliche Manahmen bieten? 3. Wurde versucht, ber Befehle der DFV-Software Informationen zum Netzwerk abzurufen? v TCP/IP liefert mglicherweise wertvolle Informationen, die durch die Verwendung von TCP/IP-Befehlen und -Dmonen abgerufen wurden. 4. Wurden Informationen im SQL-Kommunikationsbereich zurckgegeben, die ntzlich sein knnten? v Prozeduren zur Fehlerbehebung sollten Manahmen zur berprfung des Inhalts der Felder fr SQLCODE- und SQLSTATE-Werte umfassen. v SQLSTATE-Werte ermglichen Anwendungsprogrammierern das Testen auf Fehlerklassen, die der DB2-Familie von Datenbankprodukten gemeinsam sind. In einem Netzwerk mit verteilten relationalen Datenbanken kann dieses Feld unter Umstnden eine gemeinsame Basis darstellen. Wurde DB2START auf dem Server ausgefhrt? Stellen Sie zustzlich sicher, dass die Umgebungsvariable DB2COMM korrekt eingestellt ist, so dass Clients Fernzugriff auf den Server haben. Knnen andere Maschinen, die die gleichen Funktionen ausfhren, die Verbindung zum Server erfolgreich herstellen? Es knnte sein, dass die maximale Anzahl von Clients erreicht ist, die versuchen, eine Verbindung zum Server herzustellen. Wenn ein anderer Client die Verbindung zum Server trennt, kann der Client, der bisher die Verbindung nicht herstellen konnte, sie nun herstellen? Hat die Maschine die richtige Adressierung? Prfen Sie, ob die Maschine im Netzwerk eindeutig ist. Wurde dem Client die richtige Berechtigung fr den Fernzugriff erteilt? Die Verbindung zur Instanz kann zwar erfolgreich sein. Mglicherweise wurde die Berechtigung jedoch nicht auf Datenbank- oder Tabellenebene erteilt.

5.

6.

7. 8.

Kapitel 3. Fehlerbehebung - DB2 Connect

31

9. Ist dies die erste Maschine, die eine Verbindung zu einer fernen Datenbank herstellt? In verteilten Umgebungen knnen Router oder Brcken zwischen Netzwerken die Kommunikation zwischen dem Client und dem Server mglicherweise blockieren. Bei TCP/IP beispielsweise muss sichergestellt werden, dass ein Befehl PING an den fernen Host abgesetzt werden kann. Anmerkung: DB2 Connect untersttzt den Befehl PING nicht, wenn dieser Befehl von einem Client der Version 7 ber einen DB2 ConnectServer der Version 9 abgesetzt wird. Zugehrige Konzepte: v Fehlerbestimmung auf Seite 29 v Tracedienstprogramm auf Seite 58

Diagnosetools
Folgende Tools stehen zur Verfgung, um den Benutzer bei auftretenden Problemen oder Fehlern zu untersttzen: v Das Serviceprotokoll des DB2-Diagnoseprogramms, in dem Diagnoseinformationen konsolidiert und in einem lesbaren Format gespeichert werden. Es befindet sich im Protokoll mit Benachrichtigungen fr die Systemverwaltung. v Beide Protokolle befinden sich im angegebenen Pfad: Diese Datei befindet sich auf UNIX-Systemen im Verzeichnis /u/db2/sqllib/ db2dump/notifyloglevel.nfy, wobei db2 den Instanznamen darstellt. Auf Windows-Systemen befindet sich diese Datei im Verzeichnis x:\sqllib\db2\ db2diag.log, wobei x: das logische Laufwerk und db2 den Instanznamen darstellt. v Bei Windows-Betriebssystemen: Die Ereignisanzeige zum Aufrufen des Protokolls mit Benachrichtigungen fr die Systemverwaltung. v Das Tracedienstprogramm. v Bei Linux- und UNIX-Betriebssystemen: Der Befehl ps, der Informationen zum Status von aktiven Prozessen an die Standardausgabe zurckgibt. v Bei UNIX-Betriebssystemen: Die Kerndatei, die beim Auftreten schwer wiegender Fehler im aktuellen Verzeichnis erstellt wird. Diese Datei enthlt ein Speicherimage des beendeten Prozesses und kann verwendet werden, um zu ermitteln, welche Funktion den Fehler verursacht hat. Zugehrige Konzepte: v DB2 Connect-Fehlerbehebung in DB2 Connect Benutzerhandbuch v Tracedienstprogramm auf Seite 58

32

Fehlerbehebung

Kapitel 4. Tools fr die Fehlerbehebung


bersicht ber das Tool db2dart
Mit dem Befehl db2dart kann berprft werden, ob die Architektur von Datenbanken und den in ihnen enthaltenen Objekten einwandfrei ist. Mit diesem Tool kann auch der Inhalt der Datenbanksteuerdateien angezeigt werden, um Daten aus Tabellen zu extrahieren, auf die ansonsten mglicherweise kein Zugriff besteht. Um alle Optionen anzuzeigen, die mglich sind, brauchen Sie den Befehl db2dart einfach nur ohne Parameter abzusetzen. Einige Optionen, die Parameter erfordern, wie beispielweise die Tabellenbereichs-ID, werden angefordert, wenn sie in der Befehlszeile nicht explizit angegeben werden. Standardmig erstellt das Dienstprogramm db2dart eine Berichtsdatei namens databaseName.RPT. In Datenbankumgebungen mit nur einer Partition wird die Datei im aktuellen Verzeichnis erstellt. In Datenbankumgebungen mit mehreren Partitionen wird die Datei in einem Unterverzeichnis des Diagnoseverzeichnisses erstellt. Das Unterverzeichnis hat den Namen DART####, wobei #### fr die Datenbankpartitionsnummer steht. Die Daten und Metadaten in einer Datenbank werden vom Dienstprogramm db2dart direkt von der Platte gelesen. Aus diesem Grund sollte das Tool nie fr Datenbanken ausgefhrt werden, die noch ber aktive Verbindungen verfgen. Sind Verbindungen vorhanden, erkennt das Tool beispielsweise keine Seiten im Pufferpool und keine Steuerstrukturen im Speicher und meldet infolge dessen mglicherweise Fehler, die gar nicht vorliegen. Wenn Sie db2dart fr eine Datenbank ausfhren, fr die eine Recovery nach einem Systemabsturz erforderlich ist oder fr die noch keine aktualisierende Recovery durchgefhrt wurde, kann es aufgrund der inkonsistenten Daten auf der Platte ebenso zu solchen Inkonsistenzen kommen. Zugehrige Referenzen: v db2dart - Database analysis and reporting tool command in Command Reference

Analysieren von db2diag.log-Dateien mit db2diag


Datenbank- und Systemadministratoren wird empfohlen, als primre Protokolldatei das Protokoll mit Benachrichtigungen fr die Systemverwaltung (Administration Notification) zu verwenden. Die Datei db2diag.log ist fr die Fehlerbehebung durch die DB2-Untersttzungsfunktion vorgesehen. Das Tool db2diag dient zum Filtern und Formatieren der in der Datei db2diag.log bereitgestellten Informationsmenge. Beispiel 1: Datei db2diag.log nach Datenbankname filtern: Enthlt eine Instanz mehrere Datenbanken und wollen Sie nur die Nachrichten anzeigen, die sich auf die Datenbank SAMPLE beziehen, knnen Sie die Datei db2diag.log wie folgt filtern:
db2diag -g db=SAMPLE

33

Auf diese Weise wrden Sie nur die Datenstze in db2diag.log sehen, die DB: SAMPLE enthalten, wie z. B. der folgende Datensatz:
2006-02-15-19.31.36.114000-300 E21432H406 LEVEL: Error PID : 940 TID : 660 PROC : db2syscs.exe INSTANCE: DB2 NODE : 000 DB : SAMPLE APPHDL : 0-1056 APPID: *LOCAL.DB2.060216003103 FUNCTION: DB2 UDB, base sys utilities, sqleDatabaseQuiesce, probe:2 MESSAGE : ADM7507W Die Anforderung, ein Quiesce fr die Datenbank durchzufhren, war erfolgreich.

Beispiel 2: Datei db2diag.log nach Prozess-ID filtern: Mit Hilfe des folgenden Befehls knnen alle Nachrichten zu schwer wiegenden Fehlern angezeigt werden, die von Prozessen in den Partitionen 0, 1, 2 oder 3 mit der Prozess-ID (PID) 2200 generiert werden:
db2diag -g level=Severe,pid=940 -n 0,1,2,3

Bitte beachten Sie, dass dieser Befehl auf verschiedene Arten und Weisen geschrieben werden knnte, einschlielich db2diag -l severe -pid 2200 -n 0,1,2,3. Des Weiteren ist zu beachten, dass mit der Option -g eine von der Gro-/Kleinschreibung abhngige Suche angegeben wird, sodass in diesem Fall Severe funktionieren, die Angabe von severe jedoch fehlschlagen wrde. Mit diesen Befehlen knnen erfolgreich die Datenstze in der Datei db2diag.log abgerufen werden, die diese Kriterien erfllen, wie beispielsweise folgender Datensatz:
2006-02-13-14.34.36.027000-300 I18366H421 LEVEL: Severe PID : 940 TID : 660 PROC : db2syscs.exe INSTANCE: DB2 NODE : 000 DB : SAMPLE APPHDL : 0-1433 APPID: *LOCAL.DB2.060213193043 FUNCTION: DB2 UDB, data management, sqldPoolCreate, probe:273 RETCODE : ZRC=0x8002003C=-2147352516=SQLB_BAD_CONTAINER_PATH "Der Pfad des Containers ist ungltig"

Beispiel 3: Ausgabe des Tools db2diag formatieren: Mit dem folgenden Befehl werden alle Datenstze herausgefiltert, die nach dem 1. Januar 2006 erstellt wurden, nicht schwer wiegende sowie schwer wiegende Fehler enthalten und in den Partitionen 0, 1 oder 2 gespeichert sind. Die Ausgabe der bereinstimmenden Datenstze (wie beispielsweise der Zeitmarke, der Partitionsnummer und der Fehlerkategorie) erfolgt in der ersten Zeile, die Ausgabe der PID, TID und des Instanznamens erfolgt in der zweiten Zeile und die Ausgabe der Fehlernachricht im Anschluss daran:
db2diag -time 2006-01-01 -node "0,1,2" -level "Severe, Error" | db2diag -fmt "Time: %{ts} Partition: %node Message Level: %{level} \nPid: %{pid} Tid: %{tid} Instance: %{instance}\nMessage: @{msg}\n"

Beispielausgabe:
Time: 2006-02-15-19.31.36.099000 Partition: 000 Message Level: Error Pid: 940 Tid:940 Instance: DB2 Message: ADM7506W Es besteht eine Anforderung, ein Quiesce fr die Datenbank durchzufhren.

Wenn Sie weitere Informationen bentigen, geben Sie die folgenden Befehle aus: v db2diag -help (liefert eine Kurzbeschreibung der Optionen) v db2diag -h brief (liefert eine Beschreibung aller Optionen ohne Beispiele) v db2diag -h notes (liefert Hinweise zur Verwendung und Informationen zu Einschrnkungen) v db2diag -h examples (liefert eine Reihe von Beispielen fr die ersten Schritte) v db2diag -h tutorial (liefert Beispiele zu allen verfgbaren Optionen)

34

Fehlerbehebung

v db2diag -h all (liefert die umfangreichste Liste von Optionen) Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3 Zugehrige Referenzen: v db2diag - db2diag.log analysis tool command in Command Reference

Anzeigen und ndern der globalen Registrierdatenbank (UNIX) mit db2greg


Die globale Registrierdatenbank (Global Registry) befindet sich in der Datei /var/ db2/global.reg (/var/opt/db2/global.reg unter HP-UX) und ist nur auf UNIXund Linux-Plattformen vorhanden. Diese Datenbank besteht aus drei verschiedenen Datensatztypen: v Service: Servicestze enthalten Informationen auf Produktebene, beispielsweise zur Produktversion, zum Installationspfad etc. v Instanz: Instanzstze enthalten Informationen auf Instanzebene, wie beispielsweise den Instanznamen, den Installationspfad, die Version, die Markierung zum Start beim Booten (start-at-boot) etc. v Variable: Variablenstze enthalten Informationen auf Variablenebene, wie beispielsweise den Variablennamen, den Variablenwert und Kommentare. Die globale Registrierdatenbank kann mit Hilfe des Tools db2greg angezeigt (und mit der Root-Zugriffsberechtigung bearbeitet) werden. Dieses Tool befindet sich im Verzeichnis sqllib/bin sowie im Installationsverzeichnis install unter bin (zur Verwendung bei Anmeldung als Root). Sie sollten dieses Tool nur dann verwenden, wenn Sie von der DB2-Kundenuntersttzung dazu aufgefordert werden. Zugehrige Referenzen: v Kontaktaufnahme mit IBM auf Seite 103

Identifizieren der Version und des Service-Levels von Produkten


Mit dem Befehl db2level knnen Sie die Version und den Service-Level (Buildstufe und Fixpacknummer) der verwendeten DB2-Instanz ermitteln. Um festzustellen, ob Ihre DB2-Instanz den neuesten Service-Level aufweist, vergleichen Sie die db2level-Ausgabe mit den Informationen auf den Fixpack-Downloadseiten der DB2-Untersttzungswebsite: http://www.ibm.com/software/data/db2/udb/ support.html. Ein typisches Ergebnis der Ausfhrung des Befehls db2level auf einem WindowsSystems wrde in etwa wie folgt aussehen:
DB21085I Instanz "DB2" verwendet "32" Bit und DB2-Codefreigabe "SQL09010" mit Aktualitts-ID "01010107". Informationstoken: "DB2 v9.1.0.189", "n060119", "" und Fixpack "0". Produkt ist in "c:\SQLLIB" mit DB2-Kopienamen "db2build" installiert.

Durch die Kombination der vier Informationstoken wird der genaue Service-Level der verwendeten DB2-Instanz eindeutig identifiziert. Diese Informationen mssen unbedingt vorliegen, wenn Sie sich an die IBM Untersttzungsfunktion wenden.

Kapitel 4. Tools fr die Fehlerbehebung

35

Fr JDBC- oder SQLJ-Anwendungen: Wenn Sie den IBM DB2-Treiber fr SQLJ und JDBC verwenden, knnen Sie die Version des Treibers ermitteln, indem Sie das Dienstprogramm db2jcc ausfhren.
db2jcc -version IBM DB2 JDBC Driver Architecture 2.3.63

Zugehrige Konzepte: v Neue Funktionen fr Version 9.1: Koexistenz mehrerer DB2-Versionen und -Fixpacks (Linux und UNIX) in Neue Funktionen v Neue Funktionen fr Version 9.1: Koexistenz mehrerer DB2-Versionen und -Fixpacks (Windows) in Neue Funktionen Zugehrige Tasks: v Auflisten von DB2-Produkten, die auf dem System installiert sind (Linux und UNIX) auf Seite 40 Zugehrige Referenzen: v db2level - Show DB2 service level command in Command Reference v db2ls - List installed DB2 products and features command in Command Reference v db2support - Problem analysis and environment collection tool command in Command Reference

Nachahmen von Datenbanken mit db2look


In vielen Fllen ist es von Vorteil, wenn eine Datenbank erstellt werden kann, die die gleiche Struktur wie eine andere Datenbank aufweist. Anstatt neue Anwendungen oder Recoveryplne auf einem Produktionssystem zu testen, ist es beispielsweise sinnvoller, ein Testsystem mit der gleichen Struktur und gleichen Daten zu erstellen und die Tests dort auszufhren. Auf diese Weise wirken sich die negativen Leistungseinflsse der Tests nicht auf das Produktionssystem aus, und es ist auch nicht von einer eventuellen versehentlichen Vernichtung von Daten durch eine fehlerhafte Anwendung betroffen. Auch bei der Untersuchung von Problemen (wie beispielsweise ungltigen Ergebnissen, Leistungsproblemen etc.) ist es unter Umstnden einfacher, die Probleme in einem Testsystem zu beheben, das mit dem Produktionssystem identisch ist. Mit Hilfe des Tools db2look knnen Sie die entsprechenden DDL-Anweisungen extrahieren, die erforderlich sind, um die Datenbankobjekte einer Datenbank in einer anderen Datenbank zu reproduzieren. Mit diesem Tool knnen auch die entsprechenden SQL-Anweisungen generiert werden, die erforderlich sind, um die Statistikdaten aus der einen Datenbank in der anderen zu replizieren, sowie die Anweisungen, die bentigt werden, um die Datenbankkonfiguration, die Datenbankmanagerkonfiguration und die Registrierdatenbankvariablen zu replizieren. Dies ist wichtig, da die neue Datenbank mglicherweise nicht genau die gleiche Datengruppe enthlt wie die ursprngliche Datenbank, Sie aber weiterhin die gleichen Zugriffsplne fr beide Systeme verwenden wollen. Das Tool db2look wird im Handbuch DB2 Command Reference ausfhrlich beschrieben. Sie knnen jedoch eine Liste der Optionen anzeigen, indem Sie das Tool ohne Parameter ausfhren. Detailliertere Informationen zur Verwendung erhalten Sie, wenn Sie die Option -h angeben.

36

Fehlerbehebung

Verwenden von db2look zum Nachahmen der Tabellen in einer Datenbank: Um die DDL fr die Tabellen in der Datenbank zu extrahieren, verwenden Sie die Option -e. Erstellen Sie beispielsweise wie folgt von der Datenbank SAMPLE eine Kopie namens SAMPLE2, in der alle Objekte erstellt werden, die auch in der ersten Datenbank vorhanden sind:
C:\>db2 create database sample2 DB20000I Der Befehl CREATE DATABASE wurde erfolgreich ausgefhrt. C:\>db2look -d sample -e > sample.ddl -- USER ist: -- DLL fr Tabelle(n) wird erstellt -- Automatisches Binden des Pakets ... -- Binden war erfolgreich -- Automatisches Binden des Pakets ... -- Binden war erfolgreich

Anmerkung: Soll die DDL fr die benutzerdefinierten Speicherbereiche, Datenbankpartitionsgruppen und Pufferpools ebenfalls erzeugt werden, fgen Sie im obigen Befehl nach der Markierung -e die Markierung -l hinzu. Die standardmigen Datenbankpartitionsgruppen, Pufferpools und Tabellenbereiche werden nicht extrahiert. Dies liegt daran, dass sie in jeder Datenbank bereits standardmig vorhanden sind. Wenn Sie diese Elemente ebenfalls nachahmen wollen, mssen Sie sie manuell ndern. Rufen Sie die Datei sample.ddl in einem Texteditor auf. Da die DDL in dieser Datei fr die neue Datenbank ausgefhrt werden soll, mssen Sie die Anweisung CONNECT TO SAMPLE in CONNECT TO SAMPLE2 ndern. Wurde die Option -l verwendet, mssen Sie unter Umstnden die Pfade der Tabellenbereichsbefehle so ndern, dass sie ebenfalls auf die entsprechenden Pfade zeigen. Betrachten Sie bei dieser Gelegenheit auch den Rest des Inhalts der Datei. Die Anweisungen CREATE TABLE, ALTER TABLE und CREATE INDEX sollten fr alle Benutzertabellen in der Beispieldatenbank vorhanden sein:
... ------------------------------------------------- DDL-Anweisungen fr Tabelle "DB2"."ORG" -----------------------------------------------CREATE TABLE "DB2"."ORG" ( "DEPTNUMB" SMALLINT NOT NULL , "DEPTNAME" VARCHAR(14) , "MANAGER" SMALLINT , "DIVISION" VARCHAR(10) , "LOCATION" VARCHAR(13) ) IN "USERSPACE1" ; ...

Nachdem Sie die Verbindungsanweisung CONNECT gendert haben, fhren Sie die Anweisungen wie folgt aus:
C:\>db2 -tvf sample.ddl > sample2.out

Werfen Sie einen Blick auf die Ausgabedatei sample2.out - alle Operationen mssen erfolgreich ausgefhrt worden sein. Traten Fehler auf, mssen diese in entsprechenden Fehlernachrichten angegeben sein. Beheben Sie eventuelle Fehler, und fhren Sie die Anweisung anschlieend erneut aus. Wie Sie der Ausgabe entnehmen knnen, wurde die DDL fr alle Benutzertabellen exportiert. Dies ist das Standardverhalten. Es stehen jedoch weitere Optionen zur

Kapitel 4. Tools fr die Fehlerbehebung

37

Verfgung, um genauer anzugeben, welche Tabellen eingeschlossen werden sollen. Um beispielsweise nur die Tabellen STAFF und ORG einzuschlieen, verwenden Sie die Option -t wie folgt:
C:\>db2look -d sample -e -t staff org > staff_org.ddl

Um nur Tabellen mit dem Schema DB2 einzuschlieen, verwenden Sie die Option -z wie folgt:
C:\>db2look -d sample -e -z db2 > db2.ddl

Nachahmen von Statistikdaten fr Tabellen: Soll mit Hilfe der Testdatenbank die Leistung berprft oder ein Leistungsproblem behoben werden, mssen die fr beide Datenbanken generierten Zugriffsplne unbedingt identisch sein. Das Optimierungsprogramm generiert Zugriffsplne auf der Grundlage von Statistikdaten, Konfigurationsparametern, Registrierdatenbankvariablen und Umgebungsvariablen. Sind diese Elemente auf beiden Systemen identisch, trifft dies sehr wahrscheinlich auch auf die Zugriffsplne zu. Wurden in beide Datenbanken genau die gleichen Daten geladen und werden fr beide Datenbanken die gleichen Optionen von RUNSTATS ausgefhrt, sollten die Statistikdaten identisch sein. Enthalten die Datenbanken jedoch unterschiedliche Daten oder wird in der Testdatenbank nur eine Untergruppe von Daten verwendet, weisen die Statistikdaten wahrscheinlich groe Unterschiede auf. In diesem Fall knnen Sie mit Hilfe von db2look die Statistikdaten aus der Produktionsdatenbank zusammenstellen und in die Testdatenbank stellen. Dazu erstellen Sie UPDATEAnweisungen fr die Gruppe SYSSTAT der aktualisierbaren Katalogtabellen sowie RUNSTATS-Befehle fr alle Tabellen. Die Option zum Erstellen der Statistikanweisungen lautet -m. Gehen Sie noch einmal zum Beispiel SAMPLE/SAMPLE2 zurck, stellen Sie die Statistikdaten aus der Datenbank SAMPLE zusammen, und fgen Sie diese der Datenbank SAMPLE2 hinzu:
C:\>db2look -d sample -m > stats.dml -- USER ist: -- db2look wird im Nachahmungsmodus ausgefhrt

Wie zuvor muss in der Ausgabedatei die Anweisung CONNECT TO SAMPLE in CONNECT TO SAMPLE2 gendert werden. Betrachten Sie wiederum auch im Rest der Datei, wie die RUNSTATS- und UPDATE-Anweisungen aussehen:
... -- Tabelle ORG nachahmen RUNSTATS ON TABLE "DB2"."ORG" ; UPDATE SYSSTAT.INDEXES SET NLEAF=-1, NLEVELS=-1, FIRSTKEYCARD=-1, FIRST2KEYCARD=-1, FIRST3KEYCARD=-1, FIRST4KEYCARD=-1, FULLKEYCARD=-1, CLUSTERFACTOR=-1, CLUSTERRATIO=-1, SEQUENTIAL_PAGES=-1, PAGE_FETCH_PAIRS=, DENSITY=-1, AVERAGE_SEQUENCE_GAP=-1, AVERAGE_SEQUENCE_FETCH_GAP=-1, AVERAGE_SEQUENCE_PAGES=-1,

38

Fehlerbehebung

AVERAGE_SEQUENCE_FETCH_PAGES=-1, AVERAGE_RANDOM_PAGES=-1, AVERAGE_RANDOM_FETCH_PAGES=-1, NUMRIDS=-1, NUMRIDS_DELETED=-1, NUM_EMPTY_LEAFS=-1 WHERE TABNAME = ORG AND TABSCHEMA = DB2 ...

hnlich der Option -e, mit der die DDL extrahiert wird, knnen die Optionen -t und -z verwendet werden, um eine Gruppe von Tabellen anzugeben. Extrahieren von Konfigurationsparametern und Umgebungsvariablen: Das Optimierungsprogramm whlt Zugriffsplne auf der Grundlage von Statistikdaten, Konfigurationsparametern, Registrierdatenbankvariablen und Umgebungsvariablen aus. Wie bei den Statistikdaten kann db2look verwendet werden, um die erforderlichen UPDATE- und SET-Anweisungen fr die Konfiguration zu generieren. Hierfr wird die Option -f verwendet. Beispiel:
c:\>db2look -d sample -f>config.txt -- USER ist: DB2INST1 -- Automatisches Binden des Pakets ... -- Binden war erfolgreich -- Automatisches Binden des Pakets ... -- Binden war erfolgreich

Die Ausgabe in der Datei config.txt sieht etwa wie folgt aus:
------Diese CLP-Datei wurde erstellt mit DB2LOOK Version 9.1 Zeitmarke: 2/16/2006 7:15:17 PM Datenbankname: SAMPLE Datenbankmanagerversion: DB2/NT Version 9.1.0 Codepage der Datenbank: 1252 Sortierfolge fr Datenbank lautet: UNIQUE

CONNECT TO SAMPLE; -------------------------------------------------------------- Konfigurationsparameter fr Datenbank und Datenbankmanager ------------------------------------------------------------UPDATE UPDATE UPDATE UPDATE ... ---------------------------------------- Einstellungen der Umgebungsvariablen --------------------------------------COMMIT WORK; CONNECT RESET; DBM DBM DBM DBM CFG CFG CFG CFG USING USING USING USING cpuspeed 2.991513e-007; intra_parallel NO; comm_bandwidth 100.000000; federated NO;

Anmerkung: Es werden nur die Parameter und Variablen eingeschlossen, die sich auf den DB2-Compiler auswirken. Wenn eine Registrierdatenbankvariable, die sich auf den Compiler auswirkt, auf ihren Standardwert gesetzt wird, wird sie unter den Einstellungen der Umgebungsvariablen nicht aufgefhrt.
Kapitel 4. Tools fr die Fehlerbehebung

39

Zugehrige Konzepte: v Statistiken zur Modellierung von Produktionsdatenbanken in Systemverwaltung: Optimierung Zugehrige Referenzen: v db2look - DB2 statistics and DDL extraction tool command in Command Reference

Auflisten von DB2-Produkten, die auf dem System installiert sind (Linux und UNIX)
Die Mglichkeit, mehrere Kopien von DB2-Produkten auf einem einzigen System zu installieren und fr die DB2-Produkte und -Features einen bestimmten Installationspfad anzugeben, fhrt zu einer hheren Flexibilitt, macht jedoch auch ein Tool erforderlich, mit dem sich verfolgen lsst, welche Produkte in welchen Verzeichnissen installiert sind. Unter untersttzten Linux- und UNIX-Betriebssystemen knnen die auf einem System installierten DB2-Produkte und -Features einschlielich der HTML-Dokumentation zu DB2 Version 9 mit dem Befehl db2ls aufgelistet werden. Der Befehl db2ls listet folgende Informationen auf: v Die Verzeichnisse und der DB2-nderungsstand von DB2-Produkten, die auf dem System installiert sind v Alle oder bestimmte DB2-Produkte und -Features in einem bestimmten Installationspfad Voraussetzungen: Es muss mindestens ein DB2 Produkt der Version 9 installiert sein, damit ein symbolischer Link zum Befehl db2ls im Verzeichnis /usr/local/bin verfgbar ist. Einschrnkungen: DB2-Produkte knnen nur mit dem Befehl db2ls abgefragt werden. Sie knnen DB2-Produkte nicht mit systemeigenen Dienstprogrammen von Linux- oder UNIXBetriebssystemen abfragen. Vorhandene Scripts mit einem systemeigenen Installationsdienstprogramm, die Sie als Schnittstelle und Abfragemglichkeit fr DB2Installationen verwenden, mssen entsprechend gendert werden. Der Befehl db2ls kann nicht unter einem Windows-Betriebssystem verwendet werden. Vorgehensweise: Geben Sie Folgendes ein, um die Verzeichnisse und den DB2-nderungsstand von DB2-Produkten, die auf dem System installiert sind, aufzulisten:
db2ls

Dieser Befehl listet folgende Informationen fr die einzelnen, auf dem System installierten DB2-Produkte auf: v Installationspfad v Version v Fixpack

40

Fehlerbehebung

v Installationsdatum mit Angabe zur letzten nderung des DB2-Produkts Informationen zu DB2-Produkten und -Features in einem bestimmten Installationspfad werden bei Angabe des Parameters q aufgelistet:
db2ls -q -b basisinstallationsverzeichnis

Dabei gilt Folgendes: v q gibt an, dass ein Produkt bzw. eine Feature abgefragt wird. Dieser Parameter muss angegeben werden. Wird ein DB2-Produkt von Version 8 abgefragt, wird ein Leerwert zurckgegeben. v b gibt das Installationsverzeichnis fr das Produkt bzw. die Feature an. Dieser Parameter muss angegeben werden, wenn Sie den Befehl nicht im Installationsverzeichnis ausfhren. Je nach Parametern zeigt der Befehl die folgende Angabe an: v Installationspfad. Diese Information wird nur ein Mal angegeben und nicht fr jede einzelne Feature wiederholt. v Die folgenden Angaben werden angezeigt: Die Antwort-ID fr die installierte Feature bzw. bei Angabe der Option p die Antwort-ID fr das installierte Produkt, z. B. ENTERPRISE_SERVER_EDITION Der Name der Feature bzw. bei Angabe der Option p der Name des Produkts Die Version, das Release, die Modifikationsstufe und die Fixpack-Version (VRMF) des Produkts, z. B. 9.1.0.0 Das Fixpack (soweit zutreffend). Ist z. B. Fixpack 1 installiert, wird der Wert 1 angezeigt. Dies schliet vorlufige Fixpacks, z. B. Fixpack 1a, ein. v Stimmt eine der VRMF-Angaben eines Produkts nicht mit den brigen Angaben berein, wird am Ende der ausgegebenen Liste eine entsprechende Warnung angezeigt. In dieser Nachricht wird ein Fixpack empfohlen, das angewendet werden sollte. Zugehrige Konzepte: v Mehrere DB2-Kopien auf demselben Computer (Linux und UNIX) in Installation und Konfiguration Ergnzung Zugehrige Tasks: v Installieren eines DB2-Produkts mit Hilfe des Befehls db2_install oder doce_install (Linux und UNIX) in Installation und Konfiguration Ergnzung v Entfernen der DB2-Produkte mit dem Befehl db2_deinstall bzw. doce_install (Linux und UNIX) in DB2-Server - Einstieg v Verwenden des Assistenten fr die Auswahl der DB2-Standardkopie (Windows) in DB2-Server - Einstieg Zugehrige Referenzen: v db2ls - List installed DB2 products and features command in Command Reference v Mehrere DB2-Kopien - bersicht ber die Informationen in Systemverwaltung: Implementierung

Kapitel 4. Tools fr die Fehlerbehebung

41

berwachung und Fehlerbehebung mit db2pd


Das Tool db2pd ist ein Fehlerbestimmungstool, das kompakte und unmittelbar verfgbare Informationen aus den DB2-Speicherstzen bereitstellt. Das Tool erfasst diese Informationen, ohne Verriegelungen zu verwenden oder Steuerkomponentenressourcen zu nutzen. Es ist daher mglich (und wird erwartet), dass Informationen abgerufen werden, die sich whrend des Erfassens von Informationen durch db2pd ndern; deshalb sind die Daten unter Umstnden nicht vollkommen exakt. Wenn genderte Speicherzeiger festgestellt werden, wird eine Signalroutine verwendet, um zu verhindern, dass db2pd abnormal beendet wird. Dies kann dazu fhren, dass Nachrichten wie Changing data structure forced command termination (Befehl aufgrund genderter Datenstruktur beendet) in der Ausgabe enthalten sind. Dennoch kann das Tool fr die Fehlerbestimmung ntzlich sein. Zu den Vorteilen beim Erfassen von Informationen ohne Verriegelung gehren beispielsweise das schnellere Abrufen und das Vermeiden von Konkurrenzsituationen bei Steuerkomponentenressourcen. Wenn Sie Informationen zum Datenbankverwaltungssystem erfassen wollen, wenn ein bestimmter SQLCODE, ZRC-Code oder ECF-Code auftritt, knnen Sie dies mit Hilfe des Befehls db2pdcfg -catch bewerkstelligen. Wenn die Fehler erfasst werden, wird das Script db2cos (Aufrufscript) gestartet. Die Datei db2cos kann dynamisch so gendert werden, dass ein beliebiger db2pd-Befehl, Betriebssystembefehl oder ein anderer, zur Problemlsung erforderlicher Befehl ausgefhrt werden kann. Die db2cos-Schablonendatei befindet sich im Verzeichnis sqllib/bin unter UNIX und Linux. Unter Windows befindet sich db2cos im Verzeichnis $DB2PATH\bin. Es folgt eine Reihe von Beispielen, in denen db2pd zur Beschleunigung der Fehlerbestimmung eingesetzt werden knnte. Szenario 1: Abfangen einer Zeitlimitberschreitung bei Sperren mit Hilfe der Option db2pdcfg -catch Definieren Sie die Einstellung fr das Abfangen des Fehlers. Sie knnen -911,68 -911 oder locktimeout verwenden. Wenn Sie den Sperrtyp oder den Namen der Sperre im Voraus kennen, knnen Sie die Unteroption locktype bzw. lockname verwenden, um unerwnschtes Abfangen von Sperren herauszufiltern.
db2pdcfg -catch locktimeout count=1 Error Catch #1 Sqlcode: 0 ReasonCode: 0 ZRC: -2146435004 ECF: 0 Component ID: 0 LockName: Not Set LockType: Not Set Current Count: 0 Max Count: 1 Bitmap: 0x4A1 Action: Error code catch flag enabled Action: Execute sqllib/db2cos callout script Action: Produce stack trace in db2diag.log

Reproduzieren Sie eine Zeitlimitberschreitung bei einer Sperre. Beispiel:


SQL0911N Die aktuelle Transaktion wurde rckgngig gemacht. Ursache: Deadlock oder Zeitberschreitung. Ursachencode "68". SQLSTATE=40001

42

Fehlerbehebung

Eine entsprechende Nachricht wird in der Datei db2diag.log angezeigt:


2006-02-17-01.28.41.803000-300 I22649H285 LEVEL: Event PID : 940 TID : 3136 PROC : db2syscs.exe INSTANCE: DB2 NODE : 000 FUNCTION: DB2 UDB, RAS/PD component, pdErrorCatch, probe:30 START : Error catch set for ZRC -2146435004 ... 2006-02-17-01.40.04.091000-300 I23330H389 LEVEL: Event PID : 940 TID : 2136 PROC : db2syscs.exe INSTANCE: DB2 NODE : 000 DB : SAMPLE APPHDL : 0-251 APPID: *LOCAL.DB2.060217064002 FUNCTION: DB2 UDB, lock manager, sqlplnfd, probe:999 DATA #1 : preformatted Caught rc -2146435004. Dumping stack trace. 2006-02-17-01.40.04.106000-300 I23721H416 LEVEL: Event PID : 940 TID : 2136 PROC : db2syscs.exe INSTANCE: DB2 NODE : 000 DB : SAMPLE APPHDL : 0-251 APPID: *LOCAL.DB2.060217064002 FUNCTION: DB2 UDB, trace services, pdInvokeCalloutScript, probe:10 START : Invoking C:\PROGRA~1\IBM\SQLLIB\bin\db2cos.bat from lock manager sqlplnfd ... 2006-02-17-01.40.07.715000-300 I25489H399 LEVEL: Event PID : 940 TID : 2136 PROC : db2syscs.exe INSTANCE: DB2 NODE : 000 DB : SAMPLE APPHDL : 0-251 APPID: *LOCAL.DB2.060217064002 FUNCTION: DB2 UDB, trace services, pdInvokeCalloutScript, probe:20 STOP : Completed invoking C:\PROGRA~1\IBM\SQLLIB\bin\db2cos.bat

Suchen Sie die db2cos-Ausgabedateien. Die Speicherposition der Dateien wird vom Konfigurationsparameter DIAGPATH des Datenbankmanagers gesteuert. Der Inhalt der Ausgabedateien ist unterschiedlich und hngt davon ab, welche Befehle Sie in die Datei db2cos eingeben. Es folgt ein Beispiel fr die bereitgestellte Ausgabe, wenn die Datei db2cos den Befehl db2pd -db sample -locks enthlt:
Lock Timeout Caught Thu Feb 17 01:40:04 EST 2006 Instance DB2 Datbase: SAMPLE Partition Number: 0 PID: 940 TID: 2136 Function: sqlplnfd Component: lock manager Probe: 999 Timestamp: 2006-02-17-01.40.04.106000 AppID: *LOCAL.DB2... AppHdl: <snip> Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:06:53 Locks: Address TranHdl Lockname Type Mode Sts Owner Dur HldCnt Att Rlse 0x402C6B30 3 00020003000000040000000052 Row ..X W* 3 1 0 0 0x40

Suchen Sie nach W*; dies gibt die Sperre an, bei der die Zeitlimitberschreitung auftrat. Sie knnen diese einer Transaktion, einer Anwendung, einem Agenten und sogar einer SQL-Anweisung mit der gesamten vom Befehl db2pd bereitgestellten Ausgabe zuordnen. Sie knnen die Ausgabe einschrnken oder andere Befehle verwenden, um die gewnschten Informationen zu erfassen. So knnen Sie beispielsweise die Optionen des Befehls db2pd ndern und die Option -locks wait verwenKapitel 4. Tools fr die Fehlerbehebung

43

den, mit der nur die Sperren mit Wartestatus ausgegeben werden. Darber hinaus knnen Sie bei Bedarf die Optionen -app und -agent angeben. Szenario 2: Zuordnung einer Anwendung zu einer dynamischen SQL-Anweisung Der Befehl db2pd -applications listet die aktuelle und letzte Anker-ID sowie die eindeutige Anweisungs-ID fr dynamische SQL-Anweisungen auf. Dies ermglicht eine direkte Zuordnung von einer Anwendung zu einer dynamischen SQL-Anweisung.
db2pd -app -dyn Applications: Address AppHandl [nod-index] NumAgents 0x00000002006D2120 780 [000-00780] 1 CoorPid Status 10615 UOW-Executing

C-AnchID C-StmtUID L-AnchID L-StmtUID Appid 163 1 110 1 *LOCAL.jmcmahon.050202200412 Dynamic SQL Statements: Address AnchID StmtUID NumEnv NumVar NumRef NumExe Text 0x0000000220A02760 163 1 2 2 2 1 CREATE VIEW MYVIEW 0x0000000220A0B460 110 1 2 2 2 1 CREATE VIEW YOURVIEW

Szenario 3: berwachung der Speicherbelegung Der Befehl db2pd -memblock kann Ihnen dabei helfen, sich einen berblick ber die Speicherbelegung zu verschaffen. Beispiel:
All memory blocks in DBMS set. Address 0x0780000000740068 0x0780000000725688 0x07800000001F4348 0x07800000001B5608 0x07800000001A0068 0x07800000001A00E8 0x07800000001A0208 0x07800000001A0288 0x0780000000700068 0x07800000007001E8 0x0780000000700248 ... PoolID 62 62 57 57 57 57 57 57 70 70 70 PoolName resynch resynch ostrack ostrack ostrack ostrack ostrack ostrack apmh apmh apmh BlockAge 2 1 6 5 1 2 3 4 1 2 3 Size(Bytes) 112 108864 5160048 240048 80 240 80 80 360 48 32 I 1 1 1 1 1 1 1 1 1 1 1 LOC 1746 127 3047 3034 2970 2983 2999 3009 1024 914 1000 File 1583816485 1599127346 698130716 698130716 698130716 698130716 698130716 698130716 3878879032 1937674139 1937674139

Anschlieend folgt die sortierte Ausgabe pro Pool:


Memory blocks sorted by size for ostrack pool: PoolID PoolName TotalSize(Bytes) TotalCount 57 ostrack 5160048 1 57 ostrack 240048 1 57 ostrack 240 1 57 ostrack 80 1 57 ostrack 80 1 57 ostrack 80 1 Total size for ostrack pool: 5400576 bytes Memory blocks sorted PoolID PoolName 70 apmh 70 apmh 70 apmh 70 apmh 70 apmh 70 apmh 70 apmh by size for apmh pool: TotalSize(Bytes) TotalCount 40200 2 10016 1 6096 2 2516 1 496 1 360 1 176 1 LOC 3047 3034 2983 2999 2970 3009 File 698130716 698130716 698130716 698130716 698130716 698130716

LOC 121 308 4014 294 2192 1024 1608

File 2986298236 1586829889 1312473490 1586829889 1953793439 3878879032 1953793439

44

Fehlerbehebung

70 70 70 Total size ...

apmh 152 apmh 48 apmh 32 for apmh pool: 60092 bytes

1 1 1

2623 914 1000

1583816485 1937674139 1937674139

Im letzten Abschnitt der Ausgabe werden die Speicherkonsumenten fr die gesamte Gruppe sortiert:
All memory PoolID 57 50 50 57 50 62 72 69 50 70 69 50 50 52 50 ... consumers PoolName ostrack sqlch sqlch ostrack sqlch resynch eduah krcbh sqlch apmh krcbh sqlch sqlch kerh sqlch in DBMS memory set: TotalSize(Bytes) 5160048 778496 271784 240048 144464 108864 108048 73640 43752 40200 32992 31000 25456 15376 14697 %Bytes 71.90 10.85 3.79 3.34 2.01 1.52 1.51 1.03 0.61 0.56 0.46 0.43 0.35 0.21 0.20 TotalCount 1 1 1 1 1 1 1 5 1 2 1 31 31 1 1 %Count 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.36 0.07 0.14 0.07 2.20 2.20 0.07 0.07 LOC 3047 202 260 3034 217 127 174 547 274 121 838 633 930 157 345 File 698130716 2576467555 2576467555 698130716 2576467555 1599127346 4210081592 4210081592 2576467555 2986298236 698130716 3966224537 3966224537 1193352763 2576467555

Sie knnen Hauptspeicherblcke auch fr privaten Speicher unter UNIX und Linux auflisten. Beispiel:
db2pd -memb pid=159770 All memory blocks in Private set. Address PoolID 0x0000000110469068 88 0x0000000110469A48 88 0x000000011046A0A8 88 0x000000011046B408 88 0x000000011046D0C8 88 0x000000011046D108 88 0x000000011046EB68 88 0x000000011046EC28 88 0x000000011046EC68 88 0x000000011046EE28 88 0x000000011046F288 88 0x0000000110470028 88 0x00000001104700A8 88 0x00000001104702A8 88 0x0000000110499FA8 88 Total set size: 94847 bytes PoolName private private private private private private private private private private private private private private private BlockAge 1 2 3 4 5 6 7 8 9 10 11 12 13 14 80 Size(Bytes) 2488 1608 4928 7336 32 6728 168 24 408 1072 3464 80 480 480 65551 I 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 LOC 172 172 172 172 172 172 172 172 172 172 172 172 1534 1939 1779 File 4283993058 4283993058 4283993058 4283993058 4283993058 4283993058 4283993058 4283993058 4283993058 4283993058 4283993058 4283993058 862348285 862348285 4231792244

Memory blocks sorted by size: PoolID PoolName TotalSize(Bytes) 88 private 65551 88 private 28336 88 private 480 88 private 480 Total set size: 94847 bytes

TotalCount 1 12 1 1

LOC 1779 172 1939 1534

File 4231792244 4283993058 862348285 862348285

Szenario 4: Ermitteln, welche Anwendung den Tabellenbereich belegt Mit db2pd -tcbstats knnen Sie die Anzahl der Einfgungen (Inserts) fr eine Tabelle ermitteln. Es folgen Beispielinformationen zu einer expliziten temporren Tabelle namens TEMP1:
Kapitel 4. Tools fr die Fehlerbehebung

45

TCB Table Information: Address TbspaceID TableID PartID MasterTbs MasterTab TableName SchemaNm ObjClass DataSize LfSize LobSize XMLSize 0x0780000020B62AB0 3 2 n/a 3 2 TEMP1 SESSION Temp 966 0 0 0 TCB Table Stats: Address TableName Inserts Updates Deletes 0x0780000020B62AB0 TEMP1 43968 0 0 Scans UDI PgReorgs OvFlReads OvFlCrtes 0 0 0 0 0 NoChgUpdts 0 Reads 0 FscrUpdates 0

Sie knnen anschlieend die Informationen zu Tabellenbereich 3 mit Hilfe des Befehls db2pd -tablespaces abrufen. Die Beispielausgabe sieht wie folgt aus:
Tablespace 3 Configuration: Address Type Content PageSz ExtentSz Auto Prefetch BufID BufIDDisk FSC NumCntrs MaxStripe LastConsecPg Name 0x0780000020B1B5A0 DMS UsrTmp 4096 32 Yes 32 1 1 On 1 0 31 TEMPSPACE2 Tablespace 3 Statistics: Address TotalPgs UsablePgs UsedPgs State MinRecTime NQuiescers 0x0780000020B1B5A0 5000 4960 1088 0x00000000 0 0 Tablespace 3 Autoresize Statistics: Address AS AR InitSize IncSize 0x0780000020B1B5A0 No No 0 0 Containers: Address ContainNum Type 0x0780000020B1DCC0 0 File TotalPgs 5000 PndFreePgs FreePgs 0 IIP MaxSize No 0 3872 HWM 1088

LastResize LRF None No

UseablePgs StripeSet Container 4960 0 /home/db2inst1 /tempspace2a

Durch Vergleich der Tabelle UsablePgs mit dem Wert fr TotalPages lsst sich feststellen, dass der Speicherbereich aufgefllt wird. Auf der Basis dieser Informationen knnen Sie die dynamische SQL-Anweisung identifizieren, die die Tabelle TEMP1 verwendet.
db2pd -db sample -dyn Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:13:06 Dynamic Cache: Current Memory Used Total Heap Size Cache Overflow Flag Number of References Number of Statement Inserts Number of Statement Deletes Number of Variation Inserts Number of Statements 1022197 1271398 0 237 32 13 21 19

Dynamic SQL Statements: Address AnchID StmtUID NumEnv NumVar NumRef NumExe Text 0x0000000220A08C40 78 1 2 2 3 2 declare global temporary table temp1 (c1 char(6)) not logged 0x0000000220A8D960 253 1 1 1 24 24 insert into session.temp1 values(TEST)

Schlielich knnen Sie dieses Ergebnis einer mit db2pd -app erstellten Ausgabe zuordnen, um die Anwendung zu identifizieren.

46

Fehlerbehebung

Applications: Address AppHandl [nod-index] NumAgents 0x0000000200661840 501 [000-00501] 1

CoorPid Status 11246 UOW-Waiting

C-AnchID C-StmtUID L-AnchID L-StmtUID Appid 0 0 253 1 *LOCAL.db2inst1.050202160426

Die Ausgabe von db2pd -agent zeigt die Anzahl der geschriebenen Zeilen zur Besttigung.
Address AppHandl [nod-index] AgentPid 0x0000000200698080 501 [000-00501] 11246 State ClientPid Inst-Active 26377 Userid ClientNm Rowsread db2inst1 db2bp 22 Priority 0 Rowswrtn 9588 Type DBName Coord SAMPLE LkTmOt NotSet

Die Schritte sind geringfgig anders, wenn Sie vermuten, dass eine implizite temporre Tabelle den Tabellenbereich auffllt. Sie wrden weiterhin den Befehl db2pd -tcbstats verwenden, um die Tabellen mit einer groen Anzahl an Einfgungen (Inserts) zu ermitteln. Es folgen Beispielinformationen zu einer impliziten temporren Tabelle:
TCB Table Information: Address TbspaceID TableID SchemaNm ObjClass DataSize ... 0x0780000020CC0D30 1 2 <JMC Temp 2470 ... 0x0780000020CC14B0 1 3 <JMC Temp 2367 ... 0x0780000020CC21B0 1 4 <JMC Temp 1872 ... TCB Table Stats: Address TableName Inserts ... 0x0780000020CC0D30 TEMP(00001,00002) 0x0780000020CC14B0 TEMP(00001,00003) 0x0780000020CC21B0 TEMP(00001,00004) PartID MasterTbs MasterTab TableName n/a n/a n/a 1 1 1 2 3 4 PgReorgs 0 0 0 TEMP (00001,00002) <30> TEMP (00001,00003) <31> TEMP (00001,00004) <30> NoChgUpdts Reads 0 0 0 0 0 0 FscrUpdates 0 0 0 43219 ... 42485 ... 0 ...

Scans UDI 0 0 0 0 0 0

In diesem Beispiel liegt eine groe Anzahl an Einfgungen in Tabellen mit der Namenskonvention TEMP (Tabellenbereichs-ID, Tabellen-ID) vor. Hierbei handelt es sich um implizite temporre Tabellen. Die Werte in der Spalte SchemaNm fr den Schemanamen folgen der Namenskonvention <Anwendungskennung><Schemaname>, sodass es mglich ist, die Anwendung zu identifizieren, die die Verarbeitung durchfhrt. Anschlieend knnen Sie diese Informationen der mit db2pd -tablespaces generierten Ausgabe zuordnen, um den verwendeten Speicherplatz fr Tabellenbereich 1 zu ermitteln. Beachten Sie den Wert in Spalte UsedPgs (verwendete Seiten) im Zusammenhang mit dem Wert in Spalte UsablePgs (verwendbare Seiten) in den Tabellenbereichsstatistiken.
Tablespace Configuration: Address Id Type Content PageSz ExtentSz Auto Prefetch BufID BufIDDisk FSC NumCntrs MaxStripe LastConsecPg Name 0x07800000203FB5A0 1 SMS SysTmp 4096 32 Yes 320 1 1 On 10 0 31 TEMPSPACE1 Tablespace Statistics: Address Id TotalPgs UsablePgs UsedPgs PndFreePgs FreePgs State MinRecTime NQuiescers 0x07800000203FB5A0 1 6516 6516 6516 0 0 0x00000000 0 0 Tablespace Autoresize Statistics: Address Id AS AR InitSize IncSize IIP MaxSize LastResize
Kapitel 4. Tools fr die Fehlerbehebung

HWM 0 LRF

47

0x07800000203FB5A0 1 Containers: ...

No

No

No

None

No

Anschlieend knnen Sie mit Hilfe des Befehls db2pd -app die Anwendungskennungen 30 und 31 identifizieren (da diese in der von -tcbstats generierten Ausgabe enthalten waren):
Applications: Address AppHandl [nod-index] NumAgents CoorPid Status C-StmtUID L-AnchID L-StmtUID Appid 0x07800000006FB880 31 [000-00031] 1 4784182 UOW-Waiting 0 107 1 *LOCAL.db2inst1.051215214142 0x07800000006F9CE0 30 [000-00030] 1 8966270 UOW-Executing 1 107 1 *LOCAL.db2inst1.051215214013 C-AnchID 0 107

Ordnen Sie abschlieend diese Angaben mit Hilfe des Befehls db2pd -dyn den dynamischen SQL-Anweisungen zu:
Dynamic SQL Statements: Address AnchID StmtUID NumEnv NumVar NumRef NumExe Text 0x0780000020B296C0 107 1 1 1 43 select c1, c2 from test group by c1,c2

43

Szenario 5: berwachung der Recovery Mit dem Befehl db2pd -recovery werden mehrere Zhler angezeigt, mit denen Sie den Fortschritt der Recovery berprfen knnen. Current Log (aktuelles Protokoll) und Current LSN (aktuelle Protokollfolgenummer) geben die Protokollposition an. Mit CompletedWork (abgeschlossene Arbeit) wird die Menge der abgeschlossenen Arbeit in Byte angegeben.
Recovery: Recovery Status Current Log Current LSN Job Type Job ID Job Start Time Job Description Invoker Type Total Phases Current Phase 0x00000401 S0000005.LOG 000002551BEA ROLLFORWARD RECOVERY 7 (1107380474) Wed Feb 2 16:41:14 2005 Database Rollforward Recovery User 2 1

Progress: Address PhaseNum Description StartTime CompletedWork TotalWork 0x0000000200667160 1 Forward Wed Feb 2 16:41:14 2005 2268098 bytes Unknown 0x0000000200667258 2 Backward NotStarted 0 bytes Unknown

Szenario 6: Ermitteln der von einer Transaktion verwendeten Ressourcenmenge Der Befehl db2pd -transactions liefert die Anzahl der Sperren, die erste Protokollfolgenummer, die letzte Protokollfolgenummer, den verwendeten Speicherbereich sowie den reservierten Speicherplatz. Diese Informationen knnen fr die Analyse des Verhaltens einer Transaktion von Nutzen sein.
Transactions: Address 0x000000022026D980 0x000000022026E600 0x000000022026F280 AppHandl 797 806 807 [nod-index] [000-00797] [000-00806] [000-00807] TranHdl 2 3 4 Locks 108 157 90 State WRITE WRITE WRITE Tflag 0x00000000 0x00000000 0x00000000

Tflag2 Firstlsn Lastlsn LogSpace 0x00000000 0x000001072262 0x0000010B2C8C 4518

SpaceReserved 95450

48

Fehlerbehebung

0x00000000 0x000001057574 0x0000010B3340 6576 0x00000000 0x00000107CF0C 0x0000010B2FDE 3762 TID 0x000000000451 0x0000000003E0 0x000000000472 AxRegCnt 1 1 1 GXID 0 0 0

139670 79266

Szenario 7: berwachung der Protokollbelegung Mit dem Befehl db2pd -logs kann die Protokollbelegung fr eine Datenbank berwacht werden. Indem Sie die Ausgabe fr Pages Written (geschriebene Seiten) berwachen, knnen Sie den Fortschritt der Protokollbelegung feststellen.
Logs: Current Log Number 2 Pages Written 846 Method 1 Archive Status Success Method 1 Next Log to Archive 2 Method 1 First Failure n/a Method 2 Archive Status Success Method 2 Next Log to Archive 2 Method 2 First Failure n/a Address 0x000000023001BF58 0x000000023001BE98 0x0000000230008F58 StartLSN 0x000001B58000 0x000001F40000 0x000002328000 State 0x00000000 0x00000000 0x00000000 Size Pages 1000 1000 1000 1000 1000 1000 Filename S0000002.LOG S0000003.LOG S0000004.LOG

Anhand dieser Ausgabe knnen zwei Fehler identifiziert werden: 1. Wenn bei der Archivierung ein Fehler vorliegt, wird fr Archive Status (Archivierungsstatus) der Wert Failure (Fehler) angegeben, d. h., die zuletzt ausgefhrte Protokollarchivierung schlug fehl. Liegt hingegen ein permanenter Archivierungsfehler vor, der verhindert, dass Protokolle berhaupt archiviert werden, wird First Failure (erstes Auftreten eines Fehlers) angegeben. 2. Wenn die Protokollarchivierung sehr langsam abluft, liegt der Wert fr Next Log to Archive (nchstes zu archivierendes Protokoll) unter dem Wert fr Current Log Number (aktuelle Protokollnummer). Dies kann dazu fhren, dass der Protokollpfad voll wird; dies wiederum kann bewirken, dass in der Datenbank keine Daten gendert werden, wenn der Protokollpfad voll ist. Szenario 8: Anzeigen der Sysplex-Liste Abgesehen von der Verwendung des Befehls db2pd -sysplex ist die einzige Mglichkeit, die Sysplex-Liste zu dokumentieren, ein DB2-Trace.
Sysplex List: Alias: HOST Location Name: HOST1 Count: 1 IP Address 1.2.34.56 Port 400 Priority 1 Connections Status 0 0 PRDID

Szenario 9: Generieren von Stack-Traces Mit dem Befehl db2pd -stack all knnen Sie Stack-Traces fr das Datenbanksystem erstellen. Wenn Sie vermuten, dass bei einem Prozess oder Thread eine Schleife oder Blockierung vorliegt, knnen Sie diesen Befehl iterativ verwenden.

Kapitel 4. Tools fr die Fehlerbehebung

49

Sie knnen den aktuellen Aufrufstack fr einen bestimmten Prozess ermitteln, indem Sie den Befehl db2pd -stack <pid> absetzen. Beispiel:
db2pd -stack 1335470 Attempting to dump stack trace for pid 1335470. See current DIAGPATH for trapfile.

Um die Aufrufstacks fr alle DB2-Prozesse abzurufen, verwenden Sie den Befehl db2pd -stack all. Beispiel:
db2pd -stack all Attempting to dump all stack traces for instance. See current DIAGPATH for trapfiles.

Wenn Sie eine Umgebung mit mehreren Partitionen und mehreren physischen Knoten verwenden, knnen Sie die Informationen von allen Partitionen mit dem folgenden Befehl abrufen: db2_all ; db2pd -stack all. Wenn es sich jedoch bei allen diesen Partitionen um logische Partitionen auf derselben Maschine handelt, ist die folgende Methode schneller: db2pd -alldbp -stacks. Zugehrige Referenzen: v db2pd - Monitor and troubleshoot DB2 database command in Command Reference

Erfassen von Informationen zur Umgebung mit db2support


Das wichtigste DB2-Dienstprogramm, das Sie bei der Erfassung von Informationen zu einem DB2-Problem bzw. -Fehler ausfhren mssen, ist db2support. Das Dienstprogramm db2support ist so konzipiert, dass es automatisch alle verfgbaren DB2- und Systemdiagnoseinformationen erfasst. Darber hinaus bietet es eine optionale interaktive Frage-und-Antwort-Sitzung, in der Fragen zu den jeweiligen Umstnden des aufgetretenen Problems gestellt werden. Durch die Verwendung des Dienstprogramms db2support knnen mgliche Benutzerfehler vermieden werden, da Befehle wie beispielsweise GET DATABASE CONFIGURATION FOR <datenbankname> oder LIST TABLESPACES SHOW DETAIL nicht manuell eingegeben werden mssen. Darber hinaus nimmt das Erfassen von Daten weniger Zeit in Anspruch, da keine speziellen Anweisungen bezglich der auszufhrenden Befehle und der zu sammelnden Dateien erforderlich sind. Anmerkung: db2support sollte von einem Benutzer mit SYSADM-Berechtigung ausgefhrt werden, wie beispielsweise einem Instanzeigner, sodass das Dienstprogramm alle erforderlichen Informationen erfassen kann, ohne dass Fehler auftreten. Wenn db2support von einem Benutzer ohne die Berechtigung SYSADM ausgefhrt wird, knnen SQL-Fehler (z. B. SQL1092N) auftreten, wenn dass Dienstprogramm Befehle wie beispielsweise QUERY CLIENT oder LIST ACTIVE DATABASES ausfhrt. Wenn Sie das Dienstprogramm db2support verwenden, um der IBM Untersttzungsfunktion Informationen zu bermitteln, fhren Sie den Befehl db2support aus, whrend auf dem System der betreffende Fehler auftritt. Auf diese Weise erfasst das Tool zeitnahe Informationen wie beispielsweise Daten zur Leistung des Betriebssystems. Wenn es nicht mglich ist, das Dienstprogramm zum Zeitpunkt

50

Fehlerbehebung

des Fehlers auszufhren, knnen Sie den Befehl db2support auch nach Auftreten des Fehlers absetzen, da einige FFDC-Diagnosedateien (FFDC = First Failure Data Capture, Erfassung von Fehlerdaten beim ersten Auftreten) automatisch generiert werden. Mit db2support -h knnen Sie die vollstndige Liste der Befehlsoptionen aufrufen. Der nachstehende Basisaufruf ist normalerweise ausreichend, um einen Groteil der Informationen zu erfassen, die fr die Fehlerbehebung bentigt werden. (Bitte beachten Sie: Wenn die Option -c verwendet wird, stellt das Dienstprogramm eine Verbindung zur Datenbank her).
db2support <ausgabepfad> -d <datenbankname> -c

Die so erfasste Ausgabe wird benutzerfreundlich in einem komprimierten Archiv (ZIP), db2support.zip, gespeichert und kann so an ein beliebiges System bertraten und dort extrahiert werden. Die Art der von db2support erfassten Informationen hngt davon ab, mit welchen Optionen der Befehl aufgerufen wird, ob der Datenbankmanager gestartet ist oder nicht und ob eine Verbindung zur Datenbank hergestellt werden kann. Das Dienstprogramm db2support erfasst in allen Fllen die folgenden Informationen: v db2diag.log v Alle Trapdateien v Sperrenlistendateien v Speicherauszugsdateien v Verschiedene systembezogene Dateien v Ausgabe von verschiedenen Systembefehlen v db2cli.ini In Abhngigkeit von den jeweiligen Bedingungen erfasst das Dienstprogramm db2support mglicherweise auch die folgenden Informationen: v Aktive Protokolldateien v Steuerdateien fr Pufferpools und Tabellenbereiche (SQLSPCS.1 und SQLSPCS.2) (mit Option -d) v Inhalt des db2dump-Verzeichnisses v Kerndateien (Option -a fr alle Kerndateien, Option -r nur fr die neueste Kerndatei) v Erweiterte Systeminformationen (mit Option -s) v Datenbankkonfigurationseinstellungen (mit Option -d) v Konfigurationseinstellungsdateien des Datenbankmanagers v Datei mit Protokolldateikopfdaten (mit Option -d) v Datei des Recoveryprotokolls (mit Option -d) Der HTML-Bericht db2support.html enthlt stets die folgenden Informationen: v PMR-Nummer (PMR - Problem Management Record) (bei Angabe von -n) v Betriebssystem und Version (beispielsweise AIX 5.1) v DB2-Release-Informationen v Angabe des Umgebungstyps (32-Bit- oder 64-Bit-Umgebung) v DB2-Installationspfadinformation
Kapitel 4. Tools fr die Fehlerbehebung

51

v v v v v v v v v v v v v v

Inhalt der Datei db2nodes.cfg Anzahl der CPUs und Platten sowie Menge des Speicherplatzes Liste der Datenbanken in der Instanz Registrierdatenbankinformationen und Umgebung, einschlielich PATH und LIBPATH Freier Plattenspeicherplatz fr aktuelles Dateisystem und I-Nodes fr UNIX Java SDK-Version Datenbankmanagerkonfiguration Auflistung der Datei des Recoveryprotokolls fr die Datenbank Ausgabe von ls -lR (oder Windows-quivalent) des Verzeichnisses sqllib Ergebnis des Befehls LIST NODE DIRECTORY Ergebnis des Befehls LIST ADMIN NODE DIRECTORY Ergebnis des Befehls LIST DCS DIRECTORY Ergebnis des Befehls LIST DCS APPLICATIONS EXTENDED Liste der gesamten installierten Software

Die folgenden Informationen werden in der Datei db2support.html aufgezeichnet, wenn die Option -s angegeben wird: v Ausfhrliche Datentrgerinformationen (Partitionsaufbau, Typ, LVM-Informationen etc.) v Ausfhrliche Netzwerkinformationen v Kernelstatistikdaten v Firmwareversionen v Sonstige fr das Betriebssystem spezifische Befehle Wenn DB2 gestartet ist, enthlt die Datei db2support.html die folgenden zustzlichen Informationen: v Clientverbindungsstatus v Datenbank- und Datenbankmanagerkonfiguration (fr die Datenbankkonfiguration ist die Option -d erforderlich) v CLI-Konfiguration v Informationen zum Hauptspeicherpool (Gre und Belegung). Bei Verwendung der Option -d werden smtliche Daten erfasst. v Ergebnis des Befehls LIST ACTIVE DATABASES v Ergebnis des Befehls LIST DCS APPLICATIONS Wenn die Option -c angegeben ist und eine Verbindung zur Datenbank erfolgreich hergestellt werden konnte, enthlt die Datei db2support.html die folgenden Informationen: v Anzahl der Benutzertabellen v v v v v v v v Ungefhre Gre der Datenbankdaten Momentaufnahme der Datenbank Momentaufnahme der Anwendung Pufferpoolinformationen Ergebnis Ergebnis Ergebnis Ergebnis des des des des Befehls Befehls Befehls Befehls LIST APPLICATIONS LIST COMMAND OPTIONS LIST DATABASE DIRECTORY LIST INDOUBT TRANSACTIONS

52

Fehlerbehebung

v v v v v v v

Ergebnis Ergebnis Ergebnis Ergebnis Ergebnis Ergebnis Ergebnis

des des des des des des des

Befehls Befehls Befehls Befehls Befehls Befehls Befehls

LIST LIST LIST LIST LIST LIST LIST

DATABASE PARTITION GROUPS DBPARTITIONNUMS ODBC DATA SOURCES PACKAGES/TABLES TABLESPACE CONTAINERS TABLESPACES DRDA IN DOUBT TRANSACTIONS

Zugehrige Referenzen: v db2support - Problem analysis and environment collection tool command in Command Reference

Traces Grundlegende Tracediagnose


Wenn bei DB2 ein wiederholt auftretendes und reproduzierbares Problem vorkommt, knnen mit einem Trace bisweilen zustzliche Informationen zu diesem Problem erfasst werden. Unter normalen Umstnden sollten Sie ein Trace nur dann verwenden, wenn Sie von der DB2-Kundenuntersttzung dazu aufgefordert werden. Der Prozess der Durchfhrung eines Traces umfasst das Einstellen der Tracefunktion, das erneute Produzieren des Fehlers und das Sammeln der Daten. Die vom Trace erfassten Informationsmengen wachsen sehr schnell. Wenn Sie den Trace durchfhren, erfassen Sie nur die Fehlersituation und vermeiden Sie mglichst alle anderen Aktivitten. Verwenden Sie dabei das kleinstmgliche Szenario, um den Fehler zu reproduzieren. Die Durchfhrung von Traces hat hufig allgemeine Auswirkungen auf das Verhalten einer DB2-Instanz. Der Grad der Leistungsverschlechterung hngt vom Problemtyp sowie der Anzahl der Ressourcen ab, die zum Zusammenstellen der Trace-Informationen verwendet werden. Wenn Traces erforderlich sind, erhalten Sie von der DB2-Kundenuntersttzung in der Regel die folgenden Informationen: v Erluterungen zu einfachen, schrittweise auszufhrenden Prozeduren v Eine Erluterung zur jeweiligen Position, an der die einzelnen Traces erstellt werden sollen v Eine Erluterung zum Gegenstand der Traces v Eine Erluterung zum Zweck der angeforderten Traces v Erluterungen zu Rcksetzungsverfahren (z. B. zum Inaktivieren aller Traces) Sie erhalten von der DB2-Kundenuntersttzung zwar Informationen dazu, welche Traces erstellt werden sollen; dennoch werden nachfolgend einige zustzliche allgemeine Richtlinien dazu aufgefhrt, wann bestimmte Traces zu erstellen sind: v Wenn der Fehler whrend der Installation auftritt und die Standardinstallationsprotokolle nicht ausreichen, um die Fehlerursache zu ermitteln, sollten Installationstraces erstellt werden. v Wenn der Fehler in einem der GUI-Tools (GUI = Graphical User Interface, grafische Benutzerschnittstelle) auftritt, dieselben Aktionen jedoch bei der Ausfhrung ber explizite Befehle im DB2-Befehlsfenster erfolgreich sind, sollte ein
Kapitel 4. Tools fr die Fehlerbehebung

53

v v v v

Trace der Steuerzentrale erstellt werden. Bitte beachten Sie, dass hierdurch nur Fehler bei den Tools erfasst werden, die ber die Steuerzentrale gestartet werden knnen. Wenn der Fehler in einer CLI-Anwendung auftritt und nicht auerhalb der Anwendung reproduziert werden kann, sollte ein CLI-Trace erstellt werden. Wenn der Fehler in einer JDBC-Anwendung auftritt und nicht auerhalb der Anwendung reproduziert werden kann, sollte ein JDBC-Trace erstellt werden. Wenn sich der Fehler unmittelbar auf Informationen bezieht, die auf DRDAEbene bertragen werden, sollte ein DRDA-Trace erstellt werden. In allen anderen Situationen, in denen ein Trace durchfhrbar ist, ist ein DB2Trace in der Regel am besten geeignet.

Trace-Informationen sind nicht immer fr die Diagnose eines Fehlers hilfreich. So wird in den folgenden Situationen die Fehlerbedingung mglicherweise nicht erfasst: v Die von Ihnen angegeben Tracepuffergre war nicht gro genug, eine vollstndige Reihe von Trace-Ereignissen aufzunehmen. Als das Trace mit dem Schreiben in der Datei aufgehrt hat oder ein Umlauf stattgefunden hat, gingen ntzliche Informationen verloren. v Das Traceszenario hat die Fehlersituation nicht erneut produziert. v Die Fehlersituation wurde erneut produziert doch die Annahme, wo der Fehler aufgetreten ist, war nicht korrekt. Beispielsweise wurde das Trace bei einer Client-Workstation erfasst whrend der tatschliche Fehler auf einem Server auftrat. Zugehrige Konzepte: v Abrufen eines DB2-Trace mit db2trc auf Seite 54 v DRDA-Tracedateien auf Seite 57

DB2-Traces
Abrufen eines DB2-Trace mit db2trc
Der Befehl db2trc steuert die mit DB2 zur Verfgung gestellte Tracefunktion. Mit der Tracefunktion knnen Informationen zu Operationen aufgezeichnet und in ein lesbares Format konvertiert werden. Es ist zu beachten, dass whrend der Durchfhrung eines Trace zustzlicher Systemaufwand anfllt. Demnach kann die Aktivierung der Tracefunktion die Systemleistung beeintrchtigen. Im Allgemeinen verwenden die DB2-Untersttzungsfunktion und -Entwicklungsteams DB2-Traces zur Fehlerbestimmung. Sie knnen einen Trace durchfhren, um Informationen zu einem Problem zu erhalten, das untersucht wird. Allerdings ist der Nutzen eines solchen Trace ohne Kenntnisse des DB2-Quellcodes relativ begrenzt. Dennoch sollten Sie mit der korrekten Aktivierung der Tracefunktion vertraut sein und wissen, wie Speicherauszge fr Tracedateien erstellt werden, falls Sie gebeten werden, diese abzurufen. Anmerkung: Sie bentigen eine der Berechtigungen SYSADM, SYSCTRL oder SYSMAINT, um db2trc zu verwenden. Fhren Sie den Befehl db2trc ohne Parameter aus, um eine bersicht ber die verfgbaren Optionen zu erhalten:

54

Fehlerbehebung

C:\>db2trc Syntax: db2trc (chg|clr|dmp|flw|fmt|inf|off|on) optionen

Weitere Informationen zu einem bestimmten Parameter des Befehls db2trc erhalten Sie, wenn Sie die Option -u verwenden. Fhren Sie beispielsweise den folgenden Befehl aus, um weitere Informationen zur Aktivierung der Tracefunktion zu erhalten:
db2trc on -u

Hierdurch werden Informationen zu allen zustzlichen Optionen (als facilities bezeichnet) aufgerufen, die bei der Aktivierung der DB2-Tracefunktion angegeben werden knnen. Die wichtigste Option fr die Aktivierung der Tracefunktion ist -L. Sie gibt die Gre des Speicherpuffers an, der zum Speichern der Trace-Informationen verwendet wird. Die Puffergre kann in Byte oder MB angegeben werden. (Fr die Angabe von Megabyte hngen Sie an den Wert M oder m an.) Die Tracepuffergre muss eine Potenz von 2 MB sein. Wenn Sie eine Gre angeben, die diese Voraussetzungen nicht erfllt, wird die Puffergre automatisch auf die nchste Potenz von 2 abgerundet. Wenn der Puffer zu klein ist, knnen Informationen verloren gehen. Standardmig werden nur die neuesten Trace-Informationen gespeichert, wenn der Puffer voll ist. Ist der Puffer zu gro, knnen beim Senden der Datei an das DB2-Untersttzungsteam Probleme auftreten. Wenn Sie einen Trace fr eine Operation erstellen, die relativ kurz ist (wie beispielsweise eine Datenbankverbindung), reicht eine Gre von ca. 8 MB normalerweise aus:
C:\> db2trc on -l 8M Trace is turned on

Wenn Sie jedoch einen Trace fr eine grere Operation erstellen oder wenn viele Aktionen gleichzeitig stattfinden, ist mglicherweise ein grerer Tracepuffer erforderlich. Auf den meisten Plattformen kann die Tracefunktion zu jedem beliebigen Zeitpunkt aktiviert werden und funktioniert wie oben beschrieben. Bitte beachten Sie jedoch die folgenden Situationen: 1. Auf Systemen mit mehreren Datenbankpartitionen mssen Sie einen Trace fr jede physische (im Gegensatz zur logischen) Datenbankpartition ausfhren. 2. Wenn auf HP-UX-, Linux- und Solaris-Plattformen die Tracefunktion inaktiviert wird, nachdem die Instanz gestartet wurde, wird unabhngig von der angegebenen Gre ein sehr kleiner Puffer verwendet. Um auf diesen Plattformen einen Trace effektiv auszufhren, mssen Sie die Tracefunktion aktivieren, bevor Sie die Instanz starten, und den Trace gegebenenfalls zu einem spteren Zeitpunkt bereinigen. Zugehrige Konzepte: v Erstellen eines Speicherauszugs einer DB2-Tracedatei auf Seite 56 v Formatieren einer DB2-Tracedatei auf Seite 56 Zugehrige Referenzen: v db2trc - Trace command in Command Reference

Kapitel 4. Tools fr die Fehlerbehebung

55

Erstellen eines Speicherauszugs einer DB2-Tracedatei


Wenn die Tracefunktion mit der Option on aktiviert wurde, wird fr die gesamte nachfolgende Arbeit, die von dieser Instanz ausgefhrt wird, ein Trace erstellt. Whrend die Tracefunktion aktiv ist, knnen Sie mit der Option clr den Tracepuffer bereinigen. Alle im Tracepuffer vorhandenen Informationen werden entfernt.
C:\>db2trc clr Trace has been cleared

Wenn die Operation, fr die ein Trace erstellt wird, abgeschlossen ist, knnen Sie die Option dmp gefolgt von einem Tracedateinamen verwenden, um fr den Speicherpuffer einen Speicherauszug auf der Platte zu erstellen. Beispiel:
C:\>db2trc dmp trace.dmp Trace has been dumped to file

Nachdem fr den Tracepuffer ein Speicherauszug auf der Platte erstellt wurde, ist die Tracefunktion weiterhin aktiv. Verwenden Sie die Option off, um die Tracefunktion zu inaktivieren:
C:\>db2trc off Trace is turned off

Zugehrige Konzepte: v Formatieren einer DB2-Tracedatei auf Seite 56 v Abrufen eines DB2-Trace mit db2trc auf Seite 54 Zugehrige Referenzen: v db2trc - Trace command in Command Reference

Formatieren einer DB2-Tracedatei


Die mit dem Befehl db2trc dmp erstellte Speicherauszugsdatei liegt in Binrformat vor und ist nicht lesbar. Prfen sie, ob eine Tracedatei gelesen werden kann, indem Sie die binre Tracedatei formatieren, damit die Fluss-Steuerung angezeigt wird, und senden Sie die formatierte Ausgabe an eine Nulleinheit. Das folgende Beispiel zeigt den Befehl fr die Ausfhrung dieser Task:
db2trc flw example.trc nul

Hierbei ist example.trc eine Binrdatei, die mit der Option dmp erstellt wurde. Die Ausgabe dieses Befehls gibt Ihnen explizit an, wenn ein Problem beim Lesen der Datei besteht oder ob beim Trace ein Umlauf stattgefunden hat. Zu diesem Zeitpunkt kann die Speicherauszugsdatei an die DB2-Untersttzungsfunktion gesendet werden. Dort wird sie auf der Basis des verwendeten DB2-Service-Levels formatiert. In manchen Fllen werden Sie jedoch dazu aufgefordert, die Speicherauszugsdatei in ASCII-Format zu konvertieren, bevor Sie sie senden. Hierzu verwenden Sie die Optionen flw und fmt. Sie mssen den Namen der binren Speicherauszugsdatei und den Namen der zu erstellenden ASCII-Datei angeben:
C:\>db2trc flw trace.dmp trace.flw C:\Temp>db2trc flw trace.dmp trace.flw Total number of trace records : 18854 Trace truncated : NO

56

Fehlerbehebung

Trace wrapped : NO Number of trace records formatted : 1513 (pid: 2196 tid 2148 node: -1) Number of trace records formatted : 100 (pid: 1568 tid 1304 node: 0) ... C:\>db2trc fmt trace.dmp trace.fmt C:\Temp>db2trc fmt trace.dmp trace.fmt Trace truncated : NO Trace wrapped : NO Total number of trace records : 18854 Number of trace records formatted : 18854

Wenn diese Ausgabe fr Trace wrapped die Angabe YES enthlt, bedeutet dies, dass der Tracepuffer nicht ausreichte, um alle whrend des Tracezeitraums erfassten Daten aufzuzeichnen. Abhngig von der Situation kann ein solcher Trace akzeptabel sein. Wenn Sie die neuesten Informationen bentigen (dies sind die Informationen, die standardmig aufbewahrt werden, es sei denn, die Option -i wird angegeben), ist der Inhalt der Tracedatei mglicherweise ausreichend. Wenn Sie jedoch Informationen zu den Ereignissen zu Beginn des Tracezeitraums oder Informationen zu allen Ereignissen bentigen, sollten Sie die Operation mit einem greren Tracepuffer wiederholen. Darber hinaus ist zu beachten, dass DB2 unter Linux- und UNIX-Betriebssystemen automatisch einen Speicherauszug des Tracepuffers auf der Platte erstellt, wenn es die Instanz aufgrund eines schwer wiegenden Fehlers beendet. Wenn also bei der abnormalen Beendigung einer Instanz die Tracefunktion aktiviert ist, wird eine Datei im Diagnoseverzeichnis erstellt, die den Namen db2trdmp.### hat, wobei ### die Knotennummer angibt. Auf Windows-Plattformen findet dies nicht statt. In diesen Fllen muss ein Speicherauszug fr den Trace manuell erstellt werden. Abschlieend folgt als Zusammenfassung ein Beispiel der blichen Folge von db2trc-Befehlen:
db2trc on -l 8M db2trc clr <Befehle zur Fehlerreproduktion ausfhren> db2trc dump db2trc.dmp db2trc off db2trc flw db2trc.dmp <dateiname>.flw db2trc fmt db2trc.dmp <dateiname>.fmt db2trc fmt -c db2trc.dmp <dateiname>.fmtc

Zugehrige Konzepte: v Erstellen eines Speicherauszugs einer DB2-Tracedatei auf Seite 56 v Abrufen eines DB2-Trace mit db2trc auf Seite 54 Zugehrige Referenzen: v db2trc - Trace command in Command Reference

DRDA-Traces
DRDA-Tracedateien
Vor der Analyse von DRDA-Traces sollten Sie sich darber im Klaren sein, dass es sich bei DRDA um einen offenen Standard fr die Definition von Daten- und Kommunikationsstrukturen handelt. So umfasst DRDA beispielsweise eine Reihe

Kapitel 4. Tools fr die Fehlerbehebung

57

von Regeln zur Strukturierung von Daten fr die bertragung sowie zur Durchfhrung dieser Datenbertragung. Diese Regeln sind in den folgenden Referenzhandbchern definiert: v DRDA V3 Vol. 1: Distributed Relational Database Architecture v DRDA V3 Vol. 2: Formatted Data Object Content Architecture v DRDA V3 Vol. 3: Distributed Data Management Architecture PDF-Versionen dieser Handbcher sind unter www.opengroup.org verfgbar. Das Dienstprogramm db2drdat zeichnet den Datenaustausch zwischen einem DRDA-Anwendungsrequester (AR) und einem DB2 DRDA-Anwendungsserver (AS) auf (zum Beispiel zwischen DB2 Connect und einem Host oder einem iSeriesDatenbankserver). Zugehrige Konzepte: v DB2 Connect und DRDA in DB2 Connect Benutzerhandbuch v Tracedienstprogramm auf Seite 58 Zugehrige Referenzen: v db2drdat - DRDA trace command in Command Reference

Tracedienstprogramm
Das Dienstprogramm db2drdat zeichnet die Daten auf, die zwischen dem DB2 Connect-Server (fr den Datenbankclient) und dem Host- oder iSeries-Datenbankserver ausgetauscht werden. Fr Datenbankadministratoren (oder Anwendungsentwickler) kann es ntzlich sein zu wissen, wie dieser Datenfluss funktioniert, da diese Kenntnisse dazu beitragen knnen, den Ursprung eines bestimmten Problems zu ermitteln. Wenn Sie beispielsweise die Datenbankanweisung CONNECT TO fr einen Host- oder iSeriesDatenbankserver absetzen und der Befehl fehlschlgt, empfangen Sie einen Rckkehrcode fr nicht erfolgreiche Ausfhrung. Wenn Sie genau verstehen, welche Informationen an das Verwaltungssystem des Host- oder iSeries-Datenbankservers bermittelt wurden, sind Sie unter Umstnden in der Lage, selbst dann die Ursache des Fehlers festzustellen, wenn die Informationen des Rckkehrcodes nur allgemein gehalten sind. Viele Strungen werden durch einfache Benutzerfehler verursacht. Die Ausgabe von db2drdat fhrt die Datenstrme auf, die zwischen der DB2 Connect-Workstation und dem Verwaltungssystem des Host- oder iSeries-Datenbankservers ausgetauscht werden. Daten, die an den Host- oder iSeries-Datenbankserver gesendet werden, sind mit SEND BUFFER (Sendepuffer) markiert, und Daten, die vom Host- oder iSeries-Datenbankserver empfangen werden, sind mit RECEIVE BUFFER (Empfangspuffer) markiert. Wenn ein Empfangspuffer Informationen aus dem SQL-Kommunikationsbereich (SQLCA) enthlt, folgt im Anschluss daran eine formatierte Interpretation dieser Daten, die mit SQLCA markiert werden. Das Feld SQLCODE eines SQL-Kommunikationsbereichs enthlt den nicht zugeordneten Wert, der vom Host- oder iSeriesDatenbankserver zurckgegeben wird. Die Sende- und Empfangspuffer werden innerhalb der Datei in einer Reihenfolge vom ltesten zum neuesten Puffer angeordnet. Jeder Puffer weist Folgendes auf: v Die Prozess-ID.

58

Fehlerbehebung

v Eine Markierung SEND BUFFER, RECEIVE BUFFER oder SQLCA. Der/das erste DDM-Befehl oder -Objekt in einem Puffer erhlt die Markierung DSS TYPE. Die verbleibenden Daten in Sende- und Empfangspuffern werden in fnf Spalten unterteilt, die aus Folgendem bestehen: v Einem Bytezhler. v Spalten 2 und 3, die den DRDA-Datenstrom darstellen (in ASCII oder EBCDIC), der zwischen den beiden Systemen ausgetauscht wird. v Einer ASCII-Darstellung der Spalten 2 und 3. v Einer EBCDIC-Darstellung der Spalten 2 und 3 Zugehrige Konzepte: v Traceausgabe auf Seite 59 v Analyse der Trace-Ausgabedatei auf Seite 60 Zugehrige Referenzen: v db2drdat - DRDA trace command in Command Reference

Traceausgabe
Das Dienstprogramm db2drdat schreibt die folgenden Informationen in die Tracedatei: v -r Typ der/des DRDA-Antwort/-Objekts Empfangspuffer v -s Typ der DRDA-Anforderung Sendepuffer v -c SQLCA v TCP/IP-Fehlerinformationen Rckkehrcode der Empfangsfunktion Bewertung Verwendetes Protokoll Verwendete API Funktion Fehlernummer Anmerkungen: 1. Der Wert Null fr den Endecode zeigt an, dass der Befehl erfolgreich ausgefhrt wurde. Ein Wert ungleich Null zeigt an, dass der Befehl nicht erfolgreich ausgefhrt wurde. 2. Die zurckgegebenen Felder hngen von der verwendeten API ab. 3. Welche Felder zurckgegeben werden, hngt von der Plattform ab, auf der DB2 Connect ausgefhrt wird. Es knnen daher fr dieselbe API unterschiedliche Felder zurckgegeben werden. 4. Wenn der Befehl db2drdat die Ausgabe an eine bereits existierende Datei leitet, wird die alte Datei gelscht, sofern die Berechtigungen fr die Datei dies zulassen.

Kapitel 4. Tools fr die Fehlerbehebung

59

Zugehrige Konzepte: v Analyse der Trace-Ausgabedatei auf Seite 60 v Tracedienstprogramm auf Seite 58 Zugehrige Referenzen: v db2drdat - DRDA trace command in Command Reference

Analyse der Trace-Ausgabedatei


Die folgenden Informationen werden bei einem db2drdat-Trace erfasst: v Die Prozess-ID (PID) der Client-Anwendung v v v v Der RDB_NAME, der im DCS-Verzeichnis katalogisiert ist Die ID(s) fr den codierten Zeichensatz von DB2 Connect Die ID(s) fr den codierten Zeichensatz des Host- oder iSeries-Datenbankservers Das Verwaltungssystem des Host- oder iSeries-Datenbankservers, mit dem das DB2 Connect-System kommuniziert

Der erste Puffer enthlt die Befehle EXCSAT (Exchange Server Attributes) und ACCRDB (Access RDB), die an das Verwaltungssystem des Host- oder iSeriesDatenbankservers gesendet werden. Diese Befehle werden als Ergebnis des Datenbankbefehls CONNECT TO gesendet. Der nchste Puffer enthlt die Antwort, die DB2 Connect vom Verwaltungssystem des Host- oder iSeries-Datenbankservers empfing. Sie enthlt EXCSATRD (Exchange Server Attributes Reply Data) und eine ACCRDBRM (Access RDB Reply Message). EXCSAT Der Befehl EXCSAT enthlt den Workstationnamen des Clients, der vom Objekt SRVNAM (Servername) angegeben wird; dieser Name entspricht gem der DDM-Spezifikation dem Codepunkt X'116D'. Der Befehl EXCSAT befindet sich im ersten Puffer. Im Befehl EXCSAT werden die Werte X'9481A292' (die in CCSID 500 codiert sind) in mask umgesetzt, sobald X'116D' entfernt ist. Der Befehl EXCSAT enthlt auerdem das Objekt EXTNAM (externer Name), das oft in Diagnoseinformationen im Host- oder iSeries-Datenbankverwaltungssystem zu finden ist. Es besteht aus einer 20 Byte langen Anwendungs-ID, gefolgt von einer 8 Byte langen Prozess-ID (oder einer 4 Byte langen Prozess-ID und einer 4 Byte langen Thread-ID). Es wird durch den Codepunkt X'115E' dargestellt und hat in diesem Beispiel den Wert db2bp, der durch Leerzeichen aufgefllt ist und auf den 000C50CC folgt. Auf einem Datenbankclient unter Linux oder UNIX kann dieser Wert mit dem Befehl ps korreliert werden, der Statusinformationen zu aktiven Prozessen an die Standardausgabe zurckgibt. ACCRDB Der Befehl ACCRDB enthlt den RDB_NAME im Objekt RDBNAM (Codepunkt X'2110'). Der Befehl ACCRDB folgt auf den Befehl EXCSAT im ersten Puffer. Im Befehl ACCRDB werden die Werte X'E2E3D3C5C3F1' in STLEC1 umgesetzt, sobald X'2110' entfernt ist. Dies entspricht dem Feld fr den Zieldatenbanknamen im DCS-Verzeichnis. Die Abrechnungszeichenfolge hat den Codepunkt X'2104'. Der codierte Zeichensatz fr die DB2 Connect-Workstation kann ermittelt werden, indem das CCSID-Objekt CCSIDSBC (CCSID fr Einzelbytezeichen) mit Codepunkt X'119C' im Befehl ACCRDB angegeben wird. In diesem Beispiel ist der Wert fr CCSIDSBC X'0333', d. h. 819.

60

Fehlerbehebung

Die zustzlichen Objekte CCSIDDBC (CCSID fr Doppelbytezeichen) und CCSIDMBC (CCSID fr Mischbytezeichen) mit dem Codepunkt X'119D' bzw. X'119E' sind im Befehl ACCRDB ebenfalls vorhanden. In diesem Beispiel ist der Wert fr CCSIDDBC X'04B0', d. h. 1200. Der Wert fr CCSIDMBC ist X'0333', d. h. 819. EXCSATRD und ACCRDBRM CCSID-Werte werden auch vom Host- oder iSeries-Datenbankserver in ACCRDBRM (Access RDB Reply Message) im zweiten Puffer zurckgegeben. Dieser Puffer enthlt die EXCSATRD-Daten, gefolgt von den ACCRDBRM-Daten. Die Beispielausgabedatei enthlt zwei CCSID-Werte fr das Host- oder iSeries-Datenbankserversystem. Die Werte lauten 1208 (sowohl fr Einzelbyte- als auch Mischbytezeichen) und 1200 (fr Doppelbytezeichen). Wenn DB2 Connect die Codepage, die vom Host- oder iSeries-Datenbankserver zurckgegeben wird, nicht erkennt, wird der SQLCODE-Wert -332 mit der Quellen- und Zielcodepage an den Benutzer zurckgegeben. Wenn der Host- oder iSeries-Datenbankserver den von DB2 Connect gesendeten codierten Zeichensatz nicht erkennt, gibt er VALNSPRM (Parameterwert nicht untersttzt, DDM-Codepunkt X'1252') zurck; diese Angaben werden fr den Benutzer in den SQLCODE-Wert -332 umgesetzt. Der Befehl ACCRDBRM enthlt auch den Parameter PRDID (produktspezifische Kennung, Codepunkt X'112E'). Der Wert lautet X'C4E2D5F0F8F0F1F5', d. h. DSN08015 in EBCDIC. Gem den Standards entspricht DSN der Angabe DB2 Universal Database fr z/OS und OS/390. Die Versionsnummer ist ebenfalls angegeben. ARI ist DB2 Server fr VSE & VM, SQL ist eine DB2-Datenbank oder DB2 Connect, und QSQ ist DB2 UDB fr iSeries. Zugehrige Konzepte: v Traceausgabe auf Seite 59 v Tracedienstprogramm auf Seite 58 Zugehrige Referenzen: v db2drdat - DRDA trace command in Command Reference v Informationen zu nachfolgenden Puffern fr DRDA-Traces auf Seite 67 v Beispiele fr die Trace-Ausgabedatei auf Seite 61

Beispiele fr die Trace-Ausgabedatei


Die nachfolgenden Abbildungen zeigen Beispielausgabe zur Veranschaulichung einiger DRDA-Datenstrme, die zwischen DB2 Connect-Workstations und einem Host- oder iSeries-Datenbankserver ausgetauscht werden. Aus Sicht des Benutzers ist der Datenbankbefehl CONNECT TO ber den Befehlszeilenprozessor (CLP) abgesetzt worden. Abb. 1 auf Seite 62 verwendet DB2 Connect Enterprise Edition Version 9.1 und DB2 UDB fr z/OS Version 8 ber eine TCP/IP-Verbindung.

Kapitel 4. Tools fr die Fehlerbehebung

61

1 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.100) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 0 probe 100 bytes 16 Data1 233 (PD_TYPE_UINT,8) unsigned integer:

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 1 von 20)

2 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.1177) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 19532 probe 1177 bytes 250 SEND BUFFER(AR): EXCSAT RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 00C3D041000100BD 1041007F115E8482 F282974040404040 4040404040404040 4040F0F0F0C3F5F0 C3C3F0F0F0000000 0000000000000000 0000000000000000 0000000000000000 000000000060F0F0 F0F1A2A495404040 4040404040404040 4040404040404040 4040404040404040 C4C5C3E5F8404040 F0A2A49540404040 4040404040404040 4000181404140300 0724070008147400 05240F0008144000 08000E1147D8C4C2 F261C1C9E7F6F400 08116D9481A29200 0C115AE2D8D3F0F9 F0F0F0 ACCSEC RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0026D00100020020 106D000611A20003 00162110E2E3D3C5 C3F1404040404040 404040404040 (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF ...A.....A...^.. .C}........".;db ...@@@@@@@@@@@@@ 2bp @@.............. 000C50CC000... ................ ................ .............`.. .............-00 .....@@@@@@@@@@@ 01sun @@@@@@@@@@@@@@@@ .....@@@....@@@@ DECV8 0sun @@@@@@@@@....... ....... .$....t..$....@. .............. . ....G....a...... .....QDB2/AIX64. ..m.......Z..... .._mask...]SQL09 ... 000 (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .&..... .m...... ..}......_...s.. ..!.......@@@@@@ ....STLEC1 @@@@@@

0000 0010 0020 0030 0040 0050 0060 0070 0080 0090 00A0 00B0 00C0

0000 0010 0020

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 2 von 20)

3 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.100) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 110546200 probe 100 bytes 12 Data1 105 (PD_TYPE_UINT,4) unsigned integer:

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 3 von 20)

62

Fehlerbehebung

4 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.1178) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 110549755 probe 1178 bytes 122 RECEIVE BUFFER(AR): EXCSATRD OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0059D04300010053 1443000F115EE5F8 F1C14BE2E3D3C5C3 F100181404140300 0724070007147400 05240F0007144000 0700081147D8C4C2 F20014116DE2E3D3 C5C3F14040404040 4040404040000C11 5AC4E2D5F0F8F0F1 F5 ACCSECRD OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0010D0030002000A 14AC000611A20003 (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .Y.C...S.C...^.. ..}..........;V8 ..K............. 1A.STLEC1....... .$....t..$....@. .............. . ....G.......m... .....QDB2..._STL ...@@@@@@@@@@... EC1 ... Z........ ]DSN08015 (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF ................ ..}..........s..

0000 0010 0020 0030 0040 0050

0000

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 4 von 20)

5 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.100) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 110656806 probe 100 bytes 16 Data1 233 (PD_TYPE_UINT,8) unsigned integer:

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 5 von 20)

6 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.1177) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 110659711 probe 1177 bytes 250 SEND BUFFER(AR): SECCHK RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 003CD04100010036 106E000611A20003 00162110E2E3D3C5 C3F1404040404040 404040404040000C 11A1D9858799F485 A599000A11A09585 A6A39695 ACCRDB RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 00ADD001000200A7 20010006210F2407 00172135C7F9F1C1 F0C4F3C14BD7C1F8 F806030221064600 162110E2E3D3C5C3 F140404040404040 4040404040000C11 2EE2D8D3F0F9F0F0 F0000D002FD8E3C4 E2D8D3C1E2C30016 00350006119C0333 0006119D04B00006 119E0333003C2104 (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .<.A...6.n...... ..}......>...s.. ..!.......@@@@@@ ....STLEC1 @@@@@@.......... ....Regr4e ............ vr....newton (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF ........ ...!.$. ..}....x........ ..!5........K... ....G91A0D3A.PA8 ....!.F..!...... 8..........STLEC .@@@@@@@@@@@@... 1 ... ............/... .SQL09000....QTD .........5.....3 SQLASC.......... ...........3.

0000 0010 0020 0030

0000 0010 0020 0030 0040 0050 0060

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 6 von 20)

7 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.100) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 259908001 probe 100 bytes 12 Data1 176 (PD_TYPE_UINT,4) unsigned integer:

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 7 von 20)

Kapitel 4. Tools fr die Fehlerbehebung

63

8 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.1178) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 259911584 probe 1178 bytes 193 RECEIVE BUFFER(AR): SECCHKRM RPYDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0015D0420001000F 1219000611490000 000511A400 ACCRDBRM RPYDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 009BD00200020095 2201000611490000 000D002FD8E3C4E2 D8D3F3F7F0000C11 2EC4E2D5F0F8F0F1 F500160035000611 9C04B80006119E04 B80006119D04B000 0C11A0D5C5E6E3D6 D540400006212524 34001E244E000624 4C00010014244D00 06244FFFFF000A11 E8091E768301BE00 2221030000000005 68B3B8C7F9F1C1F0 C4F3C1D7C1F8F840 4040400603022106 46000A11E8091E76 831389 (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF ...B.........I.. ..}............. ..... ...u. (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF ........"....I.. ..}....n........ .../............ ....QTDSQL370... ............5... .DSN08015....... ................ ................ .........@@..!%$ ...NEWTON ..... 4..$N..$L....$M. ....+...<.....(. .$O........v.... ..!.....Y...c... "!......h....... ...........G91A0 .......@@@@...!. D3APA88 ..... F......v... ....Y...c.i

0000 0010

0000 0010 0020 0030 0040 0050 0060 0070 0080 0090

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 8 von 20)

9 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.100) pid 807116 tid 1 cpid -1 node 0 sec 2 nsec 364420503 probe 100 bytes 16 Data1 10 (PD_TYPE_UINT,8) unsigned integer:

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 9 von 20)

10 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.1177) pid 807116 tid 1 cpid -1 node 0 sec 2 nsec 364440751 probe 1177 bytes 27 SEND BUFFER(AR): RDBCMM RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 000AD00100010004 200E (ASCII) 0123456789ABCDEF ........ . (EBCDIC) 0123456789ABCDEF ..}.......

0000

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 10 von 20)

11 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.100) pid 807116 tid 1 cpid -1 node 0 sec 2 nsec 475009631 probe 100 bytes 12 Data1 54 (PD_TYPE_UINT,4) unsigned integer:

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 11 von 20)

64

Fehlerbehebung

12 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.1178) pid 807116 tid 1 cpid -1 node 0 sec 2 nsec 475014579 probe 1178 bytes 71 RECEIVE BUFFER(AR): ENDUOWRM RPYDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 002BD05200010025 220C000611490004 00162110E2E3D3C5 C3F1404040404040 4040404040400005 211501 SQLCARD OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 000BD00300010005 2408FF (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .+.R...%"....I.. ..}............. ..!.......@@@@@@ ....STLEC1 @@@@@@..!.. ..... (ASCII) 0123456789ABCDEF ........$.. (EBCDIC) 0123456789ABCDEF ..}........

0000 0010 0020

0000

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 12 von 20)

13 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.100) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 721710319 probe 100 bytes 16 Data1 126 (PD_TYPE_UINT,8) unsigned integer:

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 13 von 20)

14 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.1177) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 721727276 probe 1177 bytes 143 SEND BUFFER(AR): EXCSQLIMM RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0053D0510001004D 200A00442113E2E3 D3C5C3F140404040 4040404040404040 D5E4D3D3C9C44040 4040404040404040 4040E2D8D3C3F2C6 F0C1404040404040 4040404041414141 41484C5600CB0005 2105F1 SQLSTT OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 002BD00300010025 2414000000001B64 656C657465206672 6F6D206464637375 73312E6D79746162 6C65FF (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .S.Q...M ..D!... ..}....(......ST ....@@@@@@@@@@@@ LEC1 ......@@@@@@@@@@ NULLID @@........@@@@@@ SQLC2F0A @@@@AAAAAHLV.... ......<..... !.. ..1 (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .+.....%$......d ..}............. elete from ddcsu .%......?_...... s1.mytable. ..._`./.%..

0000 0010 0020 0030 0040 0050

0000 0010 0020

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 14 von 20)

15 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.100) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 832901261 probe 100 bytes 12 Data1 102 (PD_TYPE_UINT,4) unsigned integer:

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 15 von 20)

Kapitel 4. Tools fr die Fehlerbehebung

65

16 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.1178) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 832906528 probe 1178 bytes 119 RECEIVE BUFFER(AR): SQLCARD OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0066D00300010060 240800FFFFFF3434 3237303444534E58 4F544C2000FFFFFE 0C00000000000000 00FFFFFFFF000000 0000000000572020 2057202020202020 001053544C454331 2020202020202020 2020000F44444353 5553312E4D595441 424C450000FF (ASCII) 0123456789ABCDEF .f.....`$.....44 2704DSNXOTL .... ................ .....W W ..STLEC1 ..DDCSUS1.MYTA BLE... (EBCDIC) 0123456789ABCDEF ..}....-........ ......+.!.<..... ................ ................ ....<........... ............(... .<....

0000 0010 0020 0030 0040 0050 0060

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 16 von 20)

17 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.100) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 833156953 probe 100 bytes 16 Data1 10 (PD_TYPE_UINT,8) unsigned integer:

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 17 von 20)

18 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.1177) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 833159843 probe 1177 bytes 27 SEND BUFFER(AR): RDBRLLBCK RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 000AD00100010004 200F (ASCII) 0123456789ABCDEF ........ . (EBCDIC) 0123456789ABCDEF ..}.......

0000

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 18 von 20)

19 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.100) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 943302832 probe 100 bytes 12 Data1 54 (PD_TYPE_UINT,4) unsigned integer:

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 19 von 20)

66

Fehlerbehebung

20 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.1178) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 943306288 probe 1178 bytes 71 RECEIVE BUFFER(AR): ENDUOWRM RPYDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 002BD05200010025 220C000611490004 00162110E2E3D3C5 C3F1404040404040 4040404040400005 211502 SQLCARD OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 000BD00300010005 2408FF (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .+.R...%"....I.. ..}............. ..!.......@@@@@@ ....STLEC1 @@@@@@..!.. ..... (ASCII) 0123456789ABCDEF ........$.. (EBCDIC) 0123456789ABCDEF ..}........

0000 0010 0020

0000

Abbildung 1. Beispiel einer Trace-Ausgabe (TCP/IP-Verbindung) (Teil 20 von 20)

Zugehrige Konzepte: v Analyse der Trace-Ausgabedatei auf Seite 60 Zugehrige Referenzen: v Informationen zu nachfolgenden Puffern fr DRDA-Traces auf Seite 67

Informationen zu nachfolgenden Puffern fr DRDA-Traces


Auch die nachfolgenden Sende- und Empfangspuffer knnen auf zustzliche Informationen hin analysiert werden. Die nchste Anforderung enthlt einen Befehl COMMIT. Der Befehl commit weist das Verwaltungssystem des Host- oder iSeriesDatenbankservers an, die aktuelle UOW (Unit of Work) festzuschreiben. Der vierte Puffer wird vom Datenbankverwaltungssystem des Host- oder iSeries-Datenbankservers infolge einer COMMIT- oder ROLLBACK-Operation empfangen. Er enthlt die ENDUOWRM-Nachricht (End Unit of Work Reply Message), die anzeigt, dass die aktuelle UOW beendet wurde. In diesem Beispiel enthlt Traceeintrag 12 einen leeren SQL-Kommunikationsbereich (SQLCA), angezeigt durch DDM-Codepunkt X'2408', gefolgt von X'FF'. Ein leerer SQL-Kommunikationsbereich (X'2408FF') zeigt die erfolgreiche Ausfhrung an (SQLCODE 0). Abb. 1 auf Seite 62 zeigt ein Beispiel eines Empfangspuffers, der einen fehlerhaften SQL-Kommunikationsbereich bei Traceeintrag 16 enthlt. Zugehrige Konzepte: v Analyse der Trace-Ausgabedatei auf Seite 60 Zugehrige Referenzen: v Beispiele fr die Trace-Ausgabedatei auf Seite 61

Durchfhren von Traces in der Steuerzentrale


Bevor fr den Fehler ein Trace in der Steuerzentrale durchgefhrt wird, empfiehlt es sich, zunchst sicherzustellen, dass nicht der gleiche Fehler auftritt, wenn die entsprechenden Aktionen mittels expliziter Befehle ber die DB2-Eingabeaufforderung ausgefhrt werden. Wenn Sie eine Task in der Steuerzentrale (oder einem der anderen GUI-Tools, die ber die Steuerzentrale gestartet werden knnen) ausfhren, wird hufig der Knopf Befehl anzeigen angezeigt, der die genaue Syntax fr den Befehl liefert, den das Tool verwenden wird. Wenn genau dieser
Kapitel 4. Tools fr die Fehlerbehebung

67

Befehl ber die DB2-Eingabeaufforderung erfolgreich ausgefhrt wird, im GUI-Tool jedoch fehlschlgt, ist es angemessen, ein Trace ber die Steuerzentrale abzurufen. Um einen Trace fr einen Fehler durchzufhren, der nur in der Steuerzentrale reproduzierbar ist, starten Sie die Steuerzentrale wie folgt:
db2cc -tf dateiname

Mit diesem Befehl wird die Tracefunktion der Steuerzentrale aktiviert und die Traceausgabe in die angegebene Datei geschrieben. Die Ausgabedatei wird unter Windows im Verzeichnis <db2-installationspfad>\sqllib\tools und unter UNIX und Linux im Verzeichnis /home/<benutzer-id>/sqllib/tools gespeichert. Anmerkung: Wenn Sie die Steuerzentrale mit aktivierter Tracefunktion gestartet haben, reproduzieren Sie den Fehler anhand von mglichst wenigen Schritten. Versuchen Sie zu vermeiden, im Tool auf Elemente zu klicken, die nicht erforderlich sind oder mit dem Fehler nicht in Zusammenhang stehen. Schlieen Sie nach der Reproduktion des Fehlers sowohl die Steuerzentrale als auch alle anderen GUI-Tools, die Sie zwecks Fehlerreproduktion geffnet haben. Die resultierende Tracedatei muss zur Analyse an die DB2-Untersttzungsfunktion gesendet werden. Zugehrige Konzepte: v bersicht ber die Steuerzentrale in Systemverwaltung: Implementierung Zugehrige Referenzen: v db2cc - Start control center command in Command Reference

JDBC-Tracedateien
Abrufen von Traces von Anwendungen, die den DB2 JDBC Type 2-Treiber fr Linux, UNIX und Windows verwenden
Dieser Tracetyp wird in folgenden Fehlersituationen eingesetzt: v Fehler in einer JDBC-Anwendung, die den DB2 JDBC Type 2-Treiber fr Linux, UNIX oder Windows (DB2 JDBC Type 2-Treiber) verwendet. v Fehler in gespeicherten DB2-JDBC-Prozeduren. Anmerkung: Es gibt viele Schlsselwrter, die der Datei db2cli.ini hinzugefgt werden knnen und die sich auf das Anwendungsverhalten auswirken knnen. Diese Schlsselwrter knnen Anwendungsfehler entweder beheben oder auch verursachen. Einige Schlsselwrter werden in der CLI-Dokumentation nicht behandelt. Sie sind nur ber die DB2-Untersttzungsfunktion erhltlich. Befinden sich in Ihrer Datei db2cli.ini Schlsselwrter, die nicht dokumentiert sind, wurden sie wahrscheinlich von der DB2-Untersttzungsfunktion empfohlen. Intern verwendet der DB2 JDBC Type 2-Treiber den DB2 CLI-Treiber fr den Datenbankzugriff. Die Java-Methode getConnection() beispielsweise wird intern vom DB2 JDBC Type 2-Treiber der DB2 CLIFunktion SQLConnect() zugeordnet. Daher kann fr Java-Entwickler zustzlich zum DB2-JDBC-Trace auch ein DB2 CLI-Trace von Nutzen sein.

68

Fehlerbehebung

Standardmig befindet sich die Schlsselwortdatei fr die DB2 CLI/ODBC-Konfiguration auf Windows-Plattformen im Verzeichnis sqllib und auf UNIX-Plattformen im Verzeichnis sqllib/cfg der Datenbankinstanz, die die CLI/ODBC-Anwendungen ausfhrt. Wird zum Konfigurieren einer Benutzerdatenquelle auf der Windows-Plattform der ODBC-Treibermanager verwendet, wird die Datei db2cli.ini unter Umstnden im Ausgangsverzeichnis (Profilverzeichnis) des Benutzers erstellt. Es kann auch die Umgebungsvariable DB2CLIINIPATH verwendet werden, um den Standardwert zu berschreiben und eine andere Speicherposition fr die Datei anzugeben. Schritt 1. Erstellen Sie einen Pfad fr die Tracedateien. Es muss ein Pfad erstellt werden, auf den alle Benutzer Schreibzugriff haben. Verwenden Sie hierzu unter Windows beispielsweise folgenden Befehl:
mkdir c:\temp\trace

Unter Linux und UNIX:


mkdir /tmp/trace chmod 777 /tmp/trace

Schritt 2. Aktualisieren Sie die Schlsselwrter der CLI-Konfiguration. Dies kann entweder (A) durch manuelles Bearbeiten der Datei db2cli.ini oder (B) durch Verwenden des Befehls UPDATE CLI CFG erfolgen. Option A: Manuelle Bearbeitung der Datei db2cli.ini. a. ffnen Sie die Datei db2cli.ini in einem einfachen Texteditor. b. Fgen Sie der Datei den folgenden Abschnitt hinzu (bzw. hngen Sie einfach die Variablen an, falls der Abschnitt COMMON bereits vorhanden ist):
[COMMON] JDBCTrace=1 JDBCTracePathName=<pfad> JDBCTraceFlush=1

Hierbei steht <pfad> beispielsweise fr C:\temp\trace auf WindowsPlattformen bzw. fr /tmp/trace auf Linux- oder UNIX-Plattformen. c. Speichern Sie die Datei mit mindestens einer Leerzeile am Dateiende. (Hierdurch werden einige Parsingfehler vermieden.) Option B: Verwenden von UPDATE CLI CFG-Befehlen zum Aktualisieren der Datei db2cli.ini. Geben Sie die folgenden Befehle aus:
db2 UPDATE CLI CFG FOR SECTION COMMON USING JDBCTrace 1 db2 UPDATE CLI CFG FOR SECTION COMMON USING JDBCTracePathName <pfad>

Hierbei steht <pfad> beispielsweise fr C:\temp\trace auf WindowsPlattformen bzw. fr /tmp/trace auf Linux- oder UNIX-Plattformen.
db2 UPDATE CLI CFG FOR SECTION COMMON USING JDBCTraceFlush 1

Schritt 3. berprfen Sie die Konfiguration der Datei db2cli.ini. Geben Sie den folgenden Befehl aus, um zu prfen, ob die korrekten Schlsselwrter eingerichtet wurden und bercksichtigt werden:
db2 GET CLI CFG FOR SECTION COMMON

Schritt 4. Starten Sie die Anwendung erneut. Die Datei db2cli.ini wird nur beim Start der Anwendung gelesen. Daher muss die Anwendung erneut gestartet werden, damit die nderungen wirksam werden. Wird ein Trace fr eine gespeicherte JDBC-Prozedur erstellt, bedeutet dies den Neustart der DB2-Instanz. Schritt 5. Erfassen Sie den Fehler.
Kapitel 4. Tools fr die Fehlerbehebung

69

Fhren Sie die Anwendung so lange aus, bis der Fehler generiert wird, und schlieen Sie die Anwendung danach wieder. Grenzen Sie das Umfeld mglichst ein, sodass zum Zeitpunkt der Traceerstellung nur diejenigen JDBC-Anwendungen aktiv sind, die mit der erneuten Generierung des Fehlers in Zusammenhang stehen. Dadurch werden die Tracedateien leichter verstndlich. Schritt 6. Inaktivieren Sie die JDBC-Tracefunktion. Setzen Sie manuell das Schlsselwort JDBCTrace=0 im Abschnitt [COMMON] der Datei db2cli.ini, oder geben Sie folgende Befehle aus:
db2 UPDATE CLI CFG FOR SECTION COMMON USING Trace 0 db2 UPDATE CLI CFG FOR SECTION COMMON USING JDBCTrace 0

Starten Sie alle Anwendungen erneut, die aktiv sind und Traces erstellen. Schritt 7. Erfassen Sie die Tracedateien. Die JDBC-Tracedateien werden in den Pfad geschrieben, der im Schlsselwort JDBCTracePathName angegeben ist. Die Namen aller generierten Dateien enden mit der Erweiterung .trc. Es sind alle Dateien erforderlich, die zum Zeitpunkt der erneuten Fehlergenerierung im Tracepfad erstellt wurden. Wenn Sie die Tracefunktion zum Diagnostizieren von Anwendungsproblemen verwenden, ist zu bedenken, dass sich die Funktion auf die Anwendungsleistung auswirkt und dass dies alle Anwendungen betrifft, nicht nur die Testanwendung. Daher sollte darauf geachtet werden, die Tracefunktion wieder zu inaktivieren, nachdem der Fehler ermittelt wurde. Zugehrige Konzepte: v CLI/ODBC/JDBC trace facility in Call Level Interface Guide and Reference, Volume 1 v db2cli.ini initialization file in Call Level Interface Guide and Reference, Volume 1

Abrufen von Traces fr Anwendungen, die den DB2 Universal JDBC-Treiber verwenden
Wenn Sie ber eine SQLJ- oder JDBC-Anwendung verfgen, die den DB2 Universal JDBC-Treiber verwendet, gibt es verschiedene Mglichkeiten, einen JDBC-Trace zu aktivieren. Option A: Wenn Sie die Schnittstelle DataSource verwenden, um eine Verbindung zu einer Datenquelle herzustellen, aktivieren Sie die Tracefunktion mit Hilfe der Methoden DataSource.setTraceLevel() und DataSource.setTraceFile(). Option B: Wenn Sie die Schnittstelle DriverManager verwenden, um eine Verbindung zu einer Datenquelle herzustellen, lsst sich die Tracefunktion am einfachsten aktivieren, indem fr DriverManager vor dem Verbindungsaufbau logWriter gesetzt wird. Beispiel:
DriverManager.setLogWriter(new PrintWriter(new FileOutputStream("trace.txt")));

70

Fehlerbehebung

Option C: Wenn Sie die Schnittstelle DriverManager verwenden, knnen Sie beim Laden des Treibers alternativ auch die Merkmale traceFile und traceLevel als Teil der URL angeben. Beispiel:
String databaseURL = "jdbc:db2://hal:50000/sample:traceFile=c:/temp/foobar.txt;" ;

Zugehrige Konzepte: v Example of a trace program under the IBM DB2 Driver for JDBC and SQLJ in Developing Java Applications v JDBC and SQLJ problem diagnosis with the IBM DB2 Driver for JDBC and SQLJ in Developing Java Applications

CLI-Traces
CLI-Tracedateien
Die CLI-Tracefunktion erfasst Informationen zu Anwendungen, die auf den DB2 CLI-Treiber zugreifen. Die CLI-Tracefunktion bietet nur sehr wenige Informationen zu den internen Ablufen des DB2 CLI-Treibers. Dieser Tracetyp wird in Situationen eingesetzt, in denen Probleme auftreten mit: v einer CLI-Anwendung v einer ODBC-Anwendung (da ODBC-Anwendungen ber die DB2 CLI-Schnittstelle auf DB2 zugreifen) v gespeicherten DB2 CLI-Prozeduren v JDBC-Anwendungen und gespeicherten JDBC-Prozeduren Bei der Diagnose von ODBC-Anwendungen lassen sich Probleme hufig am einfachsten mit Hilfe eines ODBC-Trace oder eines DB2 CLI-Trace bestimmen. Wenn Sie einen ODBC-Treibermanager verwenden, steht wahrscheinlich auch die Funktionalitt zur Durchfhrung eines ODBC-Trace bereit. Die Dokumentation des Treibermanagers enthlt Informationen dazu, wie die ODBC-Tracefunktion aktiviert wird. DB2 CLI-Traces sind speziell auf DB2 ausgerichtet und enthalten hufig mehr Informationen als ein generischer ODBC-Trace. Beide Tracefunktionen sind normalerweise recht hnlich, indem sie die Eingangs- und Ausgangspunkte aller CLIAufrufe von einer Anwendung auflisten, einschlielich aller Parameter und Rckkehrcodes fr diese Aufrufe. Der DB2 JDBC Type 2-Treiber fr Linux, UNIX und Windows (DB2 JDBC Type 2-Treiber) hngt beim Zugriff auf die Datenbank vom DB2 CLI-Treiber ab. Folglich mssen Java-Entwickler auch die DB2 CLI-Tracefunktion aktivieren, um zustzliche Informationen darber zu erhalten, wie ihre Anwendungen mit der Datenbank ber die verschiedenen Softwareschichten interagieren. Die DB2 JDBC-Tracefunktion und die DB2 CLI-Tracefunktion sind voneinander unabhngig, auch wenn beide in der Datei db2cli.ini festgelegt werden. Zugehrige Konzepte: v CLI and JDBC trace files in Call Level Interface Guide and Reference, Volume 1 v CLI/ODBC/JDBC trace facility in Call Level Interface Guide and Reference, Volume 1
Kapitel 4. Tools fr die Fehlerbehebung

71

Aktivieren von CLI-Traces


Ein CLI-Trace wird durch Hinzufgen bestimmter Eintrge in der Datei db2cli.ini aktiviert. Anmerkung: Es gibt viele Schlsselwrter, die der Datei db2cli.ini hinzugefgt werden knnen und die sich auf das Anwendungsverhalten auswirken knnen. Diese Schlsselwrter knnen Anwendungsfehler entweder beheben oder auch verursachen. Einige Schlsselwrter werden in der CLI-Dokumentation nicht behandelt. Sie sind nur ber die DB2-Untersttzungsfunktion erhltlich. Befinden sich in Ihrer Datei db2cli.ini Schlsselwrter, die nicht dokumentiert sind, wurden sie wahrscheinlich vom DB2-Untersttzungsteam empfohlen. Standardmig befindet sich die Schlsselwortdatei fr die DB2 CLI/ODBC-Konfiguration unter Windows-Betriebssystemen im Verzeichnis sqllib und unter Linuxund UNIX-Betriebssystemen im Verzeichnis sqllib/cfg der Datenbankinstanz, die die CLI/ODBC-Anwendungen ausfhrt. Wird zum Konfigurieren einer Benutzerdatenquelle unter Windows der ODBC-Treibermanager verwendet, kann die Datei db2cli.ini im Ausgangsverzeichnis (Profilverzeichnis) des Benutzers erstellt werden. Es kann auch die Umgebungsvariable DB2CLIINIPATH verwendet werden, um den Standardwert zu berschreiben und eine andere Speicherposition fr die Datei anzugeben. Schritt 1. Erstellen Sie einen Pfad fr die Tracedateien. Es muss ein Pfad erstellt werden, auf den alle Benutzer Schreibzugriff haben. Verwenden Sie hierzu unter Windows beispielsweise folgenden Befehl:
mkdir c:\temp\trace

Unter Linux und UNIX:


mkdir /tmp/trace chmod 777 /tmp/trace

Schritt 2. Aktualisieren Sie die Schlsselwrter der CLI-Konfiguration. Dies kann entweder (A) durch manuelles Bearbeiten der Datei db2cli.ini oder (B) durch Verwenden des Befehls UPDATE CLI CFG erfolgen. Option A: Manuelle Bearbeitung der Datei db2cli.ini. a. ffnen Sie die Datei db2cli.ini in einem einfachen Texteditor. b. Fgen Sie der Datei den folgenden Abschnitt hinzu (bzw. hngen Sie einfach die Variablen an, falls der Abschnitt COMMON bereits vorhanden ist):
[COMMON] Trace=1 TracePathName=<pfad> TraceComm=1 TraceFlush=1 TraceTimeStamp=1 TraceScript=1

Hierbei steht <pfad> beispielsweise fr C:\temp\trace unter Windows bzw. fr /tmp/trace unter Linux und UNIX. c. Speichern Sie die Datei mit mindestens einer Leerzeile am Dateiende. (Hierdurch werden einige Parsingfehler vermieden.) Option B: Verwenden von UPDATE CLI CFG-Befehlen zum Aktualisieren der Datei db2cli.ini. Geben Sie die folgenden Befehle aus:

72

Fehlerbehebung

db2 UPDATE CLI CFG FOR SECTION COMMON USING Trace 1 db2 UPDATE CLI CFG FOR SECTION COMMON USING TracePathName <pfad>

Hierbei steht <pfad> beispielsweise fr C:\temp\trace unter Windows bzw. fr /tmp/trace unter Linux und UNIX.
db2 UPDATE CLI CFG FOR SECTION COMMON USING TraceComm 1 db2 UPDATE CLI CFG FOR SECTION COMMON USING TraceFlush 1 db2 UPDATE CLI CFG FOR SECTION COMMON USING TraceTimeStamp 3

Schritt 3. berprfen Sie die Konfiguration der Datei db2cli.ini. Geben Sie den folgenden Befehl aus, um zu prfen, ob die korrekten Schlsselwrter eingerichtet wurden und bercksichtigt werden:
db2 GET CLI CFG FOR SECTION COMMON

Schritt 4. Starten Sie die Anwendung erneut. Die Datei db2cli.ini wird nur beim Start der Anwendung gelesen. Daher muss die Anwendung erneut gestartet werden, damit die nderungen wirksam werden. Wird ein Trace fr eine gespeicherte CLI-Prozedur erstellt, bedeutet dies den Neustart der DB2-Instanz. Schritt 5. Erfassen Sie den Fehler. Fhren Sie die Anwendung so lange aus, bis der Fehler generiert wird, und schlieen Sie die Anwendung danach wieder. Falls mglich, grenzen Sie das Fehlerumfeld ein, sodass zum Zeitpunkt der Traceerstellung nur diejenigen Anwendungen aktiv sind, die mit der erneuten Generierung des Fehlers in Zusammenhang stehen. Dadurch wird die Analyse des Traces deutlich vereinfacht. Schritt 6. Inaktivieren Sie die CLI-Tracefunktion. Setzen Sie im Abschnitt [COMMON] der Datei db2cli.ini das Schlsselwort Trace manuell auf den Wert 0, oder setzen Sie den folgenden Befehl ab:
db2 UPDATE CLI CFG FOR SECTION COMMON USING Trace 0

Starten Sie anschlieen alle Anwendungen erneut, die mglicherweise aktiv sind und Traces erstellen. Schritt 7. Erfassen Sie die Trace-Informationen. Die CLI-Tracedateien werden in den Pfad geschrieben, der im Schlsselwort TracePathName angegeben ist. Die Dateinamen werden im Format p<pid>t<tid>.cli generiert. Hierbei steht <pid> fr die vom Betriebssystem zugeordnete Prozess-ID und <tid> fr den numerischen Zhler, der bei 0 beginnt und jeweils fr jeden Thread vom Anwendungsprozess generiert wird. Beispiel: p1234t1.cli. Wenn Sie bei der Fehlerdiagnose mit der DB2-Untersttzungsfunktion zusammenarbeiten, mssen Sie mglicherweise alle Dateien einreichen, die im Tracepfad generiert wurden. Wenn Sie die Tracefunktion zum Diagnostizieren von Anwendungsproblemen verwenden, ist zu bedenken, dass sich die Funktion auf die Anwendungsleistung auswirkt und dass dies alle Anwendungen betrifft, nicht nur die Testanwendung. Daher sollte darauf geachtet werden, die Tracefunktion wieder zu inaktivieren, nachdem der Fehler ermittelt wurde. Zugehrige Konzepte: v CLI-Tracedateien auf Seite 71 v CLI/ODBC/JDBC trace facility in Call Level Interface Guide and Reference, Volume 1
Kapitel 4. Tools fr die Fehlerbehebung

73

Zugehrige Referenzen: v CLI/ODBC configuration keywords listing by category in Call Level Interface Guide and Reference, Volume 1

Interpretieren von Eingabe- und Ausgabeparametern in CLI-Tracedateien


Wie alle anderen blichen Funktionen haben auch die DB2 CLI-Funktionen Eingabe- und Ausgabeparameter. In einem DB2 CLI-Trace werden diese Eingabe- und Ausgabeparameter angezeigt und liefern detaillierte Informationen darber, wie die einzelnen Anwendungen jeweils eine bestimmte CLI-API aufrufen. Die Eingabe- und Ausgabeparameter der im CLI-Trace angezeigten CLI-Funktionen knnen jeweils mit der Definition der entsprechenden CLI-Funktion im Abschnitt mit der CLI-Referenz der betreffenden Dokumentation verglichen werden. Das folgende Beispiel zeigt ein Snippet einer CLI-Tracedatei:
SQLConnect( hDbc=0:1, szDSN="sample", cbDSN=-3, szUID="", cbUID=-3, szAuthStr="", cbAuthStr=-3 ) ---> Time elapsed - +6.960000E-004 seconds SQLRETURN SQLConnect SQLHDBC SQLCHAR SQLSMALLINT SQLCHAR SQLSMALLINT SQLCHAR SQLSMALLINT ( ConnectionHandle, *FAR ServerName, NameLength1, *FAR UserName, NameLength2, *FAR Authentication, NameLength3); /* /* /* /* /* /* /* hdbc */ szDSN */ cbDSN */ szUID */ cbUID */ szAuthStr */ cbAuthStr */

Der erste Aufruf an die CLI-Funktion zeigt die Eingabeparameter und die ihnen zugeordneten Werte (wie zutreffend). Wenn CLI-Funktionen eine Rckgabe liefern, zeigen sie die resultierenden Ausgabeparameter. Beispiel:
SQLAllocStmt( phStmt=1:1 ) <--- SQL_SUCCESS Time elapsed - +4.444000E-003 seconds

In diesem Fall gibt die CLI-Funktion SQLAllocStmt() den Ausgabeparameter phStmt mit dem Wert 1:1 (Verbindungskennung 1, Anweisungskennung 1) zurck. Zugehrige Konzepte: v CLI and JDBC trace files in Call Level Interface Guide and Reference, Volume 1 v CLI-Tracedateien auf Seite 71 Zugehrige Referenzen: v CLI and ODBC function summary in Call Level Interface Guide and Reference, Volume 2

Analysieren von dynamischem SQL in CLI-Traces


Die DB2 CLI-Traces zeigen ebenfalls, wie dynamisches SQL ausgefhrt wird, und zwar anhand der Deklaration und Verwendung von Parametermarken in den Anweisungen SQLPrepare() und SQLBindParameter(). Dadurch haben Sie die Mglichkeit, whrend der Laufzeit zu ermitteln, welche SQL-Anweisungen ausgefhrt werden.

74

Fehlerbehebung

Der folgende Traceeintrag zeigt die Vorbereitung der SQL-Anweisung (? stellt eine Parametermarke dar):
SQLPrepare( hStmt=1:1, pszSqlStr= "select * from employee where empno = ?", cbSqlStr=-3 ) ---> Time elapsed - +1.648000E-003 seconds ( StmtOut="select * from employee where empno = ?" ) SQLPrepare( ) <--- SQL_SUCCESS Time elapsed - +5.929000E-003 seconds

Der folgende Traceeintrag zeigt das Binden der Parametermarke als Zeichensatz (CHAR) mit einer Maximallnge von 7:
SQLBindParameter( hStmt=1:1, iPar=1, fParamType=SQL_PARAM_INPUT, fCType=SQL_C_CHAR, fSQLType=SQL_CHAR, cbColDef=7, ibScale=0, rgbValue=&00854f28, cbValueMax=7, pcbValue=&00858534 ) ---> Time elapsed - +1.348000E-003 seconds SQLBindParameter( ) <--- SQL_SUCCESS Time elapsed - +7.607000E-003 seconds

Die dynamische SQL-Anweisung wird nun ausgefhrt. Mit rbgValue=000010 wird der Wert angegeben, durch den die Parametermarke whrend der Laufzeit von der Anwendung ersetzt wurde:
SQLExecute( hStmt=1:1 ) ---> Time elapsed - +1.317000E-003 seconds ( iPar=1, fCType=SQL_C_CHAR, rgbValue="000010" - X"303030303130", pcbValue=6, piIndicatorPtr=6 ) sqlccsend( ulBytes - 384 ) sqlccsend( Handle - 14437216 ) sqlccsend( ) - rc - 0, time elapsed - +1.915000E-003 sqlccrecv( ) sqlccrecv( ulBytes - 1053 ) - rc - 0, time elapsed - +8.808000E-003 SQLExecute( ) <--- SQL_SUCCESS Time elapsed - +2.213300E-002 seconds

Zugehrige Konzepte: v CLI-Tracedateien auf Seite 71

Interpretieren von Zeitdaten in CLI-Traces


Es gibt verschiedene Mglichkeiten, um Zeitdaten aus einem DB2 CLI-Trace zusammenzustellen. Ein CLI-Trace erfasst standardmig die Zeit, die in der Anwendung verbracht wurde, seit die CLI-API in dem betreffenden Thread das letzte Mal aufgerufen wurde. Neben der in DB2 verbrachten Zeit enthalten die Daten auch die Netzbertragungszeit fr bertragungen zwischen dem Client und dem Server. Beispiel:
SQLAllocStmt( hDbc=0:1, phStmt=&0012ee48 ) ---> Time elapsed - +3.964187E+000 seconds

(Dieser Zeitwert gibt die Zeit an, die seit dem letzten CLI-API-Aufruf in der Anwendung verbracht wurde.)
SQLAllocStmt( phStmt=1:1 ) <--- SQL_SUCCESS Time elapsed - +4.444000E-003 seconds

(Seit Abschluss der Funktion gibt dieser Zeitwert die in DB2 verbrachte Zeit an, einschlielich der Netzbertragungszeit.) Eine andere Mglichkeit zur Erfassung von Zeitdaten ist die Verwendung des CLISchlsselworts TraceTimeStamp. Mit Hilfe dieses Schlsselworts wird fr jeden

Kapitel 4. Tools fr die Fehlerbehebung

75

Aufruf und jedes Ergebnis der DB2 CLI-API eine Zeitmarke erstellt. Das Schlsselwort verfgt ber 3 Anzeigeoptionen mit oder ohne ISO-Zeitmarken und/oder Prozessortaktimpulsen. Dies kann von groem Nutzen sein, wenn Sie mit zeitbezogenen Problemen wie beispielsweise Funktionsfolgefehlern (CLI0125E) zu tun haben. Dies kann ebenfalls ntzlich sein, wenn Sie mit Multithreading-Anwendungen arbeiten und versuchen zu ermitteln, welches Ereignis zuerst auftrat. Zugehrige Konzepte: v CLI and JDBC trace files in Call Level Interface Guide and Reference, Volume 1 v CLI-Tracedateien auf Seite 71 v CLI/ODBC/JDBC trace facility in Call Level Interface Guide and Reference, Volume 1 Zugehrige Referenzen: v TraceTimestamp CLI/ODBC configuration keyword in Call Level Interface Guide and Reference, Volume 1

Interpretieren von unbekannten Werten in CLI-Traces


Es kann sein, dass eine DB2 CLI-Tracefunktion einen unbekannten Wert als Wert fr einen Eingabeparameter in einem CLI-Trace zurckgibt. Dies kann vorkommen, wenn der DB2 CLI-Treiber fr den betreffenden Eingabeparameter nach einem bestimmten Wert sucht, die Anwendung aber einen anderen Wert bereitstellt. Dies kann beispielsweise der Fall sein, wenn Sie veraltete Definitionen von CLI-Funktionen befolgen oder CLI-Funktionen verwenden, die nicht weiter untersttzt werden. Es kann auerdem sein, dass eine CLI-Funktion einen genderten Optionswert (Option value changed) oder einen Rckkehrcode fr den Schlsselsatzparser (Keyset Parser Return Code) zurckgibt. Dies geschieht, wenn der Schlsselsatzcursor eine Nachricht anzeigt, beispielsweise dann, wenn fr den Cursor aus einem bestimmten Grund ein Downgrade auf einen statischen Cursor durchfhrt wird.
SQLExecDirect( hStmt=1:1, pszSqlStr="select * from org", cbSqlStr=-3 ) ---> Time elapsed - +5.000000E-002 seconds ( StmtOut="select * from org" ) ( COMMIT=0 ) ( StmtOut=" SELECT A.TABSCHEMA, ...... ) ( StmtOut=" SELECT A.TABSCHEMA, ...... ) ( Keyset Parser Return Code=1100 ) SQLExecDirect( ) <--- SQL_SUCCESS_WITH_INFO Time elapsed - +1.06E+001 seconds

Im obigen CLI-Trace gibt der Schlsselsatzparser den Rckkehrcode 1100 an, der bedeutet, dass fr die Tabelle kein eindeutiger Index oder Primrschlssel vorhanden ist und daher kein Schlsselsatzcursor erstellt werden konnte. Diese Rckkehrcodes werden nicht extern bereitgestellt, sodass Sie an dieser Stelle die DB2-Untersttzungsfunktion kontaktieren mssten, wenn Sie weitere Informationen zur Bedeutung des Rckkehrcodes haben wollten. Das Aufrufen von SQLError oder SQLDiagRec gibt an, dass der Cursortyp gendert wurde. Die Anwendung sollte in diesem Fall den Cursortyp und den gemeinsamen Zugriff abfragen, um zu ermitteln, welches Attribut gendert wurde.

76

Fehlerbehebung

Zugehrige Konzepte: v CLI and JDBC trace files in Call Level Interface Guide and Reference, Volume 1 v CLI-Tracedateien auf Seite 71 v CLI/ODBC/JDBC trace facility in Call Level Interface Guide and Reference, Volume 1

Interpretieren der CLI-Traceausgabe fr Multithread-Anwendungen


Mit der CLI-Tracefunktion knnen Traces fr Multithread-Anwendungen durchgefhrt werden. Hierfr wird am besten das CLI-Schlsselwort TracePathName verwendet. Auf diese Weise werden Tracedateien mit dem Namen p<pid>t<tid>.cli erstellt, wobei <tid> die Thread-ID der Anwendung ist. Die entsprechende Thread-ID finden Sie im CLI-Trace-Header:
[ Process: 3500, Thread: 728 ] [ Date & Time: 02/17/2006 04:28:02.238015 ] [ Product: QDB2/NT DB2 v9.1.0.190 ] ...

Sie knnen die Traceausgabe fr eine Multithreading-Anwendung auch in eine Datei schreiben lassen. Verwenden Sie hierzu das CLI-Schlsselwort TraceFileName. Auf diese Weise wird eine Datei Ihrer Wahl generiert, die unter Umstnden jedoch mhsam zu lesen ist, da bestimmte APIs in einem Thread gleichzeitig mit einer API in einem anderen Thread ausgefhrt werden knnen, was beim Prfen der Traceausgabe verwirrend sein kann. Es wird generell empfohlen, TraceTimeStamp einzuschalten, um die tatschliche Reihenfolge der Ereignisse ermitteln zu knnen, indem die Uhrzeit geprft wird, zu der eine betreffende API ausgefhrt wurde. Dies kann besonders bei der Untersuchung von Problemen ntzlich sein, die darauf zurckzufhren sind, dass ein Thread einen Fehler in einem anderen Thread ausgelst hat (beispielweise CLI0125E - Funktionsfolgefehler). Zugehrige Konzepte: v CLI and JDBC trace files in Call Level Interface Guide and Reference, Volume 1 v CLI-Tracedateien auf Seite 71 v CLI/ODBC/JDBC trace facility in Call Level Interface Guide and Reference, Volume 1

Plattformspezifische Tools Diagnosetools (Windows)


Die folgenden Diagnosetools stehen unter den Betriebssystemen Windows 2000 und Windows XP zur Verfgung: Ereignisprotokoll, Systemmonitor und andere Verwaltungstools Der Ordner Verwaltung stellt eine Reihe von Diagnosemglichkeiten bereit, zu denen der Zugriff auf das Ereignisprotokoll und der Zugriff auf Systemleistungsinformationen gehren. Task-Manager Der Task-Manager zeigt alle auf dem Windows-Server aktiven Prozesse zusammen mit Informationen zur Speicherbelegung an.
Kapitel 4. Tools fr die Fehlerbehebung

77

Verwenden Sie dieses Tool, um zu ermitteln, welche DB2-Prozesse aktiv sind, und um Leistungsprobleme zu diagnostizieren. Mit Hilfe dieses Tools knnen Sie die Speichernutzung, die Speichergrenzen, den verwendeten Auslagerungsspeicher und den Speicherverlust fr ein Prozess feststellen. Zum ffnen des Task-Managers drcken Sie die Tasten Strg + Alt + Entf, und klicken Sie in den verfgbaren Optionen Task-Manager an. Dr. Watson Das Dienstprogramm Dr. Watson wird aufgerufen, wenn ein allgemeiner Schutzfehler (GPF - General Protection Fault) auftritt. Es protokolliert Daten, die bei der Diagnose eines Problems behilflich sein knnen, und speichert diese Informationen in einer Datei. Sie mssen dieses Dienstprogramm durch Eingabe des Befehls drwatson in die Eingabeaufforderung starten. Mit DB2 bereitgestellte Tools DB2 liefert Tools fr Verwaltung und Entwicklung, die Ihnen bei der Bestimmung von DB2-Problemen helfen knnen, wie beispielsweise die Protokolle mit Benachrichtigungen fr die Systemverwaltung. ODBC- und CLI-Tracefunktionen CLI-Tracefunktionen helfen bei der Ermittlung von Fehlern in CLI- und ODBC-Anwendungen. Zugehrige Konzepte: v Diagnosetools (Linux und UNIX) auf Seite 78 v Informationen von First Failure Data Capture (FFDC) auf Seite 3

Diagnosetools (Linux und UNIX)


In diesem Abschnitt werden einige wesentliche Befehle zur Fehlerbehebung und zur Leistungsberwachung auf Linux- und UNIX-Plattformen beschrieben. Zum Anzeigen von Details zu diesen Befehlen setzen Sie dem Befehlsnamen den Befehl man in der Befehlszeile voran. Verwenden Sie diese Befehle zum Erfassen und Verarbeiten von Daten, die bei der Ermittlung der Ursache eines Fehlers auf Ihrem System helfen knnen. Sobald die Daten erfasst sind, knnen sie von einer Person untersucht werden, die mit dem Problem vertraut ist, oder auf Anfrage der DB2Untersttzungsfunktion zur Verfgung gestellt werden.

Befehle zur Fehlerbehebung (AIX)


Die folgenden AIX-Systembefehle sind zur DB2-Fehlerbehebung ntzlich: errpt Der Befehl errpt meldet Systemfehler, wie zum Beispiel Hardwarefehler und Netzwerkausflle. v Verwenden Sie den Befehl errpt, um eine bersicht anzuzeigen, die eine Zeile pro Fehler enthlt. v Verwenden Sie den Befehl errpt -a, um eine detailliertere Anzeige aufzurufen, die eine Seite pro Fehler bereitstellt. v Verwenden Sie den Befehl errpt -a -j 1581762B, um Fehler mit der Fehlernummer 1581762B anzuzeigen. v Geben Sie den Befehl errpt | grep SYSVMM ein, um zu ermitteln, ob es in der Vergangenheit Situationen gab, in denen kein Paging-Bereich mehr zur Verfgung stand.

78

Fehlerbehebung

v Wenn Sie herausfinden wollen, ob es Probleme mit der Token-Ring-Karte oder der Festplatte gibt, prfen Sie die Ausgabe des Befehls errpt auf die Zeichenfolgen disk und tr0. lsps lsattr Der Befehl lsps -a berwacht die Verwendung von Paging-Bereich und zeigt Informationen dazu an. Dieser Befehl zeigt verschiedene Parameter des Betriebssystems an. Verwenden Sie zum Beispiel den folgenden Befehl, um die Gre des Realspeichers auf dem Knoten zu ermitteln:
lsattr -l sys0 -E

xmperf Fr AIX-Systeme mit Motif startet dieser Befehl einen grafischen Monitor, der Leistungsdaten zum jeweiligen System erfasst und anzeigt. Der Monitor zeigt dreidimensionale Diagramme fr jeden Knoten in einem Fenster an und eignet sich gut zur berwachung auf hoher Ebene. Wenn jedoch das Aktivittsvolumen niedrig ist, hat die Ausgabe dieses Monitors nur begrenzten Wert. spmon Werden mehrere Knoten auf RS/6000 SP-Systemen verwendet, mssen Sie unter Umstnden prfen, ob der Hochleistungsswitch (HPS) auf allen Workstations aktiv ist. Zum Anzeigen des Status aller Knoten verwenden Sie von der Steuerworkstation aus einen der folgenden Befehle: v spmon -d fr ASCII-Ausgabe v spmon -g fr eine grafische Benutzerschnittstelle Alternativ knnen Sie den Befehl netstat -i auf einer Knotenworkstation verwenden, um zu prfen, ob der Switch inaktiv ist.Wenn der Switch inaktiv ist, steht neben dem Knotennamen ein Stern (*). Beispiel:
css0* 65520 <Link>0.0.0.0.0.0

Der Stern wird nicht angezeigt, wenn der Switch aktiv ist.

Befehle zur Fehlerbehebung (Linux und UNIX)


Die folgenden Befehle gelten fr alle Linux- und UNIX-Systeme, einschlielich AIX, sofern nicht anders angegeben. df Mit dem Befehl df knnen Sie prfen, ob Dateisysteme voll sind. v Geben Sie den Befehl df ein, um anzuzeigen, wie viel freier Speicher in allen Dateisystemen (einschlielich angehngter Dateisysteme) verfgbar ist. v Geben Sie den Befehl df | grep dev ein, um zu prfen, wie viel freier Speicherbereich in allen Dateisystemen vorhanden ist, deren Namen die Zeichenfolge dev enthalten. v Geben Sie den Befehl df /home ein, um zu prfen, wie viel Speicherbereich in Ihrem Ausgangsdateisystem verfgbar ist. v Geben Sie den Befehl df /tmp ein, um zu prfen, wie viel freier Speicherbereich im Dateisystem tmp verfgbar ist. v Um zu ermitteln, ob auf der Maschine ausreichend freier Speicherplatz verfgbar ist, prfen Sie die Ausgabe der folgenden Befehle: df /usr , df /var , df /tmp und df /home Dieser Befehl dient zur Traceerstellung fr Systemaufrufe in mindestens einem Prozess.

truss

Kapitel 4. Tools fr die Fehlerbehebung

79

pstack Der Befehl /usr/proc/bin/pstack steht unter Solaris 2.5.1 oder einer spteren Version zur Verfgung und zeigt Stack-Traceback-Informationen an.Das Verzeichnis /usr/proc/bin enthlt weitere Tools zur Behebung von Fehlern in Prozessen, die blockiert zu sein scheinen.

Tools zur Leistungsberwachung


Die folgenden Tools stehen zur berwachung der Leistung Ihres Systems zur Verfgung: vmstat Dieser Befehl hilft bei der Feststellung, ob ein Prozess blockiert ist oder lediglich viel Zeit bentigt.Sie knnen die Paging-Rate berwachen, die sich in den Spalten pi (page in) und po (page out) ablesen lsst. Andere wichtige Spalten sind die Gre des zugeordneten virtuellen Speichers (avm - allocated virtual storage) und die Gre des freien virtuellen Speichers (fre - free virtual storage). iostat Dieser Befehl dient zur berwachung von E/A-Aktivitten. Sie knnen anhand der Lese- und Schreibgeschwindigkeit die Zeit abschtzen, die fr bestimmte SQL-Operationen bentigt wird (falls diese die einzige Aktivitt auf dem System sind). Mit Hilfe dieses Befehls knnen Sie den Netzwerkverkehr auf jedem Knoten und die Anzahl angetroffener Fehlerpakete ermitteln. Er leistet ntzliche Dienste bei der Isolierung von Netzwerkproblemen. Datei system Die Datei /etc/system ist in der Solaris-Betriebsumgebung verfgbar und enthlt Definitionen fr Kernelkonfigurationsgrenzwerte, wie zum Beispiel die maximale Anzahl von Benutzern, die gleichzeitig auf dem System zuzulassen sind, die maximale Anzahl von Prozessen pro Benutzer sowie die Grenzwerte der Interprozesskommunikation (Inter-Process Communication, IPC) fr Gre und Anzahl von Ressourcen. Diese Begrenzungen sind wichtig, weil sie sich auf die DB2-Leistung auf einer Maschine mit dem Solaris-Betriebssystem auswirken. Zugehrige Konzepte: v Informationen von First Failure Data Capture (FFDC) auf Seite 3 v Systemkerndateien (UNIX) auf Seite 18 Zugehrige Referenzen: v Diagnosetools (Windows) auf Seite 77

netstat

80

Fehlerbehebung

Kapitel 5. Durchsuchen von Wissensbasen


Effektives Suchen nach bekannten Problemen
Es steht eine Vielzahl von Ressourcen, in denen bekannte Probleme beschrieben werden, zur Verfgung, wie beispielsweise DB2-APARs, Whitepapers, Redbooks, technische Hinweise (Technotes) und Handbcher. Das effektive Durchsuchen dieser (und anderer) Ressourcen ist wichtig, um schnell festzustellen, ob fr das aufgetretene Problem bereits eine Lsung vorhanden ist. Bevor Sie mit der Suche beginnen, sollten Sie eine konkrete Vorstellung von der Problemsituation haben. Wenn Sie sich ein klares Bild von der Problemsituation verschafft haben, stellen Sie eine Liste mit Suchbegriffen zusammen, die die Chance, vorhandene Lsungen zu finden, vergrern. Nachfolgend sind einige Tipps aufgefhrt: 1. Verwenden Sie mehrere Wrter fr die Suche. Je zutreffender die verwendeten Suchbegriffe sind, desto besser sind die Suchergebnisse. 2. Beginnen Sie mit speziellen Ergebnissen und erweitern Sie diese bei Bedarf. Reichen beispielsweise die Ergebnisse nicht aus, entfernen Sie einige der weniger relevanten Suchbegriffe, und wiederholen Sie die Suche. Wenn Sie nicht sicher sind, welche Suchbegriffe Sie verwenden sollen, knnen Sie alternativ dazu auch eine weniger spezifische Suche mit wenigen Suchbegriffen durchfhren, die so ermittelten Ergebnisse auswerten und daraufhin eine genauere Auswahl weiterer Suchbegriffe treffen. 3. In manchen Fllen ist eine Suche nach einem bestimmten Ausdruck effektiver. Wenn Sie beispielsweise Benachrichtigungsdatei fr Systemverwaltung (inclusive Anfhrungszeichen) eingeben, erhalten Sie nur die Dokumente, die den genauen Ausdruck in der eingegebenen Reihenfolge der Wrter enthalten. (Im Gegensatz zu allen Dokumenten, die eine beliebige Kombination dieser drei Wrter enthalten.) 4. Verwenden Sie Platzhalter. Wenn ein bestimmter SQL-Fehler auftritt, suchen Sie nach SQL5005<platzhalter>, wobei platzhalter die durchsuchte Ressource angibt. Auf diese Weise erhalten Sie wahrscheinlich mehr Ergebnisse als bei der Suche nach SQL5005 oder SQL5005c. 5. In Situationen, in denen die verwendete Instanz abnormal beendet wird und Trapdateien erstellt werden, suchen Sie nach bekannten Problemen, indem Sie die ersten zwei oder drei Funktionen im Stack-Traceback der Trap- oder Kerndatei verwenden. Wenn zu viele Ergebnisse zurckgegeben werden, fgen Sie Suchbegriffe wie Trap, Abend oder Absturz hinzu. 6. Wenn Sie nach betriebssystemspezifischen Suchbegriffen suchen (z. B. Signalnummern oder Werten fr Fehlernummern), suchen Sie nach dem Konstantennamen, nicht nach dem Wert. Suchen Sie beispielsweise nach EFBIG, nicht nach der Fehlernummer 27. Erfolg versprechende Suchbegriffe enthalten hufig die folgenden Elemente: v Wrter, die den ausgefhrten Befehl beschreiben v Wrter, die die Symptome beschreiben v Token des Diagnoseprogramms

81

Zugehrige Konzepte: v Einfhrung in die Fehlerbestimmung auf Seite 1

Ressourcen zur Fehlerbestimmung


Eine breite Palette verschiedener Informationen zur Fehlerbestimmung und Fehlerbehebung steht zur Verfgung, um Sie bei der Verwendung von DB2-Datenbankprodukten zu untersttzen. DB2-Dokumentation: Informationen zur Fehlerbehebung stehen in der gesamten DB2-Informationszentrale sowie in den PDF-Bchern der DB2-Bibliothek zur Verfgung. Folgen Sie der Verzweigung Untersttzung und Fehlerbehebung in der Navigationsbaumstruktur der DB2-Informationszentrale (im linken Teilfenster des Browserfensters), um eine umfassende Liste der DB2-Dokumentationen zur Fehlerbehebung aufzurufen. DB2-Website mit technischer Untersttzung: Auf der DB2-Website mit technischer Untersttzung finden Sie Informationen zu Problemen und den mglichen Ursachen und Fehlerbehebungsmanahmen. Die Website mit technischer Untersttzung stellt Links zu den neuesten DB2-Verffentlichungen, technischen Hinweisen (Technotes), APARs (Authorized Program Analysis Reports), Fixpacks, den neuesten Listen mit internen DB2-Fehlercodes sowie weiteren Ressourcen zur Verfgung. Sie knnen diese Wissensbasis nach mglichen Lsungen fr aufgetretene Probleme durchsuchen. Rufen Sie die DB2-Website mit technischer Untersttzung unter folgender Adresse auf: http://www.ibm.com/software/data/db2/udb/support Zugehrige Konzepte: v bersicht ber technische Informationen zu DB2 auf Seite 85 v Anmerkungen zu den Release-Informationen in den Release-Informationen

82

Fehlerbehebung

Kapitel 6. Abrufen von Programmkorrekturen (Fixes)


Anwenden von Fixpacks
Ein DB2-Fixpack enthlt Aktualisierungen und Korrekturen fr Programmfehler (Authorized Program Analysis Reports oder APARs), die beim Testen durch IBM gefunden oder von Kunden gemeldet wurden. Zu jedem Fixpack gehrt ein Dokument mit dem Namen APARLIST.TXT, in dem die in dem betreffenden Fixpack enthaltenen Fehlerkorrekturen beschrieben werden. Jedes Fixpack enthlt eine Readme-Datei und einen Satz Release-Informationen: v Die Readme-Datei des Fixpacks enthlt Anweisungen zum Installieren und Deinstallieren des Fixpacks. v Die Release-Informationen erlutern die am Produkt vorgenommenen nderungen. Bevor Sie ein DB2-Produkt installieren, knnen Sie die Readme-Datei und ReleaseInformationen des Fixpacks herunterladen und lesen, indem Sie die Programmverbindung (Link) fr Downloads von Fixpacks auf der Website der DB2-Untersttzung auswhlen. Die Website der DB2-Untersttzung finden Sie unter folgender Adresse: http://www.ibm.com/software/data/db2/udb/support.html. Fixpacks sind kumulativ. Dies bedeutet, dass das neueste Fixpack fr eine bestimmte Version von DB2 alle Aktualisierungen der vorhergehenden Fixpacks fr dieselbe DB2-Version enthlt. Es wird empfohlen, die DB2-Umgebung stets auf dem Stand des aktuellen Fixpacks zu halten, um einen fehlerfreien Betrieb sicherzustellen. Es gibt zwei Arten von Fixpack-Images: v Ein Fixpack fr jedes einzelne DB2-Produkt. Dieses Fixpack kann auf eine vorhandene Installation des Produkts angewandt werden, oder es kann verwendet werden, um eine vollstndige Produktinstallation auszufhren, wenn noch keine DB2-Installation vorhanden ist. v Universal Fix Pack (nur Linux oder UNIX). Hierbei handelt es sich um ein universelles Fixpack fr Installationen, bei denen mehr als ein DB2-Produkt installiert wurde. Wurden Landessprachen installiert, ist auerdem ein eigenes Fixpack fr die Landessprache erforderlich. Das Fixpack fr die Landessprache kann nur dann angewandt werden, wenn es sich auf derselben Fixpackstufe befindet wie das installierte DB2-Produkt. Bei Anwendung eines universellen Fixpacks mssen Sie sowohl das universelle Fixpack als auch das Fixpack in der Landessprache anwenden, um die DB2-Produkte zu aktualisieren. Beim Installieren eines Fixpacks in einem Datenbanksystem mit mehreren Partitionen muss das System offline sein, und fr alle an der Instanz teilnehmenden Computer muss ein Upgrade auf dieselbe Fixpackstufe durchgefhrt werden. Voraussetzungen: Fr jedes Fixpack gelten eigene Voraussetzungen. Genauere Informationen enthlt die Readme-Datei, die zu dem betreffenden Fixpack gehrt.

83

Vorgehensweise: 1. Greifen Sie auf das neueste DB2-Fixpack zu, indem Sie die Programmverbindung (Link) fr Downloads von Fixpacks auf der Website der DB2-Untersttzung unter http://www.ibm.com/software/data/db2/udb/support.html auswhlen, und laden Sie das Fixpack herunter. Zugehrige Referenzen: v db2setup - Install DB2 command in Command Reference v installFixPack - Update installed DB2 products command in Command Reference v setup - Install DB2 command in Command Reference

84

Fehlerbehebung

Anhang A. Technische Informationen zu DB2-Datenbanken


bersicht ber technische Informationen zu DB2
Die technischen Informationen zu DB2 stehen ber die folgenden Tools und Methoden zur Verfgung: v DB2-Informationszentrale Themen Hilfe fr DB2-Tools Beispielprogramme Lernprogramme v DB2-Bcher PDF-Dateien (fr den Download verfgbar) PDF-Dateien (auf der DB2-PDF-CD) Gedruckte Bcher v Befehlszeilenhilfe Hilfe fr Befehle Hilfe fr Nachrichten v Beispielprogramme IBM stellt in regelmigen Abstnden Dokumentationsaktualisierungen zur Verfgung. Wenn Sie auf die Onlineversion der DB2-Informationszentrale unter ibm.com zugreifen, mssen Sie die Dokumentationsaktualisierungen nicht installieren, da diese Version von IBM auf dem neuesten Stand gehalten wird. Wenn Sie die DB2Informationszentrale installiert haben, sollten Sie die Dokumentationsaktualisierungen installieren. Diese Dokumentationsaktualisierungen ermglichen Ihnen, die Informationen, die Sie von der CD mit der DB2-Informationszentrale installiert oder von Passport Advantage heruntergeladen haben, auf den neuesten Stand zu bringen, sobald neue Informationen verfgbar sind. Anmerkung: Die Themen der DB2-Informationszentrale werden hufiger aktualisiert als die PDF- und Hardcopybcher. Um stets die neuesten Informationen zur Verfgung zu haben, sollten Sie die Dokumentationsaktualisierungen installieren, sobald diese verfgbar sind, oder die DB2-Informationszentrale unter ibm.com aufrufen. Darber hinaus knnen Sie auf zustzliche technische Informationen zu DB2, wie beispielsweise technische Hinweise (Technotes), White Papers und Redbooks online ber ibm.com zugreifen. Rufen Sie die Website DB2 Information Management Software - Library unter http://www.ibm.com/software/data/sw-library/ auf.

Feedback zur Dokumentation


Senden Sie uns Ihr Feedback zur DB2-Dokumentation! Wenn Sie Anregungen zur Verbesserung der DB2-Dokumentation haben, senden Sie eine E-Mail an db2docs@ca.ibm.com. Das DB2-Dokumentationsteam bearbeitete das gesamte Feedback, kann jedoch nicht im Einzelnen auf Ihre E-Mails antworten. Nennen Sie uns, wenn mglich, konkrete Beispiele, sodass wir die Problemstellung besser beurteilen knnen. Wenn Sie uns Feedback zu einem bestimmten Thema oder einer bestimmten Hilfedatei senden, geben Sie den entsprechenden Titel sowie die URL an.

85

Verwenden Sie diese E-Mail-Adresse nicht, wenn Sie sich an die DB2-Kundenuntersttzung wenden mchten. Wenn ein technisches Problem bei DB2 vorliegt, das Sie mit Hilfe der Dokumentation nicht beheben knnen, fordern Sie beim zustndigen IBM Service-Center Untersttzung an. Zugehrige Konzepte: v Funktionen der DB2-Informationszentrale in der DB2-Informationszentrale (online) v Sample files in den Beispielthemen Zugehrige Tasks: v Aufrufen der Hilfe fr Befehle ber den Befehlszeilenprozessor in Command Reference v Aufrufen der Hilfe fr Nachrichten ber den Befehlszeilenprozessor in Command Reference v Aktualisieren der auf Ihrem Computer oder Intranet-Server installierten DB2Informationszentrale auf Seite 91 Zugehrige Referenzen: v Bibliothek mit technischen Informationen zu DB2 im PDF-Format auf Seite 86

Bibliothek mit technischen Informationen zu DB2 im PDF-Format


Die folgenden Tabellen enthalten eine Beschreibung der DB2-Bibliothek, die im IBM Publications Center unter www.ibm.com/shop/publications/order zur Verfgung steht. In den Tabellen sind die Bcher, die in gedrucktem Format zur Verfgung stehen, gekennzeichnet; mglicherweise sind diese in Ihrem Land oder Ihrer Region jedoch nicht verfgbar. Diese Bcher enthalten grundlegende Informationen fr alle DB2-Benutzer. Diese Informationen sind sowohl fr Programmierer als auch fr Datenbankadministratoren geeignet und untersttzen Sie bei der Arbeit mit DB2 Connect oder anderen DB2-Produkten.
Tabelle 1. Technische Informationen zu DB2 Name Systemverwaltung: Implementierung Systemverwaltung: Konzept Administrative API Reference IBM Form SC12-3628 SC12-3630 SC10-4231 In gedrucktem Format verfgbar Ja Ja Ja Nein Ja Ja Nein

Administrative SQL Routines and SC10-4293 Views Call Level Interface Guide and Reference, Volume 1 Call Level Interface Guide and Reference, Volume 2 Command Reference SC10-4224 SC10-4225 SC10-4226

86

Fehlerbehebung

Tabelle 1. Technische Informationen zu DB2 (Forts.) Name Dienstprogramme fr das Versetzen von Daten Handbuch und Referenz Datenrecovery und hohe Verfgbarkeit Handbuch und Referenz Developing ADO.NET and OLE DB Applications Developing Embedded SQL Applications Developing SQL and External Routines Developing Java Applications Developing Perl and PHP Applications Getting Started with Database Application Development IBM Form SC12-3634 In gedrucktem Format verfgbar Ja

SC12-3631 SC10-4230 SC10-4232 SC10-4373 SC10-4233 SC10-4234 SC10-4252

Ja Ja Ja Nein Ja Nein Ja Ja

Installation und Verwaltung von GC12-3638 DB2 unter Linux und Windows Erste Schrittte Fehlernachrichten, Band 1 Fehlernachrichten, Band 2 Migration Net Search Extender Verwaltung und Benutzerhandbuch Anmerkung: Die HTML-Version dieses Dokuments wird nicht von der HTML-Dokumentations-CD installiert. Systemverwaltung: Optimierung Query Patroller Verwaltung und Benutzerhandbuch DB2-Clients - Einstieg DB2-Server - Einstieg SC12-3643 SC12-3644 GC12-3639 SH12-3054

Nein Nein Ja Ja

SC12-3629 GC12-3636 GC12-3640 GC12-3637

Ja Ja Nein Ja Ja

Spatial Extender und Geodetic SC12-3722 Data Management Feature Benutzer- und Referenzhandbuch SQL Guide SQL Reference, Volume 1 SQL Reference, Volume 2 Systemmonitor Handbuch und Referenz Fehlerbehebung SC10-4248 SC10-4249 SC10-4250 SC12-3633 GC12-3635

Ja Ja Ja Ja Nein Nein Ja

Lernprogramm fr Visual Explain SC12-3754 Neue Funktionen SC12-3645

Anhang A. Technische Informationen zu DB2-Datenbanken

87

Tabelle 1. Technische Informationen zu DB2 (Forts.) Name XML Extender Verwaltung und Programmierung XML-Handbuch XQuery Reference IBM Form SC12-3723 SC12-3632 SC18-9796 In gedrucktem Format verfgbar Ja Ja Ja

Tabelle 2. Technische Informationen zu DB2 Connect Name DB2 Connect Benutzerhandbuch DB2 Connect Personal Edition Einstieg DB2 Connect-Server - Einstieg IBM Form SC12-3642 GC12-3725 GC12-3641 In gedrucktem Format verfgbar Ja Ja Ja

Tabelle 3. Technische Informationen zu WebSphere Information Integration Name WebSphere Information Integration: Administration Guide for Federated Systems IBM Form SC19-1020 In gedrucktem Format verfgbar Ja

WebSphere Information IntegraSC19-1018 tion: ASNCLP Program Reference for Replication and Event Publishing WebSphere Information Integration: Konfiguration fderierter Datenquellen WebSphere Information Integration: SQL Replication Handbuch und Referenz SC12-3777

Ja

Nein

SC12-3782

Ja

Anmerkung: Die DB2-Release-Informationen enthalten zustzliche Informationen fr das verwendete Produktrelease und die verwendete Fixpackstufe. Weitere Informationen hierzu finden Sie mit Hilfe der zugehrigen Links. Zugehrige Konzepte: v bersicht ber technische Informationen zu DB2 auf Seite 85 v Anmerkungen zu den Release-Informationen in den Release-Informationen Zugehrige Tasks: v Bestellen gedruckter DB2-Bcher auf Seite 89

88

Fehlerbehebung

Bestellen gedruckter DB2-Bcher


Gedruckte DB2-Bcher knnen Sie in den meisten Lndern oder Regionen online bestellen. Das Bestellen gedruckter DB2-Bcher ist stets ber den zustndigen IBM Ansprechpartner mglich. Beachten Sie hierbei bitte, dass einige Softcopybcher auf der CD mit der DB2-PDF-Dokumentation nicht in gedruckter Form verfgbar sind. So sind beispielsweise die beiden Bnde des Handbuchs DB2 Fehlernachrichten nicht in gedruckter Form erhltlich. Gedruckte Versionen vieler DB2-Bcher, die auf der CD mit der DB2-PDF-Dokumentation verfgbar sind, knnen gegen eine Gebhr bei IBM bestellt werden. Abhngig vom jeweiligen Land bzw. der jeweiligen Region knnen Sie Bcher mglicherweise online ber das IBM Publications Center bestellen. Ist im jeweiligen Land bzw. der jeweiligen Region keine Onlinebestellung mglich, knnen Sie gedruckte DB2-Bcher stets ber den zustndigen IBM Ansprechpartner bestellen. Nicht alle Bcher, die auf der CD mit der DB2-PDF-Dokumentation verfgbar sind, knnen in gedruckter Form bestellt werden. Anmerkung: ber http://publib.boulder.ibm.com/infocenter/db2help/ haben Sie Zugriff auf die DB2-Informationszentrale, wo Sie die neueste und umfassendste DB2-Dokumentation finden. Vorgehensweise: Gehen Sie wie folgt vor, um gedruckte DB2-Bcher zu bestellen: v Informationen dazu, ob in Ihrem Land oder Ihrer Region die Bestellung von gedruckten DB2-Bchern mglich ist, finden Sie auf der Website mit dem IBM Publications Center unter http://www.ibm.com/shop/publications/order. Whlen Sie ein Land, eine Region oder eine Sprache aus, um die Bestellinformationen fr Verffentlichungen aufzurufen, und fhren Sie dann die entsprechenden Schritte des Bestellverfahrens fr Ihr Land bzw. Ihre Region aus. v Gehen Sie wie folgt vor, um gedruckte DB2-Bcher beim zustndigen IBM Ansprechpartner zu bestellen: Kontaktinformationen zum zustndigen Ansprechpartner finden Sie auf einer der folgenden Websites: - IBM Verzeichnis weltweiter Kontakte unter www.ibm.com/planetwide. - Website mit IBM Verffentlichungen unter http://www.ibm.com/shop/ publications/order. Whlen Sie das gewnschte Land, die gewnschte Region oder die gewnschte Sprache aus, um auf die entsprechende Homepage mit Verffentlichungen Ihres Landes bzw. Ihrer Region zuzugreifen. Folgen Sie auf dieser Seite dem Link fr Informationen zu dieser Site (About this Site). Geben Sie bei Ihrem Anruf an, dass Sie eine DB2-Verffentlichung bestellen mchten. Teilen Sie dem zustndigen Ansprechpartner die Titel und Formularnummern der Bcher mit, die Sie bestellen mchten . Zugehrige Konzepte: v bersicht ber technische Informationen zu DB2 auf Seite 85 Zugehrige Referenzen: v Bibliothek mit technischen Informationen zu DB2 im PDF-Format auf Seite 86

Anhang A. Technische Informationen zu DB2-Datenbanken

89

Anzeigen der Hilfe fr den SQL-Status ber den Befehlszeilenprozessor


DB2 gibt fr Bedingungen, die auf Grund einer SQL-Anweisung generiert werden knnen, einen SQLSTATE-Wert zurck. Die SQLSTATE-Hilfe erlutert die Bedeutung der SQL-Statuswerte und der SQL-Statusklassencodes. Vorgehensweise: Zum Aufrufen der Hilfe fr SQL-Statuswerte mssen Sie den Befehlszeilenprozessor ffnen und Folgendes eingeben:
? sqlstate oder ? klassencode

Hierbei steht sqlstate fr einen gltigen fnfstelligen SQL-Statuswert und klassencode fr die ersten beiden Ziffern dieses Statuswertes. So kann beispielsweise durch die Eingabe von ? 08003 Hilfe fr den SQL-Statuswert 08003 angezeigt werden, durch die Eingabe von ? 08 Hilfe fr den Klassencode 08. Zugehrige Tasks: v Aufrufen der Hilfe fr Befehle ber den Befehlszeilenprozessor in Command Reference v Aufrufen der Hilfe fr Nachrichten ber den Befehlszeilenprozessor in Command Reference

Zugriff auf verschiedene Versionen der DB2-Informationszentrale


Fr Themen aus DB2 Version 9 lautet die URL der DB2-Informationszentrale http://publib.boulder.ibm.com/infocenter/db2luw/v9/. Fr Themen aus DB2 Version 8 lautet die URL der Informationszentrale (Version 8, Information - Untersttzung) http://publib.boulder.ibm.com/infocenter/db2luw/ v8/. Zugehrige Tasks: v Einrichten des Zugriffs auf DB2-Kontexthilfe und -Dokumentation in Systemverwaltung: Implementierung

Anzeigen von Themen in der gewnschten Sprache in der DB2Informationszentrale


In der DB2-Informationszentrale werden Themen, wenn mglich, in der Sprache angezeigt, die in den Vorgaben Ihres Browsers angegeben ist. Falls ein Thema nicht in die gewnschte Sprache bersetzt wurde, wird es in der DB2-Informationszentrale in Englisch angezeigt. Vorgehensweise: Um Themen in der gewnschten Sprache im Browser Internet Explorer anzuzeigen, gehen Sie wie folgt vor:

90

Fehlerbehebung

1. Klicken Sie im Internet Explorer Extras > Internetoptionen... > Sprachen... an. Das Fenster Spracheinstellung wird geffnet. 2. Stellen Sie sicher, dass die gewnschte Sprache als erster Eintrag in der Liste angegeben ist. v Klicken Sie den Knopf Hinzufgen... an, um eine neue Sprache zur Liste hinzuzufgen. Anmerkung: Das Hinzufgen einer Sprache bedeutet nicht zwangslufig, dass der Computer ber die erforderlichen Schriftarten verfgt, um die Themen in der gewnschten Sprache anzuzeigen. v Um eine Sprache an den Anfang der Liste zu verschieben, whlen Sie zunchst die gewnschte Sprache und anschlieend den Knopf Nach oben aus, bis die Sprache an erster Stelle in der Liste steht. 3. Lschen Sie den Inhalt des Browser-Cache, und aktualisieren Sie anschlieend die Seite, um die DB2-Informationszentrale in der gewnschten Sprache anzuzeigen. Um Themen in der gewnschten Sprache in einem Firefox- oder Mozilla-Browser anzuzeigen, gehen Sie wie folgt vor: 1. Whlen Sie Tools > Options > Languages aus. Die Anzeige fr die Auswahl der Sprache wird im Fenster mit den Einstellungen aufgerufen. 2. Stellen Sie sicher, dass die gewnschte Sprache als erster Eintrag in der Liste angegeben ist. v Wenn Sie eine neue Sprache zur Liste hinzufgen mchten, klicken Sie den Knopf Add... an, um eine Sprache im entsprechenden Fenster auszuwhlen. v Um eine Sprache an den Anfang der Liste zu verschieben, whlen Sie zunchst die gewnschte Sprache und anschlieend den Knopf Move Up aus, bis die Sprache an erster Stelle in der Liste steht. 3. Lschen Sie den Inhalt des Browser-Cache, und aktualisieren Sie anschlieend die Seite, um die DB2-Informationszentrale in der gewnschten Sprache anzuzeigen. Bei einigen Kombinationen aus Browser und Betriebssystem mssen Sie mglicherweise auch die Lndereinstellungen des Betriebssystems in die gewnschte Locale und Sprache ndern. Zugehrige Konzepte: v bersicht ber technische Informationen zu DB2 auf Seite 85

Aktualisieren der auf Ihrem Computer oder Intranet-Server installierten DB2-Informationszentrale


Wenn Sie eine lokal installierte DB2-Informationszentrale verwenden, stehen ggf. Aktualisierungen zum Download bereit. Der Wert fr die 'letzte Aktualisierung' am Ende der meisten Themen gibt den aktuellen Stand fr das jeweilige Thema an. Um festzustellen, ob fr die gesamte DB2-Informationszentrale eine Aktualisierung verfgbar ist, suchen Sie nach dem Wert fr die 'letzte Aktualisierung' auf der Homepage der Informationszentrale. Vergleichen Sie den Wert auf Ihrer lokal installierten Homepage mit dem Datum der neuesten fr den Download verfgbaren Aktualisierung unter http://www.ibm.com/software/data/db2/udb/support/

Anhang A. Technische Informationen zu DB2-Datenbanken

91

icupdate.html. Sie knnen dann die lokal installierte Informationszentrale aktualisieren, falls eine neuere fr den Download verfgbare Aktualisierung zur Verfgung steht. Zur Aktualisierung der lokal installierten DB2-Informationszentrale sind die folgenden Schritte erforderlich: 1. Stoppen Sie die DB2-Informationszentrale auf Ihrem Computer, und starten Sie die Informationszentrale im Standalone-Modus erneut. Durch die Ausfhrung der Informationszentrale im Standalone-Modus wird verhindert, dass andere Benutzer in Ihrem Netz auf die Informationszentrale zugreifen, und ermglicht Ihnen das Herunterladen und Anwenden von Aktualisierungen. 2. Verwenden Sie die Aktualisierungsfunktion, um festzustellen, ob Aktualisierungspakete von IBM verfgbar sind. Anmerkung: Darber hinaus sind Aktualisierungen auf CD verfgbar. Einzelheiten zur Konfiguration Ihrer Informationszentrale fr die Installation von Aktualisierungen von einer CD finden Sie unter den zugehrigen Links. Ist dies der Fall, verwenden Sie die Aktualisierungsfunktion, um die Pakete herunterzuladen. (Die Aktualisierungsfunktion ist nur im Standalone-Modus verfgbar.) 3. Stoppen Sie die im Standalone-Modus gestartete Informationszentrale, und starten Sie den Service der DB2-Informationszentrale auf Ihrem Computer erneut. Vorgehensweise: Gehen Sie wie folgt vor, um die auf Ihrem Computer bzw. Intranet-Server installierte DB2-Informationszentrale zu aktualisieren: 1. Stoppen Sie den Service der DB2-Informationszentrale. v Unter Windows: Klicken Sie Start Einstellungen Systemsteuerung Verwaltung Dienste an. Klicken Sie mit der rechten Maustaste die DB2Informationszentrale an, und whlen Sie Stoppen aus. v Unter Linux: Geben Sie den folgenden Befehl ein:
/etc/init.d/db2icdv9 stop

2. Starten Sie die Informationszentrale im Standalone-Modus. v Unter Windows: a. ffnen Sie ein Befehlsfenster. b. Navigieren Sie zu dem Pfad, in dem die Informationszentrale installiert ist. Standardmig ist die DB2-Informationszentrale im Verzeichnis C:\Programme\IBM\DB2 Information Center\Version 9 installiert. c. Fhren Sie die Datei help_start.bat aus, und verwenden Sie dabei den vollstndig qualifizierten Pfad fr die DB2-Informationszentrale:
<verzeichnis_der_db2_informationszentrale>\doc\bin\help_start.bat

v Unter Linux: a. Navigieren Sie zu dem Pfad, in dem die Informationszentrale installiert ist. Standardmig ist die DB2-Informationszentrale im Verzeichnis /opt/ ibm/db2ic/V9 installiert. b. Fhren Sie das Script help_start aus, und verwenden Sie dabei den vollstndig qualifizierten Pfad fr die DB2-Informationszentrale:
<verzeichnis_der_db2_informationszentrale>/doc/bin/help_start

92

Fehlerbehebung

Der standardmig auf dem System verwendete Web-Browser wird aufgerufen und zeigt die Standalone-Informationszentrale an. 3. Klicken Sie den Aktualisierungsknopf ( ) an. Klicken Sie im rechten Fenster der Informationszentrale den Knopf fr die Suche nach Aktualisierungen an. Eine Liste der Aktualisierungen fr die vorhandene Dokumentation wird angezeigt. 4. Whlen Sie zum Initiieren des Downloadprozesses die gewnschten Aktualisierungen aus, und klicken Sie anschlieend den Knopf fr die Installation der Aktualisierungen an. 5. Klicken Sie nach Abschluss des Download- und Installationsprozesses Fertig stellen an. 6. Stoppen Sie die im Standalone-Modus gestartete Informationszentrale. v Unter Windows: Fhren Sie die Datei help_end.bat aus, und verwenden Sie dabei den vollstndig qualifizierten Pfad fr die DB2-Informationszentrale:
<verzeichnis_der_db2_informationszentrale>\doc\bin\help_end.bat

Anmerkung: Die Stapeldatei help_end enthlt die Befehle, die erforderlich sind, um die Prozesse, die mit der Stapeldatei help_start gestartet wurden, ordnungsgem zu beenden. Verwenden Sie nicht die Tastenkombination Strg+C oder eine andere Methode, um help_start.bat zu beenden. v Unter Linux: Fhren Sie das Script help_end aus, und verwenden Sie dabei den vollstndig qualifizierten Pfad fr die DB2-Informationszentrale:
<verzeichnis_der_db2_informationszentrale>/doc/bin/help_end

Anmerkung: Das Script help_end enthlt die Befehle, die erforderlich sind, um die Prozesse, die mit dem Script help_start gestartet wurden, ordnungsgem zu beenden. Verwenden Sie keine andere Methode, um das Script help_start zu beenden. 7. Starten Sie den Service der DB2-Informationszentrale erneut. v Unter Windows: Klicken Sie Start Einstellungen Systemsteuerung Verwaltung Dienste an. Klicken Sie mit der rechten Maustaste die DB2Informationszentrale an, und whlen Sie Starten aus. v Unter Linux: Geben Sie den folgenden Befehl ein:
/etc/init.d/db2icdv9 start

In der aktualisierten DB2-Informationszentrale werden die neuen und aktualisierten Themen angezeigt. Zugehrige Konzepte: v Optionen fr die Installation der DB2-Informationszentrale in DB2-Server Einstieg Zugehrige Tasks: v Installation der DB2-Informationszentrale mit dem DB2-Installationsassistenten (Linux) in DB2-Server - Einstieg v Installation der DB2-Informationszentrale mit dem DB2-Installationsassistenten (Windows) in DB2-Server - Einstieg

Anhang A. Technische Informationen zu DB2-Datenbanken

93

DB2-Lernprogramme
Die DB2-Lernprogramme untersttzen Sie dabei, sich mit den unterschiedlichen Aspekten der DB2-Produkte vertraut zu machen. Die Lerneinheiten bieten eine in einzelne Schritte unterteilte Anleitung. Vorbereitungen: Die XHTML-Version des Lernprogramms kann ber die Informationszentrale unter http://publib.boulder.ibm.com/infocenter/db2help/ angezeigt werden. In einigen der Lerneinheiten werden Beispieldaten und Codebeispiele verwendet. Informationen zu bestimmten Voraussetzungen fr die Ausfhrung der Tasks finden Sie in der Beschreibung des Lernprogramms. DB2-Lernprogramme: Klicken Sie zum Anzeigen des Lernprogramms den Titel an. Nativer XML-Datenspeicher Einrichten einer DB2-Datenbank, um XML-Daten zu speichern und Basisoperationen mit dem nativen XML-Datenspeicher auszufhren. Lernprogramm fr Visual Explain Analysieren, Optimieren und Anpassen von SQL-Anweisungen zur Leistungsverbesserung mit Hilfe von Visual Explain. Zugehrige Konzepte: v bersicht ber Visual Explain in Systemverwaltung: Implementierung

Informationen zur Fehlerbehebung in DB2


Eine breite Palette verschiedener Informationen zur Fehlerbestimmung und Fehlerbehebung steht zur Verfgung, um Sie bei der Verwendung von DB2-Produkten zu untersttzen. DB2-Dokumentation Informationen zur Fehlerbehebung stehen im Handbuch DB2 Fehlerbehebung oder im Abschnitt zur Untersttzung und Fehlerbehebung der DB2-Informationszentrale zur Verfgung. Dort finden Sie Informationen dazu, wie Sie Probleme mit Hilfe der DB2-Diagnosetools und -Dienstprogramme eingrenzen und identifizieren knnen, Lsungen fr einige der hufigsten Probleme sowie weitere Hinweise zur Behebung von Fehlern und Problemen, die bei der Verwendung der DB2-Produkte auftreten knnen. DB2-Website mit technischer Untersttzung Auf der DB2-Website mit technischer Untersttzung finden Sie Informationen zu Problemen und den mglichen Ursachen und Fehlerbehebungsmanahmen. Die Website mit technischer Untersttzung enthlt Links zu den neuesten DB2-Verffentlichungen, technischen Hinweisen (TechNotes), APARs (Authorized Program Analysis Reports) und Fehlerkorrekturen, Fixpacks sowie weiteren Ressourcen. Sie knnen diese Wissensbasis nach mglichen Lsungen fr aufgetretene Probleme durchsuchen. Rufen Sie die DB2-Website mit technischer Untersttzung unter http://www.ibm.com/software/data/db2/udb/support.html auf.

94

Fehlerbehebung

Zugehrige Konzepte: v Einfhrung in die Fehlerbestimmung auf Seite 1 v bersicht ber technische Informationen zu DB2 auf Seite 85

Bedingungen
Die Berechtigungen zur Nutzung dieser Verffentlichungen werden Ihnen auf der Basis der folgenden Bedingungen gewhrt. Persnliche Nutzung: Sie drfen diese Verffentlichungen fr Ihre persnliche, nicht kommerzielle Nutzung unter der Voraussetzung vervielfltigen, dass alle Eigentumsvermerke erhalten bleiben. Sie drfen diese Verffentlichungen oder Teile der Verffentlichungen ohne ausdrckliche Genehmigung von IBM nicht weitergeben, anzeigen oder abgeleitete Werke davon erstellen. Kommerzielle Nutzung: Sie drfen diese Verffentlichungen nur innerhalb Ihres Unternehmens und unter der Voraussetzung, dass alle Eigentumsvermerke erhalten bleiben, vervielfltigen, weitergeben und anzeigen. Sie drfen diese Verffentlichungen oder Teile der Verffentlichungen ohne ausdrckliche Genehmigung von IBM auerhalb Ihres Unternehmens nicht vervielfltigen, weitergeben, anzeigen oder abgeleitete Werke davon erstellen. Abgesehen von den hier gewhrten Berechtigungen erhalten Sie keine weiteren Berechtigungen, Lizenzen oder Rechte (verffentlicht oder stillschweigend) in Bezug auf die Verffentlichungen oder darin enthaltene Informationen, Daten, Software oder geistiges Eigentum. IBM behlt sich das Recht vor, die in diesem Dokument gewhrten Berechtigungen nach eigenem Ermessen zurckzuziehen, wenn sich die Nutzung der Verffentlichungen fr IBM als nachteilig erweist oder wenn die obigen Nutzungsbestimmungen nicht genau befolgt werden. Sie drfen diese Informationen nur in bereinstimmung mit allen anwendbaren Gesetzen und Vorschriften, einschlielich aller US-amerikanischen Exportgesetze und Verordnungen, herunterladen und exportieren. IBM bernimmt keine Gewhrleistung fr den Inhalt dieser Informationen. Diese Verffentlichungen werden auf der Grundlage des gegenwrtigen Zustands (auf as-is-Basis) und ohne eine ausdrckliche oder stillschweigende Gewhrleistung fr die Handelsblichkeit, die Verwendungsfhigkeit oder die Freiheit der Rechte Dritter zur Verfgung gestellt.

Anhang A. Technische Informationen zu DB2-Datenbanken

95

96

Fehlerbehebung

Anhang B. Bemerkungen
Mglicherweise bietet IBM die in dieser Dokumentation beschriebenen Produkte, Services oder Funktionen nicht in allen Lndern an. Informationen ber die gegenwrtig im jeweiligen Land verfgbaren Produkte und Services sind beim IBM Ansprechpartner erhltlich. Hinweise auf IBM Lizenzprogramme oder andere IBM Produkte bedeuten nicht, dass nur Programme, Produkte oder Services von IBM verwendet werden knnen. An Stelle der Produkte, Programme oder Services knnen auch andere ihnen quivalente Produkte, Programme oder Services verwendet werden, solange diese keine gewerblichen oder andere Schutzrechte der IBM verletzen. Die Verantwortung fr den Betrieb der Produkte, Programme oder Dienstleistungen in Verbindung mit Fremdprodukten und Fremddienstleistungen liegt beim Kunden, soweit nicht ausdrcklich solche Verbindungen erwhnt sind. Fr in diesem Handbuch beschriebene Erzeugnisse und Verfahren kann es IBM Patente oder Patentanmeldungen geben. Mit der Auslieferung dieses Handbuchs ist keine Lizenzierung dieser Patente verbunden. Lizenzanforderungen sind schriftlich an folgende Adresse zu richten (Anfragen an diese Adresse mssen auf Englisch formuliert werden): IBM Director of Licensing IBM Europe, Middle East & Africa Tour Descartes 2, avenue Gambetta 92066 Paris La Defense France Trotz sorgfltiger Bearbeitung knnen technische Ungenauigkeiten oder Druckfehler in dieser Verffentlichung nicht ausgeschlossen werden. Die Angaben in diesem Handbuch werden in regelmigen Zeitabstnden aktualisiert. Die nderungen werden in berarbeitungen bekanntgegeben. IBM kann ohne weitere Mitteilung jederzeit Verbesserungen und/oder nderungen an den in dieser Verffentlichung beschriebenen Produkten und/oder Programmen vornehmen. Verweise in diesen Informationen auf Websites anderer Anbieter dienen lediglich als Benutzerinformationen und stellen keinerlei Billigung des Inhalts dieser Websites dar. Das ber diese Websites verfgbare Material ist nicht Bestandteil des Materials fr dieses IBM Produkt; die Verwendung dieser Websites geschieht auf eigene Verantwortung. Werden an IBM Informationen eingesandt, knnen diese beliebig verwendet werden, ohne dass eine Verpflichtung gegenber dem Einsender entsteht. Lizenznehmer des Programms, die Informationen zu diesem Produkt wnschen mit der Zielsetzung: (i) den Austausch von Informationen zwischen unabhngigen, erstellten Programmen und anderen Programmen (einschlielich des vorliegenden Programms) sowie (ii) die gemeinsame Nutzung der ausgetauschten Informationen zu ermglichen, wenden sich an folgende Adresse: IBM Canada Limited Office of the Lab Director 8200 Warden Avenue Markham, Ontario L6G 1C7 CANADA

97

Die Bereitstellung dieser Informationen kann unter Umstnden von bestimmten Bedingungen - in einigen Fllen auch von der Zahlung einer Gebhr - abhngig sein. Die Lieferung des im Dokument aufgefhrten Lizenzprogramms sowie des zugehrigen Lizenzmaterials erfolgt auf der Basis der IBM Rahmenvereinbarung sowie der Allgemeinen Geschftsbedingungen von IBM, der Internationalen Nutzungsbedingungen der IBM fr Programmpakete oder einer quivalenten Vereinbarung. Alle in diesem Dokument enthaltenen Leistungsdaten stammen aus einer gesteuerten Umgebung. Die Ergebnisse, die in anderen Betriebsumgebungen erzielt werden, knnen daher erheblich von den hier erzielten Ergebnissen abweichen. Einige Daten stammen mglicherweise von Systemen, deren Entwicklung noch nicht abgeschlossen ist. Eine Garantie, dass diese Daten auch in allgemein verfgbaren Systemen erzielt werden, kann nicht gegeben werden. Darber hinaus wurden einige Daten unter Umstnden durch Extrapolation berechnet. Die tatschlichen Ergebnisse knnen abweichen. Benutzer dieses Dokuments sollten die entsprechenden Daten in ihrer spezifischen Umgebung prfen. Informationen ber Produkte anderer Hersteller als IBM wurden von den Herstellern dieser Produkte zur Verfgung gestellt, bzw. aus von ihnen verffentlichten Ankndigungen oder anderen ffentlich zugnglichen Quellen entnommen. IBM hat diese Produkte nicht getestet und kann daher keine Aussagen zu Leistung, Kompatibilitt oder anderen Merkmalen machen. Fragen zu den Leistungsmerkmalen von Produkten anderer Anbieter sind an den jeweiligen Anbieter zu richten. Aussagen ber Plne und Absichten der IBM unterliegen nderungen oder knnen zurckgenommen werden und reprsentieren nur die Ziele der IBM. Diese Verffentlichung enthlt Beispiele fr Daten und Berichte des alltglichen Geschftsablaufes. Sie sollen nur die Funktionen des Lizenzprogrammes illustrieren; sie knnen Namen von Personen, Firmen, Marken oder Produkten enthalten. Alle diese Namen sind frei erfunden, hnlichkeiten mit tatschlichen Namen und Adressen sind rein zufllig. COPYRIGHTLIZENZ: Diese Verffentlichung enthlt Musteranwendungsprogramme, die in Quellensprache geschrieben sind. Sie drfen diese Musterprogramme kostenlos kopieren, ndern und verteilen, wenn dies zu dem Zweck geschieht, Anwendungsprogramme zu entwickeln, verwenden, vermarkten oder zu verteilen, die mit der Anwendungsprogrammierschnittstelle konform sind, fr die diese Musterprogramme geschrieben werden. Diese Beispiele wurden nicht unter allen denkbaren Bedingungen getestet. Daher kann IBM die Zuverlssigkeit, Wartungsfreundlichkeit oder Funktion dieser Programme weder zusagen noch gewhrleisten. Kopien oder Teile der Musterprogramme bzw. daraus abgeleiteter Code mssen folgenden Copyrightvermerk beinhalten: (Name Ihrer Firma) (Jahr). Teile des vorliegenden Codes wurden aus Musterprogrammen der IBM Corp. abgeleitet. Copyright IBM Corp. _Jahr/Jahre angeben_. Alle Rechte vorbehalten.

98

Fehlerbehebung

Marken
Namen von Unternehmen, Produkten oder Services in den Dokumenten der Dokumentationsbibliothek von DB2 Version 9 knnen Marken oder Servicemarken der International Business Machines Corporation oder anderer Unternehmen sein. Informationen zu den Marken der IBM Corporation in den jeweiligen Lndern finden Sie unter http://www.ibm.com/legal/copytrade.shtml. Folgende Namen sind in gewissen Lndern Marken oder eingetragene Marken anderer Unternehmen und wurden in mindestens einem der Dokumente in der DB2-Dokumentationsbibliothek verwendet. Microsoft, Windows, Windows NT und das Windows-Logo sind in gewissen Lndern Marken der Microsoft Corporation. Intel, Itanium, Pentium und Xeon sind in gewissen Lndern Marken der Intel Corporation. Java und alle Java-basierten Marken sind in gewissen Lndern Marken von Sun Microsystems, Inc. UNIX ist in gewissen Lndern eine eingetragene Marke von The Open Group. Linux ist in gewissen Lndern eine Marke von Linus Torvalds. Andere Namen von Unternehmen, Produkten oder Dienstleistungen knnen Marken anderer Unternehmen sein.

Anhang B. Bemerkungen

99

100

Fehlerbehebung

Index A
ACCRDB, Befehl 60 ACCRDBRM, Befehl 60 ACCSEC, Befehl 60 Aktualisierungen DB2-Informationszentrale Informationszentrale 91 DB2-Informationszentrale (Forts.) in verschiedenen Sprachen anzeigen 90 Versionen 90 DB2 JDBC-Treiber Konfiguration der Tracefunktion 70 DB2 JDBC Type 2-Treiber Konfiguration der Tracefunktion 68 DB2-Produkte entfernen Produkte auflisten 40 manuell installieren Produkte auflisten 40 DB2-Tracefunktion (db2trc) Speicherauszug fr Traceausgabe erstellen 56 db2cli.ini, Datei Tracekonfiguration CLI- und ODBC-Anwendungen 72 db2cos Ausgabedateien 13 db2dart, Befehl Fehlerbehebung, bersicht 33 db2diag, Befehl Beispiele 33 db2diag.log 6 analysieren 9, 10, 33 Zweck 4 db2drdat, Dienstprogramm Ausgabedatei 58 db2level, Befehl fr Fehlerbehebung verwenden 35 db2look, Befehl fr Fehlerbehebung verwenden 36 db2pd, Befehl Beispiele fr Fehlerbehebung 42 mit Script db2cos in der Standardkonfiguration erfasst 13 db2support, Befehl Verwendung zur Fehlerbehebung 21, 50 db2trc (DB2-Tracefunktion) starten, bersicht 54 Traceausgabe formatieren 56 ddcstrc, Dienstprogramm Ausgabedatei 59 DIAGLEVEL, Konfigurationsparameter aktualisieren 9 Diagnosedateien 17 Diagnoseprotokolle 3 Diagnosetools 78 Fehlerbestimmung 32 UNIX 18 Windows 20, 77 auf Dr. Watson-Protokolle zugreifen 21 Dienstprogramm zur Feststellung des Prozessstatus 32, 60 Dienstprogramme db2drdat 58 Dienstprogramme (Forts.) Prozessstatus 60 ps (Prozessstatus) 32, 60 Trace 58 Distributed Data Management (DDM) 58 Dokumentation 85, 86 Nutzungsbedingungen 95 DSS (Distributed Subsection - verteilter Teilbereich) Typ, Trace 58

91

B
Bedingungen Verwendung von Verffentlichungen 95 Befehle ACCRDB 60 ACCRDBRM 60 ACCSEC 60 COMMIT 60 EXCSAT 60 EXCSATRD 60 SECCHK 60 Bemerkungen 97 Benachrichtigungsstufe, Konfigurationsparameter aktualisieren 6 Bestellen von DB2-Bchern 89

E
Empfangspuffer 58 Exchange Server Attributes, Befehl EXCSAT, Befehl 60 EXCSATRD, Befehl 60 EXTNAM, Objekt 60 60

F
Fehler Fehlerbestimmung 29 Fehlerbehebung 1, 21 Informationen zusammenstellen 29, 35, 42, 50 Lernprogramme 94 nach Problemlsungen suchen 81 Onlineinformationen 94 Problem reproduzieren 36 Ressourcen 82 Tracefunktionen 53, 54 CLI- und ODBC-Anwendungen 71, 72 DRDA 61, 67 JDBC-Anwendungen 68, 70 Traces der Steuerzentrale 67 verbinden 30, 31 Fehlerbestimmung Diagnosetools 32 Informationen zusammenstellen 29 Lernprogramme 94 Onlineinformationen 94 Probleme nach Verbindungsherstellung 31 Ressourcen 82 bersicht 1, 29 Verbindungsstrungen 30 FFDC (First Failure Data Capture) 3 Ausgabedateien 4 Beschreibung 3 plattformspezifisch 17 Speicherauszugsdateien 15 Trapdateien 16, 17 Fixpack anwenden 83

C
CLI (Schnittstelle auf Aufrufebene) Trace Fehlerbehebung, bersicht 71 Tracefunktion starten 72 CLI-Anwendungen Konfiguration der Tracefunktion 72 CLI/ODBC/JDBC Trace Fehlerbehebung, bersicht 71 COMMIT, Befehl Trace-Ausgabepuffer 60

D
Datenbankanalyse- und Berichtstool, Befehl Fehlerbehebung, bersicht 33 Datenbanken Name RDBNAM, Objekt 60 Datenbankpartitionsserver Absetzen von Befehlen 27 DB2 installieren Anwenden von Fixpacks 83 db2_all, Befehl 27 DB2-Informationszentrale aktualisieren 91

101

G
Gedruckte Bcher bestellen 89 Globale Registrierdatenbank (Global Registry) ndern 35

R
rah, Befehl Einfhrung 27

U
UNIX entfernen Produkte auflisten 40 UOW beendet, Nachricht (ENDUOWRM) 60

S
SECCHK, Befehl 60 Sendepuffer, Datentrace 58 Serviceprotokoll des DB2-Diagnoseprogramms 32 Speicherauszugsdateien Fehlerberichte 15 SQL-Anweisungen Hilfe anzeigen 90 SQLCA (SQL-Kommunikationsbereich) Datenpuffer 58 SQLCODE, Feld 58 SQLCODE Feld im SQL-Kommunikationsbereich 58 SRVNAM, Objekt 60 Steuerzentrale Traceerstellung 67 Suchen Verfahren 81 Systembefehl (UNIX) dbx 19 Systemkerndateien, UNIX 18 68,

H
Hilfe anzeigen 90 fr SQL-Anweisungen 90

V
VALIDATE RUN, Parameterwert Verwaltungsprotokolldatei 6 Visual Explain Lernprogramm 94 60

I
Informationszentrale aktualisieren 91 in verschiedenen Sprachen anzeigen 90 Versionen 90 Installieren manuell Produkte auflisten 40

J
JDBC-Anwendung Konfiguration der Tracefunktion 70

T
TCP/IP ACCSEC, Befehl 60 SECCHK, Befehl 60 Tools Diagnose 32, 78 Windows 77 Trace, Dienstprogramm 58 Traceerstellung Ausgabedateibeispiele 61 Pufferinformationen fr DRDA-Traces 67 Tracefunktion CLI-Anwendungen 72 DB2-Traces 54, 56 DRDA-Traces 61, 67 Fehlerbehebung, bersicht 53 JDBC-Anwendungen 70 Konfiguration von Traceoptionen 68 Traces der Steuerzentrale 67 Traces Ausgabedatei 58, 59 CLI 71 analysieren 74, 75, 76, 77 Daten zwischen DB2 Connect und dem Server 58 DRDA interpretieren 57 bersicht 53 Trapdateien 16 formatieren (Windows) 17

K
Kerndateien Fehlerbestimmung 32 Identifikation 19 UNIX-Systeme 18 Kontaktaufnahme mit IBM

103

L
Lernprogramme Fehlerbestimmung und Fehlerbehebung 94 Visual Explain 94

O
ODBC-Anwendungen Konfiguration der Tracefunktion 72

P
Parameter PRDID 60 PRDID, Parameter 60 Protokoll mit Benachrichtigungen fr die Systemverwaltung 4 interpretieren 7 Protokolldateien Verwaltung 6 ps (Prozessstatus), Dienstprogramm 32, 60

102

Fehlerbehebung

Kontaktaufnahme mit IBM


Informationen zum nchsten IBM Ansprechpartner in Ihrem Land oder Ihrer Region finden Sie im IBM Verzeichnis fr weltweite Kontakte, das Sie im Web unter http://www.ibm.com/planetwide abrufen knnen. Weitere Informationen zu DB2-Produkten finden Sie unter http://www.ibm.com/software/data/db2/.

103

104

Fehlerbehebung

GC12-3635-00