Tracing und Logging im SAP-System

Objectives

After completing this lesson, you will be able to:
  • Verfügbare Optionen für das Tracing und Logging im SAP-System benennen
  • Einfache Traces im SAP-System ausführen

Traces und Protokolle

Mit den Trace-Funktionen können Sie den Ablauf von verschiedenen Operationen in Ihrem SAP-System verfolgen. Dies dient zur Überwachung des Systems und zur Eingrenzung von auftretenden Problemen.

Traces und Protokolle – Test und Definition

Trace

Im SAP-Kontext bezieht sich ein Trace in der Regel auf eine Option für das Protokollieren von Systemprozessen, die Benutzer aktivieren und deaktivieren können. Möglicherweise kann der Detaillierungsgrad ebenfalls konfiguriert werden.

Ein gutes Beispiel: System-Trace, Transaktion ST01.

Log

Im SAP-Kontext ist ein Protokoll in der Regel ein durchgehend erfasster Informationsfluss, mit dem bestimmte Ereignisse aufgezeichnet werden. Diese Protokolle können innerhalb oder außerhalb des SAP-Systems verwaltet werden.

Ein gutes Beispiel: Systemprotokoll, Transaktion SM21.

Das Systemprotokoll ist die Analyseoption für Fehler im System und in seiner Umgebung.

Es gibt Funktionen, die die Eigenschaften von Traces und Protokollen kombinieren, wie z.B. Entwickler-Traces.

Es gibt zahlreiche Trace-Möglichkeiten in SAP-Systemen. Die wichtigsten sind unter „Trace- und Protokolloptionen" aufgeführt.

Trace- und Protokolloptionen

  • Systemprotokoll (SM21)

  • Dump-Analyse (ABAP-Laufzeitfehler: ST22)

  • Systemtrace (ST01)

  • Performance-Analyse (ST05)

  • Fehlerprotokolldateien (Entwickler-Trace: ST11)

Trace- und Protokollkommandos

Mit der Transaktion SM21 können Sie Fehler ermitteln und korrigieren, die in Ihrem System und seiner Umgebung auftreten. SAP-Anwendungsserver zeichnen Ereignisse und Probleme in Systemprotokollen auf. Jeder SAP-Anwendungsserver verfügt über ein lokales Protokoll, das die von diesem Server protokollierten Meldungen wie Fehler, Warnungen und Informationen enthält.

Wenn zur Laufzeit beim Aufruf eines ABAP-Programms unvorhersehbare Fehler auftreten, wird ein Laufzeitfehler protokolliert, der einen Kurzdump generiert (Transaktion ST22).

Wenn Sie die SAP-internen Aktivitäten wie Berechtigungsprüfungen, Datenbankzugriffe, Kernel-Funktionen und RFC-Aufrufe aufzeichnen möchten, verwenden Sie die Funktion Systemtrace (Transaktion ST01).

Mit der Funktion Performance-Trace (Transaktion ST05) können Sie Datenbankaufrufe, Aufrufe der Sperrverwaltung und Remote-Aufrufe von Reports und Transaktionen in einer Trace-Datei aufzeichnen und die protokollierten Messergebnisse als Listen anzeigen. Der Performance-Trace bietet auch umfangreiche Unterstützung für eine detaillierte Analyse einzelner Trace-Sätze. Alle Funktionen des Performance-Trace finden Sie auch im Systemtrace. Der Performance-Trace ist ein geeigneteres Analysewerkzeug für bestimmte Probleme, da der reduzierte Funktionsumfang die Handhabung erleichtert.

Technische Informationen zu internen SAP-Problemen werden in den Entwickler-Traces (Transaktion ST11) protokolliert.

Systemlog (SM21)

Ereignisse und Probleme werden lokal auf jedem Anwendungsserver aufgezeichnet und können im Systemprotokoll (Syslog) im SAP-System angezeigt werden, wie in der folgenden Abbildung dargestellt.

