Show TOC

Trace für HTTP-Requests und andere Requests mit der ABAP-Laufzeitanalyse erstellenLocate this document in the navigation structure

Vorgehensweise

Mit der ABAP-Laufzeitanalyse können Sie in folgenden Fällen ein Trace für Programmausführungen in Ihrem System erstellen:

  • Die Programmausführungen resultieren aus externen Aufrufen in Ihr System. Sie können beispielsweise Traces für HTTP- oder Web-Service-Requests, Web-Dynpro-Requests oder RFC-Funktionsaufrufe erstellen, die in Ihrem System verarbeitet werden.

  • Sie wissen nicht, wann oder von welchem Benutzer ein Programm oder eine Transaktion gestartet wird.

Solche Arten von Aktivitäten können Sie mit der Benutzer-Trace-Funktion der ABAP-Laufzeitanalyse untersuchen. Mit dem Benutzer-Trace können Sie ein Trace automatisch starten, wenn von Ihnen angegebene Bedingungen erfüllt sind.

Im Folgenden wird die Vorgehensweise beschrieben, wie Sie mit dem Benutzer-Trace ein Trace der Programmausführung erstellen. Als Beispiel dient ein HTTP-Request, der in Ihrem System verarbeitet wird.

HTTP-Request analysieren, der in Ihrem System verarbeitet wird

Angenommen, Sie müssen den Programmablauf (oder die Performance) eines HTTP-Request analysieren, der in Ihrem System verarbeitet wird. Im Folgenden finden Sie die Vorgehensweise zur Analyse des Programmablaufs des Request.

  1. Starten Sie die ABAP-Laufzeitanalyse, indem Sie entweder den TransaktionscodeSAT eingeben oder Anfang des Navigationspfads System Nächster Navigationsschritt Hilfsmittel Nächster Navigationsschritt Laufzeitanalyse Nächster Navigationsschritt Ausführen Ende des Navigationspfads wählen.

  2. Geben Sie eine Variante an, für welche die Aggregation auf Keine gesetzt ist.

    Die resultierenden 'ABAP Trace'-Messdatensätze erstellen einzelne Traces pro Ereignis, so dass Sie nach bestimmten ABAP-Anweisungen suchen können.

    Achten Sie darauf, dass die Option Explizites Ein- und Ausschalten der Messung auf dem Register Dauer und Art in der aktiven Variante nicht markiert ist.

  3. Planen Sie eine Messung ein. Wählen Sie Einplanen im Rahmen Für Benutzer/Service auf dem SAT-Register Messen.

    Die Laufzeitanalyse zeigt die Übersicht der eingeplanten Messungen an.

  4. Wählen Sie Anlegen, um die Startbedingungen für eine Messung festzulegen.

    Auf dem Einplanungsdialogfenster machen Sie folgende Angaben:

    • Lassen Sie das Feld Benutzer leer - die Laufzeitanalyse erstellt Traces für Aufrufe aller Benutzer, sofern die anderen von Ihnen angegebenen Bedingungen erfüllt sind.

    • Geben Sie den Mandanten an, in dem der Aufruf verarbeitet wird.

      Der Mandant 000 wird für anonyme HTTP-Requests verwendet. Wenn keine Anmeldeinformationen in einer Service-Definition angegeben sind (z.B. in der Transaktion SICF, ICF Service Manager), dann erfolgt die Anmeldung im Standardmandanten des Systems.

      Sie können einen anderen Mandanten als den Anmeldemandanten angeben. Sie müssen jedoch auf alle Fälle einen Mandanten angeben, sonst wird kein Trace von der Laufzeitanalyse geschrieben.

    • Setzen Sie den Server-Namen auf <ALLE>, damit in jedem Fall ein Trace für den Request geschrieben wird, unabhängig davon, auf welchem Anwendungsserver das System verarbeitet wird.

      Die Laufzeitanalyse plant eine Messung für jeden Anwendungsserver in Ihrem System ein. Wenn die Messung auf einem Server beendet ist, können Sie die eingeplanten Messungen löschen, die Sie nicht benötigen.

    • Setzen Sie den Prozess-Typ auf HTTP und den Objekt-Typ auf URL

      Die Eingabemöglichkeiten für diese Felder zeigen Ihnen die große Bandbreite an Aktivitäten, die Sie vermessen können. Nicht alle der möglichen Kombinationen sind sinnvoll. Beispielsweise wird bei Prozess-TypRFC und Objekt-TypURL in keinem Fall ein Trace geschrieben.

    • Geben Sie in das Feld Objektname die URN (Pfad und Service-Name) des Service ein. Sie finden die URN eines Service in der Transaktion SICF oder im Web Services Manager.

      Sie können z.B. /sap/bc/ccms/monitoring/grmg_app eingeben.

    Lassen Sie die anderen Felder unverändert.

  5. Wählen Sie Anlegen im Dialogfenster, um die Messung einzuplanen.

    Die Messung wird zur Übersicht mit dem StatusIn Bearbeitung hinzugefügt.

  6. Prüfen Sie, ob die eingeplante Messung vorgenommen wurde. Aktualisieren Sie die Übersicht der eingeplanten Messungen.

    Wenn die Messung durchgeführt wurde, dann:

    • Zeigt der Status der Messung auf dem Anwendungsserver, auf dem der Request verarbeitet wurde, jetzt Ausgeführt.

    • Die Spalte Gestartet zeigt die Anzahl der vorgenommen Traces.

      Wenn Gestartet weiterhin den Wert 0 anzeigt, wurde kein Trace geschrieben. Vergewissern Sie sich, dass Sie den richtigen Mandanten für die Verarbeitugn angegeben haben, dass die URN korrekt ist und dass Ihre Anmeldung am System erfolgreich war.

  7. Zeigen Sie die Messung an. Verlassen Sie die Übersicht der eingeplanten Messungen und zeigen Sie die neue Messung vom Register Auswerten des Hauptbilds SAT aus an.

    Wenn Sie ein Trace für einen Request in einem anderen Mandanten erstellt haben, müssen Sie sich an diesem Mandanten anmelden, um das Trace anzuzeigen.

  8. Bleiben Sie auf dem Register Desktop 1, wenn Sie sich die Performance des Request-Behandlers ansehen möchten.

    Das Werkzeug Profil zeigt die Gesamtlaufzeit des Request-Behandlers in der obersten Laufzeitmessung szeile an.

    Das Werkzeug Hitliste auf dem Register Desktop 1 zeigt die intensivsten aggregierten Benutzer der Laufzeit, sortiert nach ihrer Nettolaufzeit.

    Auf der Hitliste sehen Sie die Top-Benutzer sowohl der HTTP-Infrastruktur, über die Sie keine Kontrolle haben, als auch der Anwendung, über die Sie Kontrolle haben.

    Kehren Sie zum Werkzeug Profil zurück und wählen Sie Andere Hierarchie, um die Trace-Ereignisse nach Entwicklungspaket sortiert anzuzeigen.

    Markieren Sie das Paket, in dem sich Ihre Anwendung befindet, und wählen Sie Teilbereich anzeigen und anschließend Teilbereich im Hitlisten-Werkzeug anz.. Damit weisen Sie die Hitliste an, nur die Einträge anzuzeigen, die zum Paket Ihrer Anwendung gehören. Jetzt können Sie die Performance Ihres Anwendungsquelltexts auswerten, unabhängig von Einträgen, die sich auf die HTTP-Infrastruktur beziehen.

  9. Wechseln Sie zum Register Desktop 2, wenn Sie den Programmablauf des Request-Behandlers analysieren möchten.

    Starten Sie mit dem Werkzeug Verarbeitungsblöcke. Dort erhalten Sie eine übersichtliche und klare Ansicht des Aufruf-Stack des Request-Behandlers.

    Öffnen Sie die Verabeitungsblockhierarchie bis zur Ebene, auf der Sie die Verarbeitung in Ihrer eigenen Anwendungslogik finden. Um die Ausführung Ihres Quelltextes zu analysieren, können Sie folgende Schritte ausführen:

    • Wählen Sie Kritische Verarbeitungsblöcke, um nach Verarbeitungsblöcken in Ihrem Anwendungsquelltext zu suchen, die verdächtige Speichermengen oder Verarbeitungszeiten verbrauchen.

      Sie können diese Funktion verwenden, um den Quelltext in Ihrem Request-Behandler zu prüfen, der unter Umständen eine Optimierung oder ein Refactoring erfordert.

    • Wählen Sie Auf Teilbereich einschränken, um das Werkzeug Verarbeitungsblöcke und die Aufrufhierarche- auch auf Desktop 2- anzuweisen, nur die Trace-Ereignisse anzuzeigen, die sich auf Ihren Quelltext beziehen.

      In der gefilterten Aufrufhierarchie können Sie die Verarbeitung in Ihrer Anwendung im Detail analysieren. Durch Doppelklick auf einen beliebigen Eintrag gelangen Sie zur entsprechenden Stelle im Quelltext.

    • Doppelklicken Sie auf diese Einträge, um zu den entsprechenden Stellen im Quelltext zu gelangen. Sie können Ihren Quelltext im Detail untersuchen und Breakpoints bzw. Watchpoints setzen, um den Quelltext im Debugger zu analysieren.