Notiz

Beachten Sie im Zusammenhang mit dem Systemprotokoll auch die folgenden SAP-Hinweise:

  • SAP-Hinweis 712706: Programm RSLGVIEW - Lesen des SAP-Systemprotokolls ohne System
  • SAP-Hinweis 28665: Zentrales Syslog unter NT.

    Dieser SAP-Hinweis nennt eine Lösung unter Einsatz der Monitorfunktionen des CCMS und beschreibt die Einsehbarkeit der Protokolle aller Instanzen eines Systems.

Sie können auch die SAP Microsoft Management Console und die SAP Management Console verwenden, um das Systemprotokoll anzuzeigen, auch wenn die betreffenden Instanzen nicht gestartet wurden oder gestartet wurden und fehlgeschlagen sind.

Sie zeigen mit der Transaktion SM21 ein Systemprotokoll an. Standardmäßig liest das System das Protokoll für die letzten ein bis zwei Stunden. Neben dem lokalen Systemprotokoll können Sie auch Systemprotokolle für andere Anwendungsserver anzeigen. Auf dem Einstiegsbild Systemprotokoll anzeigen können Sie angeben, für welche Instanzen das Syslog angezeigt werden soll. Die Syslog-Meldungen werden dann für alle ausgewählten Instanzen angezeigt.

Sie können den Pfad und die Dateinamen für lokale Protokolldateien mit den folgenden Systemprofilparametern definieren:

/local/file: Dateiname für das lokale Protokoll (Standard: SLOG<SAPSYSTEMNUMBER>)

Standardmäßig werden die Protokolldateien für das lokale Systemprotokoll im Verzeichnis /usr/sap/<SID>/<instance_directory>/log abgelegt.

Die Protokolldatei hat eine maximale Größe, die mit dem Profilparameter rslg/max_diskspace/local konfiguriert werden kann. Die ältesten Einträge werden überschrieben, sobald das Limit erreicht ist.

Hinweis

Das System zeigt keine Meldung an, wenn eine alte Protokolldatei überschrieben wird.

Dump-Analyse (ST22)

ABAP-Programme werden bei ihrer Erstellung statisch und während ihres Ablaufs dynamisch überprüft. Fehlerhafte Zustände, die statisch nicht vorhersehbar sind und erst zur Laufzeit auftreten, werden von der ABAP-Laufzeitumgebung dynamisch erkannt. Solche Zustände führen zu Ausnahmen. Falls eine Ausnahme nicht behandelt wird oder nicht behandelbar ist, kommt es zu einem Laufzeitfehler. Beim Auftreten eines Laufzeitfehlers bricht die ABAP-Laufzeitumgebung die Ausführung des Programms ab, erzeugt einen sogenannten Kurzdump und verzweigt in ein spezielles Bild zur Analyse des Kurzdumps. Kurzdumps können Sie über die Transaktion ST22 aufrufen.

Ein Kurzdump ist in verschiedene Blöcke unterteilt, die den Fehler dokumentieren. In der Übersicht kann man sehen, welche weiteren Informationen im Kurzdump noch ausgegeben werden, wie z. B. Inhalte von Datenobjekten, aktive Aufrufe und Kontrollstrukturen. Aus der Kurzdump-Ansicht kann im ABAP-Debugger an die Abbruchstelle verzweigt werden. Es können folgende Fehlersituationen unterschieden werden:

  • Interner Fehler

    Der Kernel erkennt einen Fehlerzustand. In diesem Fall ist SAP mittels einer Meldung zu benachrichtigen.

  • Installations- und Umgebungs-/Ressourcenfehler

    Hier ist ein Fehler aufgetreten, der durch falsche Systeminstallation oder durch fehlende Ressourcen (z.B. Datenbank ist geschlossen) verursacht wurde.

  • Fehler im Anwendungsprogramm

    Typische Fehlerursachen sind:

    • Inhalt eines numerischen Felds nicht im richtigen Format.

    • Arithmetischer Überlauf.

    • Externe Prozedur ist nicht vorhanden.

    • Typkonflikt bei der Parameterübergabe an eine externe Prozedur.

Kurzdumps werden standardmäßig 28 Tage im System gespeichert. Kurzdumps können Sie gemäß einer Zeitangabe mit der Funktion Reorganisieren löschen, die Sie über SpringenReorganisieren aufrufen können. Sie können einen Kurzdump ohne Zeitlimit mit der Funktion Behalten sichern, die Sie in der Detailsicht unter KurzdumpBehalten/Freigeben auswählen können.

Treten Probleme mit ABAP-Programmen auf, können Sie einen Auszug des Kurzdumps an SAP senden. Ein Kurzdump stellt sowohl für die SAP-Hotline als auch für die Remote-Beratung eine wichtige Grundlage zur Lösung von Problemen dar.

Wichtige Merkmale der Dump-Analyse

  • Tritt ein Laufzeitfehler auf, wird ein Kurzdump erzeugt, der mit der Transaktion ST22 analysiert werden kann.

  • Dump-Daten werden in der Datenbank gespeichert.

  • Dump-Daten können reorganisiert werden.

  • Einzelne Kurzdumps können zur Aufbewahrung gekennzeichnet werden.

Systemtrace (ST01)

Zur Aufzeichnung von internen Systemaktivitäten kann der SAP-Systemtrace (kurz auch Systemtrace) eingesetzt werden. Sie können den Systemtrace über die Transaktion ST01 aufrufen. Über die Transaktion ST01können Sie auch die als inaktiv dargestellte Trace-Datei anzeigen.

Hinweis

Für das System-Monitoring und die Problemanalyse empfehlen wir die Verwendung des Systemprotokolls oder des Entwickler-Trace.

Der Systemtrace wird verwendet für die Analyse von:

  • Berechtigungsprüfungen

  • Kernel-Funktionen

  • Kernel-Modulen

  • DB-Zugriffen (SQL-Trace)

  • Zugriffe auf Tabellenpuffer

  • RFC-Aufrufen, auch bekannt als RFC-Trace

  • HTTP-Aufrufen

  • Sperroperationen (Client-seitig), auch bekannt als Enqueue-Trace

Im Einstiegsbild werden die zu protokollierenden Komponenten gewählt. Sie können den Systemtrace zum Tracing von Berechtigungsprüfungen verwenden. Ist der Trace für die Berechtigungsprüfung aktiviert, so werden alle Berechtigungsprüfungen, die vom System vorgenommen werden, aufgezeichnet. Bei der Auswertung können Sie erkennen, zu welchen Zeitpunkten das System welche Berechtigungen geprüft hat. Darüber hinaus werden folgende Detailinformationen bereitgestellt: Datum, Uhrzeit, Workprozessnummer, Benutzer, Berechtigungsobjekt, Programm, Zeile, Anzahl der Berechtigungswerte und Berechtigungswerte.

Hinweis

Für das ausschließliche Tracing von Berechtigungsprüfungen können Sie die Transaktion STAUTHTRACE verwenden.

Mit dem SQL-Trace können Sie verfolgen, wie die in Reports und Transaktionen verwendeten OPEN-SQL-Befehle in Standard-SQL-Befehle übersetzt und mit welchen Parametern die SQL-Befehle an das verwendete Datenbanksystem übergeben werden. Ebenso werden die Ergebnisse des SQL-Befehls wie der Returncode und die Anzahl der von der Datenbank gefundenen, eingefügten oder gelöschten Sätze protokolliert. Die Protokollierung der Ausführungszeit und der Aufrufstelle im Anwendungsprogramm ermöglicht Ihnen weitergehende Auswertungen.