Probieren Sie es aus: Trace für einen HTTP-Request erstellen

Probieren Sie die oben beschriebene Vorgehensweise aus.

Planen Sie eine Messung für einen HTTP-Request ein. Verwenden Sie die URN aus dem Beispiel in Schritt 4.

Schicken Sie dann über einen Browser einen Request des gleichen Typs an Ihr Systen.

  1. Bereiten Sie den Test-HTTP-Request vor. Öffnen Sie einen Browser. Geben Sie im Feld Adresse einen Request an einen der Server in Ihrem System ein:

    http://<host>:<port>/sap/bc/ccms/monitoring/grmg_app

    Beispiel: http://host22:50000/sap/bc/ccms/monitoring/grmg_app

    Verwenden Sie die Transaktion SM51, SAP-Server, zur Ermittlung des <host>, d.h. des Hostnamens des Servers, aus dem Feld Rechnername.

    Verwenden Sie die Transaktion SMICM, ICM Manager, auf dem gewählten Server zur Ermittlung der HTTP-<port>-Nummer. Wählen Sie Anfang des Navigationspfads Springen Nächster Navigationsschritt Parameter Nächster Navigationsschritt Anzeigen Ende des Navigationspfads zur Ermittlung der Portnummer ( PROT=HTTP, PORT=<port number>).

    GRMG_APP ist ein Service, der in den aktuellen Release-Ständen von SAP NetWeaver vorhanden ist. Er kann ohne zu befürchtende negative Auswirkungen im System aufgerufen werden.

  2. Senden Sie den Request.

    Der Browser zeigt ein Anmeldedialogfenster an. Melden Sie sich mit Ihrem oder einem anderen Benutzer an.

    Der Request endet mit einer Fehlermeldung im Browser (dies wird erwartet: der Service erwartet einen bestimmten Request-Typ).

  3. Zeigen Sie das Trace des Request an.