Mit dem Enqueue-Trace können Sie verfolgen, welche Sperranweisungen das SAP-System für welche Sperrobjekten ausführt und welche Parameter das System für diese Sperren verwendet. Außerdem wird in der Trace-Datei protokolliert, welches Programm die Sperre ausgelöst hat, wer der Eigentümer der Sperre ist und die Zeitdauer, die der Enqueue-Server benötigt, um die Sperre wieder aufzuheben.

Mit dem RFC-Trace können Sie verfolgen, welche Remote-Aufrufe das SAP-System ausführt und auf welcher Instanz diese Aufrufe ausgeführt werden. Aus der Trace-Aufzeichnung können Sie entnehmen, welche Funktionsbausteine vom zu analysierenden Programm remote aufgerufen wurden und ob der RFC-Aufruf erfolgreich ausgeführt wurde. Die Gesamtzeit, die für die Ausführung des Remote-Aufrufs benötigt wurde, und die Anzahl der beim RFC gesendeten und empfangenen Bytes werden ebenfalls in der Trace-Datei protokolliert.

Performance-Analyse (ST05)

Der Performance-Trace wird verwendet für die Analyse von:

  • Datenbankaufrufen (SQL-Trace)

  • Sperrverwaltungsaufrufen (Enqueue-Trace)

  • Zugriffen auf Tabellenpuffer (Puffer-Trace)

  • Remote-Aufrufen von Berichten und Transaktionen (RFC-Trace)

  • HTTP-Kommunikation (HTTP-Trace)

  • Einzelnen SQL-Statements (Einzelnes SQL-Statement)

Der Performance-Trace bietet ähnliche Trace-Optionen wie der System-Trace. Er ermöglicht es Ihnen, die Datenbankaufrufe, die Aufrufe der Sperrverwaltung, Tabellenpuffer und die Remote-Aufrufe von Reports sowie Transaktionen aus dem SAP-System selbst in einer Trace-Datei aufzuzeichnen. Sie können den Performance-Trace über die Transaktion ST05 aufrufen.

Hinweis

Die Funktionen des Performance-Trace sind in die ABAP Workbench integriert und können daher von dort aus aufgerufen werden.

Fehlerprotokolldateien (ST11)

Entwickler-Traces sind Aufzeichnungen, die technische Informationen enthalten und im Fehlerfalle herangezogen werden. Diese Art der Ablaufverfolgung ist besonders nützlich, um Host- und SAP-interne Probleme zu untersuchen, die Ihr SAP-System beeinträchtigen. Entwickler-Traces dev_ * werden in Dateien im Verzeichnis /usr/sap/<SID>/<Instanzverzeichnis>/work des SAP-Anwendungsservers geschrieben, der den Trace generiert hat, wie in der Abbildung „Entwickler-Traces" dargestellt.

Sie haben im Betriebssystem Zugriff auf die Entwickler-Traces über die Transaktion AL11, die Transaktion ST11 oder die Transaktion SM50 (Workprozess-Übersicht). In der Transaktion SM50 können Sie über Prozess-TraceDatei anzeigen zu den einzelnen dev_*-Traces wechseln. In den angezeigten Traces können Sie sich weitere Details durch Erweitern einzelner Einträge anzeigen lassen.

Trace-Datei-Konfiguration

Über Systemprofilparameter können Sie die Größe der Trace-Dateien beschränken und einen entsprechenden Pfad angeben.

Hinweis

Wahrscheinlich sind Ihnen mehrere Möglichkeiten bekannt, Werte für den Parameter rstr* anzuzeigen. Die Transaktion ST01 bietet hierfür eine besonders effektive Möglichkeit. Rufen Sie dazu die Transaktion ST01 auf und wählen Sie den Menüpfad SpringenVerwaltung (Umsch+F7). Die folgende Anzeige listet alle relevanten Parameter auf. Eine Pflege ist ebenfalls möglich. Machen Sie sich mit dieser Funktion vertraut, wenn Sie möchten, und demonstrieren Sie sie den Teilnehmern.

Der SAP-System-Trace schreibt die Trace-Daten in Trace-Dateien. Aus Performancegründen wird dies nicht direkt gemacht, sondern über einen prozessinternen Puffer. Der Profilparameter rstr/buffer_size_kB bestimmt die Größe dieses Puffers. Der SAP-Trace legt die Daten in mehrere Dateien ab, die der Reihe nach geschrieben werden. Der Parameter rstr/filename legt den Basisnamen dieser Dateien fest. Es gibt immer eine Datei mit genau diesem Namen. Wenn die Datei voll ist (Parameter rstr/max_filesize_MB), wird die Datei umbenannt und eine neue Datei mit dem Basisnamen erzeugt. Beim Umbenennen der Datei wird eine Zahl von 00 bis 99 an den Dateinamen gehängt. Der Parameter rstr/max_files legt fest, wie viele Dateien es insgesamt maximal gibt. Wenn dieser Wert überschritten ist, werden die Dateien überschrieben.

Optional: Problem im System beheben, indem Sie einen Trace aktivieren

Unternehmensszenario

Als SAP-Systemadministrator in Ihrer Organisation möchten Sie Probleme im SAP-System mithilfe von Trace-Funktionen beheben.

Notiz

Wenn die Werte in dieser Übung ## enthalten, ersetzen Sie die Zeichen durch die Nummer, die Ihnen Ihr Referent zugewiesen hat.

Aufgabe 1: Mit dem Performance-Trace arbeiten

Sie möchten die Performance der Datenbank testen.

Schritte

  1. Aktivieren Sie den SQL-Trace für Ihren Benutzer im Performance-Trace (Transaktion ST05).

    1. Rufen Sie in Ihrem SAP-System die Transaktion ST05 AUF.

    2. Wählen Sie SQL-Trace.

    3. Aktivieren Sie den Trace, indem Sie Trace aktivieren wählen.

  2. Starten Sie in einem neuen GUI-Fenster die Transaktion SE38 und führen Sie das Programm RSUSR000 aus, das die Liste aller protokollierten Benutzer anzeigt.

    1. Wählen Sie oben links das Hamburger-Menü, und wählen Sie Neues GUI-Fenster.

    2. Starten Sie die Transaktion SE38.

    3. Geben Sie den Programmnamen RSUSR000 ein.

    4. Wählen Sie Ausführen.

    Ergebnis

    Die Liste der an den Anwendungsservern angemeldeten Benutzer wird angezeigt. Die Informationen werden aus der Datenbank abgerufen.
  3. Kehren Sie zum Performance-Trace zurück, deaktivieren Sie den Trace, und werten Sie ihn aus.

    1. Kehren Sie zum GUI-Fenster Ihres SQL-Trace zurück.

    2. Wählen Sie in der Transaktion ST05Trace deaktivieren.

    3. Wählen Sie Trace anzeigen, um die erzeugte Trace-Datei auszuwerten.

    4. Wählen Sie im Abschnitt Trace-Typen die Option SQL-Trace.

    5. Wählen Sie Ausführen.

    6. Passen Sie ggf. den Trace-Zeitraum an.

    7. Markieren Sie die Zeile mit dem Objektnamen mit dem Wert USR02.

    8. Wählen Sie Springen → DDIC-Informationen anzeigen (F6), um die SAP-Dictionary-Informationen für dieses Objekt anzuzeigen.

    9. Wählen Sie oben links das Symbol Zurück (F3)<, um zum vorherigen Bild zu gelangen.

    10. Wählen Sie oben rechts Beenden.

    11. Wählen Sie Bearbeiten → Ausführungsplan anzeigen > Ausgewählte Anweisung, ohne Sitzungsvarianten (F9), um den Ausführungsplan für die SQL-Anweisung anzuzeigen.