Profiler Utility im Batch-Modus benutzen

Der Natural Profiler wird verwendet, um den internen Prozessfluss einer Natural Batch-Anwendung zu überwachen und die Performance und die Codeabdeckung der Anwendung zu analysieren.

Die Profiler Utility wird durch JCL-Eingabe gesteuert und bietet Funktionen zur Datensammlung und Datenverarbeitung:

  1. Die Datensammlungsfunktionen steuern das Profiler-Tracing, wählen erforderliche Ereignistypen aus, filtern, konsolidieren (aggregieren) oder nehmen Datenproben (Sampling) und schreiben die resultierenden Ereignisse in die Profiler-Ressourcendatei.

  2. Die Datenverarbeitungsfunktionen lesen und verarbeiten die Ereignisdaten aus der Profiler-Ressourcendatei. Nicht konsolidierte Ereignisdaten können konsolidiert werden.

    Sie können Statistiken, eine Programmzusammenfassung, eine Zeilenzusammenfassung und eine Transaktionszusammenfassung, ein Programm-Trace (Ablaufverfolgung), ein Ereignis-Trace mit den wichtigsten Daten sowie Reports über die Programm- und Statement-Abdeckung ausgeben. Sie können die resultierenden Daten im Text- oder CSV-Format (kommatrennte Werte) exportieren.

Die folgenden Tools bieten außerdem Funktionen zum Lesen von Profiler-Ressourcendateien und zum Analysieren der Daten:

  • NaturalONE zeigt das vollständige Ereignis-Tracing an und bietet eine Performance-Analyse (Hot-Spots) der Natural Batch-Anwendung. Abdeckungsdaten können in der NaturalONE Coverage-Ansicht und im NaturalONE Source Editor überprüft werden.

  • Die Profiler Rich GUI-Schnittstelle, das von den NaturalONE Tools and Utilities gestartet wird, bietet Funktionen zum Auswerten oder Konsolidieren von Profiler-Daten oder zum Löschen einer Ressourcendatei. Interaktive Kreisdiagramme zeigen die Verteilung der Profiler-Leistungskennzahlen (KPIs, Key Performance Indicators) für ausgewählte Kriterien, z.B. die Verteilung der CPU-Zeit für Programme. Bei überwachten Programmen wird der Quellcode mit den Profiler-Daten kombiniert, wobei der Quellcode entsprechend dem Wert des ausgewählten KPI eingefärbt wird.

Dieses Kapitel behandelt die folgenden Themen:


Schnellstart für das Profiling

Dieser Abschnitt beschreibt kurz die Schritte, die für die Profil-Erstellung von Natural-Batch-Anwendungen und die Anzeige der Ergebnisse erforderlich sind. Die hier aufgeführten Anweisungen können als Richtlinie dienen, wenn Sie mit der Verwendung des Natural Profilers beginnen. Detaillierte Informationen zu den Schritten finden Sie im Rest dieses Kapitels.

Die Schritte hängen, wie in der folgenden Grafik dargestellt, von der Auswertung ab, die Sie für Ihre Anwendung durchführen möchten:

Quick steps to be taken or checked before initiating profiling.

  1. Überprüfen Sie, ob die Voraussetzungen erfüllt sind.

  2. Fügen Sie im Natural Batch-Job die Profiler Utility-Funktionen INIT, FILTER und START hinzu, um die Ereignisdatenerfassung zu starten. Im folgenden Beispiel für z/OS wird das Natural-Programm XPROF in der Library PRFDEMO profiliert:

    //CMSYNIN  DD  *
    PROFILER
    FUNCTION=INIT                /* Initialize profiling
      RESOURCE-NAME='ResNam',REPLACE=YES  /* Resource name
      RESOURCE-LIB=RESLIB        /* Resource library
    FILTER=EVENT                 /* Set event filter
      EVENT=ALL                  /* All events
      STATEMENT=ON               /* Collect statements
    FUNCTION=START               /* Start data collection
    END-PROFILER                 /* End Profiler input 
    LOGON PRFDEMO
    XPROF
    10000
    FIN

    Im obigen Beispiel werden die Profiler-Ereignisdaten in eine Ressourcendatei mit dem Namen ResNam.nprf in der Library RESLIB geschrieben. Siehe auch Profilierung initialisieren und Datensammlung starten und anhalten.

  3. Öffnen Sie die NPRF-Ressource in NaturalONE, um die Hot-Spots und das Ereignis-Tracing zu sichten.

  4. Starten Sie einen Natural-Batch-Job mit der READ-Funktion der Profiler Utility, um ein Ereignis-Tracing, ein Programm-Tracing und die Profiler-Statistiken zu drucken. Beispiel:

    FUNCTION=READ           /* Read Profiler data
      RESOURCE-LIB=RESLIB   /* Resource library
      RESOURCE-TYPE=NPRF    /* Use resource type NPRF
      EVENT=ON              /* Print event trace
      PROGRAM=ON            /* Print program trace
      STATISTICS=ON         /* Print statistics

    Siehe auch Lesefunktion (READ) der Profiler Utility. In diesem Abschnitt wird auch beschrieben, wie Sie eine Transaktionszusammenfassung generieren.

  5. Konsolidieren (aggregieren) Sie die Ereignisdaten aus der Profiler Rich GUI-Schnittstelle oder starten Sie einen Natural-Batch-Job mit der Profiler Utility-Funktion CONSOLIDATE. Beispiel:

    FUNCTION=CONSOLIDATE    /* Consolidate Profiler data
      RESOURCE-LIB=RESLIB   /* Resource library
      REPLACE=YES           /* Replace resource

    Die konsolidierten Profiler-Ereignisdaten werden in die Ressource ResNam.nprc in der Library RESLIB geschrieben. Siehe Ereignisdaten konsolidieren.

  6. Öffnen Sie die NPRC-Ressource in NaturalONE, um die Hot-Spots zu sichten.

  7. Öffnen Sie die NPRC-Ressource mit der Profiler Rich GUI-Schnittstellenfunktion Data Evaluation oder Program Analysis, um die Profiler-Daten in einer grafischen, interaktiven Browser-Oberfläche zu visualisieren.

  8. Starten Sie einen Natural-Batch-Job mit der Profiler Utility-Funktion READ, um eine Programmzusammenfassung, eine Zeilenzusammenfassung und die Profiler-Statistiken zu generieren. Beispiel:

    FUNCTION=READ           /* Read Profiler Data
      RESOURCE-LIB=RESLIB   /* Resource library
      RESOURCE-TYPE=NPRC    /* Use resource type NPRC
      PROGRAM=ON            /* Print program summary
      LINE=ON               /* Print line summary
      STATISTICS=ON         /* Print statistics

    Siehe auch Lesefunktion (READ) der Profiler Utility. In diesem Abschnitt wird auch beschrieben, wie Sie eine Transaktionszusammenfassung generieren.

Anmerkungen:

  1. Wenn Sie vorhaben, ein Profil einer langlaufenden Batch-Anwendung zu erstellen, lesen Sie den Abschnitt Langlaufende Anwendungen profilieren. Er behandelt Strategien, wie die Anzahl der zu überwachenden Ereignisse minimiert werden kann.
  2. Der NaturalONE Profiler und die Profiler Rich GUI-Schnittstelle werden in der NaturalONE-Dokumentation ausführlich beschrieben.

Schnellstart für die Codeabdeckung

Dieser Abschnitt beschreibt kurz die Schritte, die erforderlich sind, um die Messung der Codeabdeckung einer Natural-Batch-Anwendung durchzuführen und die Ergebnisse zu sichten. Die hier bereitgestellten Anweisungen können als Richtlinie dienen, wenn Sie mit der Benutzung der Natural Code Coverage-Funktion beginnen. Detaillierte Informationen zu den Schritten finden Sie weiter unten in diesem Kapitel.

Die Schritte hängen, wie in der folgenden Grafik dargestellt, von der Bewertung ab, die Sie für Ihre Anwendung durchführen möchten:

Quick steps to be taken or checked before initiating code coverage.

  1. Überprüfen Sie, ob die Voraussetzungen erfüllt sind.

  2. Fügen Sie in dem Natural Batch-Job die Profiler Utility-Funktionen COVERAGE und START hinzu, um die Sammlung von Code-Abdeckungsdaten zu starten.

    Im folgenden Beispiel für z/OS wird das Natural-Programm TESTCOVP in der Library COVDEMO behandelt.

    //CMSYNIN  DD  *
    PROFILER
    FUNCTION=COVERAGE            /* Initialize coverage
      RESOURCE-NAME='ResNam'     /* Resource name
      REPLACE=YES                /* Replace the resource
      RESOURCE-LIB=RESLIB        /* Resource library
    FUNCTION=START               /* Start data collection
    END-PROFILER                 /* End Profiler input 
    LOGON COVDEMO
    TESTCOVP
    FIN

    Im obigen Beispiel werden die Profiler-Abdeckungsdaten in eine Ressourcendatei mit dem Namen ResNam.ncvf in der Library RESLIB geschrieben. Siehe auch Initialisierung der Codeabdeckung (Code Coverage) und Datensammlung starten und anhalten.

  3. Öffnen Sie die NCVF-Ressource in NaturalONE, um die Code Coverage-Ansicht zu erhalten.

  4. Von der NaturalONE Code Coverage-Ansicht aus können Sie den Quellcode direkt bearbeiten. Der Editor zeigt alle Zeilen, die abgedeckte Statements enthalten, grün hinterlegt an.

  5. Starten Sie einen Natural-Batch-Job mit der Profiler-Utility-Funktion READ, um die Programm- und Statement-Abdeckung und die Profiler-Statistiken zu drucken.

    Beispiel:

    FUNCTION=READ           /* Read Profiler data
      RESOURCE-LIB=RESLIB   /* Resource library  
      RESOURCE-TYPE=NCVF    /* Use resource type 
      EVENT=ON              /* Print statement co
      PROGRAM=ON            /* Print program cove
      STATISTICS=ON         /* Print statistics    
      EXPORT=ON             /* write to work 7     
      FORMAT=C              /* Semicolon/Comma/Text

    Wenn das Schlüsselwort EXPORT der READ-Funktion der Profiler-Utility aktiviert ist, wird die Ausgabe in Arbeitsdatei 7 (Work File 7) geschrieben. Wenn FORMAT als C oder S angegeben wird, wird das Ergebnis als kommagetrennte Werte (CSV) geschrieben, wobei ein Komma bzw. ein Semikolon als Trennzeichen verwendet wird.

  6. Exportieren Sie die Daten von Arbeitsdatei 7 mit einem beliebigen Tool (z. B. FTP) als CSV-formatierte Datei in eine Windows-Umgebung, wenn Sie sie in Microsoft Excel weiterverarbeiten möchten.

Anmerkungen:

  1. Die NaturalONE Code Coverage-Ansicht und der NaturalONE Editor sind in der NaturalONE-Dokumentation beschrieben.

Voraussetzungen

Die folgenden Voraussetzungen müssen erfüllt sein, bevor Sie die Profiler Utility im Batch-Modus verwenden können:

Natural-Parametereinstellungen

Für die Natural Profiler-Datenerfassungsfunktionen (INIT, COVERAGE, START, PAUSE und TEXT) müssen Sie die folgenden Natural-Profilparameter definieren:

  • RDCSIZE - Um den Natural Data Collector (ohne Aufzeichnungsdaten im Puffer des Natural Data Collector) zu aktivieren, geben Sie an:

    RDCSIZE=2
  • RDCEXIT - Um NATRDC1 als User Exit für den Natural Data Collector zu definieren, geben Sie an:

    RDCEXIT=NATRDC1
  • PDPSIZE - Optionaler Parameter, den Sie zusätzlich angeben können, um die Profiler-Daten-Pool-Größe zu bestimmen, zum Beispiel:

    PDPSIZE=1000

Die Datenverarbeitungsfunktionen der Profiler Utility (CONSOLIDATE, READ, LIST und DELETE) können nicht ausgeführt werden, wenn die Profil-Erstellung aktiv ist. Aus Performance-Gründen empfehlen wir, auch den Natural Data Collector für diese Funktionen mit der folgenden (Standard-)Parametereinstellung zu deaktivieren:

RDCSIZE=0

Einzelheiten zu den oben genannten Natural-Profilparametern finden Sie in den entsprechenden Abschnitten in der Parameter-Referenz-Dokumentation.

Programme, die mit dem Natural Optimizer kompiliert werden, erfordern die folgende Natural Optimizer-Optionseinstellung:

NODBG=OFF

(Siehe auch Liste der Optionen in der Natural Optimizer Compiler-Dokumentation.)

Natural-Nukleus-Verlinkung

Der Natural-Nukleus muss "reentrant" und "reusable" sein. Verwenden Sie die folgenden Linkage-Optionen:

RENT,REUS

Anzeige von Ressourcendateien in Natural Development Server-Umgebungen

Standardmäßig werden Natural-Großrechner-Ressourcendateien in Natural Development Server (NDV) -Umgebungen wie NaturalONE oder Natural Studio nicht angezeigt. Für die Analyse der Profiler-Ereignisdaten muss von NaturalONE aus auf die Ressourcendatei zugegriffen werden. Dazu müssen Sie das NDV-Verhalten ändern.

Beginn der AnweisungslisteUm Ressourcendateien in einer NDV-Umgebung anzuzeigen:

  1. Kopieren Sie den Quellcode des NDV-User Exit NDV-SX03 aus der Natural-System-Library SYSLIB in eine Benutzer-Library.

  2. Bearbeiten Sie das Member. Passen Sie den Code folgendermaßen an:

    DISPLAY-RESOURCES := 'Y'   /* Display resources in NaturalONE/Studio
  3. Katalogisieren Sie das Member unter dem Namen NDV-UX03.

  4. Kopieren Sie es zurück in die System-Library SYSLIB oder in die Library SYSLIBS oder SYSTEM.

Datenverarbeitung aktivieren

Wenn NaturalONE auf Ihrem Rechner installiert ist, können Sie die Datenverarbeitungsfunktionen der Profiler Utility (CONSOLIDATE, READ, LIST und DELETE) mit den folgenden Schritten aktivieren:

  1. Starten Sie NaturalONE.

  2. Mappen Sie sich in der Natural Server-Ansicht auf die Umgebung, in der sich die Profiler-Ressourcen befinden.

  3. Fügen Sie das in der System-Library SYSPRFLR enthaltene Programm ACTIVATE zu einem neuen oder vorhandenen Projekt in NaturalONE hinzu.

  4. Profilieren Sie das Programm ACTIVATE mit der Kontextmenüfunktion Profile As > Natural Application.

  5. Vergewissern Sie sich, dass die benutzerdefinierten Ereignisdaten auf der Seite Event Trace des NaturalONE Profilers die Aktivierungserfolgsmeldung enthält.

Alternativ können Sie die Datenverarbeitungsfunktionen der Profiler Utility über die NaturalONE Tools and Utilities aktivieren:

  1. Starten Sie NaturalONE.

  2. Wählen Sie in Ihrem Arbeitsbereich ein Natural-Projekt aus, das auf die Umgebung gemappt ist, in der sich die Profiler-Ressourcen befinden.

  3. Rufen Sie das Kontextmenü auf und wählen Sie NaturalONE > Tools and Utilities, um die Utility SYSUTIL zu starten.

  4. Wählen Sie Natural Profiler Activation in der Baumstruktur und klicken Sie auf Execute (Ausführen).

Wenn Sie die oben beschriebenen Schritte ausführen, wird ein NaturalONE Profiler-Schlüssel generiert und in die Natural-Ressource NaturalONEProfilerKey.nprk in der System-Library SYSPRFLR geschrieben. Jede Profiler-Datenverarbeitungsfunktion liest diese Ressource und überprüft den Schlüssel. Wenn der Schlüssel gültig ist, wird die Funktion ausgeführt. Ein neu generierter Schlüssel ist ein Jahr gültig. Er kann immer wieder neu generiert werden.

Die Profiler-Datenverarbeitungsfunktion beginnt 9 Tage vor Ablauf des Schlüssels mit der Ausgabe einer Warnung und gibt eine Fehlermeldung zurück, wenn kein Schlüssel gefunden wird oder wenn der Schlüssel nicht gültig ist.

Profiler Utility aufrufen und beenden

Dieser Abschnitt beschreibt, wie Sie die Profiler Utility im Batch-Modus aufrufen und beenden.

Beginn der AnweisungslisteUm die Profiler Utility aufzurufen:

  • Geben Sie das folgende Systemkommando in die primäre Batch-Eingabedatei für Kommandos CMSYNIN ein:

    PROFILER

    Anmerkung:
    Nach dem Systemkommando PROFILER erwartet der Profiler eine oder mehrere Zeilen mit Profiler-Schlüsselworteinträgen.

Beginn der AnweisungslisteUm die Profiler Utility zu beenden:

  • Geben Sie das folgende Profiler-Schlüsselwort in die primäre Batch-Eingabedatei für Kommandos CMSYNIN ein:

    END-PROFILER

    Oder:

    END

    Oder:

    .

Syntax und Schlüsselwörter

Die Profiler Utility im Batch-Modus liest die Profiler-Schlüsselwörter, die die Profil-Erstellung aus der primären Batch-Eingabedatei für Kommandos CMSYNIN steuern. Der Profiler liest die Eingabezeilen, bis er das Schlüsselwort END-PROFILER (oder END oder .) erreicht.

Dieser Abschnitt behandelt die folgenden Themen:

Profiler Utility-Syntax

Die Symbole, die in den in diesem Abschnitt gezeigten Syntaxdiagrammen verwendet werden, werden in der Systemkommando-Syntax in der Systemkommandos-Dokumentation erläutert.

Geben Sie ein Profiler Utility-Kommando mit einem der folgenden Syntaxformate ein:

keyword[=value][,keyword[=value]]...

Oder:

keyword
[value]
...

Anmerkungen:

  1. Wenn ein Wert mit einem Schlüsselwort verknüpft ist, aber kein Gleichheitszeichen gefunden wird, erwartet der Profiler den Wert in einer separaten Eingabezeile ohne anderes Schlüsselwort (zweites Syntaxformat).
  2. Das erste Syntaxformat erwartet die Eingabe im Delimiter-Modus (IM=D).
  3. Das zweite Syntaxformat kann verwendet werden, wenn der Profiler mit dem Natural-Profilparameter STACK ausgeführt werden soll oder wenn die Daten im Forms-Modus (IM=F) eingegeben werden.

Es gelten die folgenden Regeln:

  • Leerzeilen und Zeilen, die mit einem Stern (*) beginnen, werden ignoriert.

  • Alle Zeichen in einer Zeile von /* bis */ oder bis zum Ende der Zeile werden ignoriert.

  • Einige Schlüsselwörter haben keinen zugeordneten Wert.

  • Leerzeichen können vor oder nach dem Schlüsselwort oder Wert hinzugefügt werden.

  • Mehrere Schlüsselwörter in einer Zeile werden durch Kommas getrennt (gilt nur für das erste Syntaxformat).

  • Ein Wert kann in Apostrophe ('value') eingeschlossen werden.

  • Ein Wert darf kein Komma enthalten.

  • Schlüsselwörter und Werte können in Groß- oder Kleinbuchstaben angegeben werden.

  • Die maximale Länge der Eingabezeile beträgt 78 Zeichen.

Die Profiler Utility kann mehrmals in einer Natural-Session ausgeführt werden. Zum Beispiel wird sie zuerst mit den Funktionen INIT und START und dann, nach der Ausführung eines Benutzerprogramms, mit der PAUSE-Funktion ausgeführt.

Beispiel:

Das folgende Natural-Batch-Beispiel (auf z/OS) zeigt die ursprüngliche JCL, die das XPROF-Programm in der Library PRFDEMO (Zeilen in normaler Schrift) ausführt, und die Eingabezeilen der Profiler Utility, die zum Profilieren des XPROF-Programms verwendet werden (Zeilen fett gedruckt).

//CMSYNIN  DD  *
PROFILER
FUNCTION=INIT                /* Initialize profiling
  RESOURCE=ON                /* Write to resource
  RESOURCE-NAME='Demo01',REPLACE=YES  /* Resource name
  RESOURCE-LIB=PRFDATA       /* Resource library
FUNCTION=START               /* Start data collection
END-PROFILER                 /* End Profiler input 
LOGON PRFDEMO
XPROF
10000
FIN

Das folgende Natural Batch-Beispiel (auf z/OS) zeigt, wie der Profiler mit dem Natural-Profilparameter STACK ausgeführt werden soll.

STACK=(
 PROFILER FUNCTION:INIT:
   RESOURCE:ON:
   RESOURCE-LIB:PRFDATA:
   REPLACE:YES:
 FUNCTION:START:
 END-PROFILER;
 LOGON PRFDEMO
 )

Profiler Utility-Schlüsselwörter

Die wichtigsten Schlüsselwörter, die in der Syntax der Profiler Utility im Batch-Modus verwendet werden, werden in der folgenden Tabelle beschrieben. Alle zusätzlichen (untergeordneten) Schlüsselwörter, die bei einem Hauptschlüsselwort verfügbar sind, werden in den Abschnitten beschrieben, auf die in der Tabelle verwiesen wird. Im Allgemeinen muss ein untergeordneter Schlüsselwortwert dem Hauptschlüsselwortwert folgen, zum Beispiel:

FUNCTION=READ
  PRINT=ON

Ein untergeordnetes Schlüsselwort, das vor dem ersten FUNCTION- oder FILTER-Schlüsselwort angegeben wurde, wird als untergeordnetes Schlüsselwort des ersten FUNCTION- oder FILTER-Schlüsselworts behandelt.

Die folgenden Hauptschlüsselwörter stehen zur Verfügung:

Schlüsselwort Wert Profiler Utility-Funktion ausführen
FUNCTION CONSOLIDATE Ressourcendaten konsolidieren (aggregieren). Siehe Ereignisdaten konsolidieren.
COVERAGE Natural-Codeabdeckung initialisieren. Diese Funktion ist für die Sammlung von Code-Abdeckungsdaten obligatorisch. Siehe Initialisierung der Codeabdeckung (Code Coverage).
DELETE Eine Natural Profiler-Ressourcendatei löschen. Siehe Profiler-Ressourcendateien verwalten.
INIT Profil-Erstellung initialisieren. Diese Funktion ist für die Profil-Erstellungsdatenerfassung obligatorisch. Siehe Profilierung initialisieren.
LIST Profiler-Ressourcen auflisten. Siehe Profiler-Ressourcendateien auflisten unter Maintaining Profiler Resource Files.
PAUSE Datenerfassung pausieren. Siehe Datensammlung starten und anhalten.
READ Ressourcendaten lesen und bewerten. Siehe Ereignisdaten auswerten.
START Datensammlung starten bzw. erneut starten. Siehe Datensammlung starten und anhalten.
TEXT Zu den Ereignisdaten ein Benutzerereignis hinzufügen. Siehe Benutzerdefinierter Ereignisse schreiben.
FILTER   Profiler-Filter definieren, um die Menge der Ereignisdaten zu reduzieren. Siehe Filtern zur Begrenzung der gesammelten Daten benutzen.
COUNT Filter für die Ereignisanzahl setzen.
EVENT Ereignis-, FNAT- und Statement-Filter setzen.
PROGRAM Library-, Programm und Zeilen-Filter setzen.
TIME CPU-Zeitfilter setzen.
RPC   Einen Batch-Natural RPC-Server profilieren. Siehe

Profile a batch Natural RPC server. See Batch-Natural RPC-Server profilieren.

ON-ERROR   Behandlung von Profiler-Fehlersituationen festlegen.

Standardwert: TERMINATE

CONTINUE Profiling stoppen, aber Natural-Session fortsetzen.
TERMINATE Mit dem Natural Profiler eine Beendigung der Natural Session erzwingen.
TRACE 0 - 10 Ebene der internen Ablaufverfolgung der Profiler-Trace-Sitzung festlegen.

Das interne Trace enthält Informationen wie Profiler-Fehler und wird in die Standardausgabe der Trace-Sitzung (CMPRINT-Datensatz) geschrieben. Siehe Interner Trace.

Standardwert: 2 (Warnung).

HELP   Hilfe benutzen.

Es wird eine zusammengefasste Beschreibung der Profiler-Schlüsselwörter in die Standardausgabe geschrieben.

INCLUDE object-name Der Name des Natural-Textobjekts, das Profiler-Eingabedaten enthält.

Siehe auch Profiler-Eingaben aus Natural-Textobjekten einfügen.

INCLUDE-LIB library-name Name der Natural-Library, die das mit dem INCLUDE-Schlüsselwort angegebene Textobjekt enthält.

Wenn die Natural-Systemvariable *LIBRARY-ID angegeben wird, wird der Name der aktuellen Bibliothek verwendet.

Der Library-Name wird für alle folgenden INCLUDE-Schlüsselwörter verwendet.

Standardeinstellung: Wenn INCLUDE-LIB nicht vor einem INCLUDE-Schlüsselwort angegeben ist, wird standardmäßig die Natural-System-Library SYSPRFLR verwendet.

Siehe auch Profiler-Eingaben aus Natural-Textobjekten einfügen.

END-PROFILER

oder

END

oder

.

  Profiler-Eingabe beenden.

Das Schlüsselwort END-PROFILER, END oder ein Punkt (.) gibt das Ende der Profiler-Eingabe an.

ONLINE   Die Online Profiler Utility in einem Batch-Lauf ausführen.

Diese Option dient der Kompatibilität mit früheren Natural-Versionen, als die Profiler Utility im Batch-Modus das Profiler-Online-Menü startete. Wenn diese Funktionalität weiterhin erforderlich ist, verwenden Sie ONLINE als erstes Schlüsselwort. Alle nachfolgenden Eingaben werden über die Profiler-Online-Menüs getätigt.

Gesammelte Ereignisse und Daten

Dieser Abschnitt beschreibt die Ereignisse und Daten, die von der Profiler Utility im Batch-Modus verarbeitet werden.

Ereignisse

Während einer Natural-Session können verschiedene Arten von Ereignissen auftreten (z. B. ein Programmstart), bei denen der Profiler ereignisspezifische Daten in einem Trace-Datensatz sammelt. Jedes Ereignis ist mit einem Ereignistyp verknüpft, d. h. einem Code mit einem oder zwei Buchstaben. Verwandte Ereignistypen werden zu einer Ereignisgruppe zusammengefasst, die durch einen Ein-Buchstaben-Code gekennzeichnet ist.

Folgende Ereignisse, Ereignistypen und Ereignisgruppen stehen zur Verfügung:

Ereignis Ereignistyp Ereignisgruppe Zeitpunkt des Auftretens
Session Initialization SI S Wenn eine Natural-Batch-Session initialisiert wird. Da die Profiler-Monitor-Session nach der Trace-Session gestartet wird, kann dieses Ereignis nicht überwacht werden.
Session Termination ST S Wenn eine Natural-Batch-Session beendet wird. Der Profiler überwacht dieses Ereignis immer.
Program Load PL P Wenn ein Programm (Natural-Objekt) geladen wird oder wenn es sich bereits im Buffer Pool befindet.
Program Start PS P Wenn ein Programm (Natural-Objekt) gestartet wird.
Program Termination PT P Wenn ein Programm (Natural-Objekt) beendet wird.
Program Resume PR P Wenn ein Programm (Natural-Objekt) die Kontrolle wieder übernimmt, nachdem ein anderes Natural-Objekt ausgeführt wurde, oder wenn die Kontrolle zur Ebene 0 zurückkehrt (kein Programm aktiv).
Program Information PI P Wenn auf ein Programm (Natural-Objekt) zum ersten Mal zugegriffen wird. Dieses Ereignis wird nur bei der Natural-Codeabdeckung ausgelöst.
Before Database Call DB D Bevor ein Datenbankaufruf ausgeführt wird.
After Database Call DA D Nachdem ein Datenbankaufruf ausgeführt worden ist.
Before Terminal I/O IB I Bevor eine Terminal-Ein-/Ausgabe ausgeführt wird.
After Terminal I/O IA I Nachdem eine Terminal-Ein-/Ausgabe ausgeführt worden ist.
Before External Program Call CB C Bevor ein externer Programmaufruf (CALL-Statement) ausgeführt wird.
After External Program Call CA C Nachdem ein externer Programmaufruf (CALL-Statement) ausgeführt worden ist.
Runtime Error E E Wenn ein Natural-Laufzeitfehler aufgetreten ist.
Natural Statement NS N Wenn ein Natural-Statement ausgeführt wird. Aus technischen Gründen gibt es keine Eins-zu-Eins-Beziehung zwischen einem Natural-Quellcode-Statement und dem entsprechenden Objektcode im katalogisierten Objekt. Daher können mehrere Natural-Statements zu einem NS-Ereignis zusammengeführt werden, und umgekehrt kann ein Natural-Statement mehrere NS-Ereignisse abdecken.
Inbound RPC Message RI R Wenn das Natural RPC Server Layer die Client-Anforderung empfängt.
Start of RPC Request Execution RS R Wenn das Natural RPC Server Layer das Natural-Server-Programm aufruft.
Outbound RPC Message RO R Wenn der Natural RPC Server das Ergebnis an den Client zurückgibt.
RPC Wait for Client RW R Wenn der Natural RPC Server auf die nächste Nachricht vom Client wartet.
User-Defined Event U U Wenn ein benutzerdefiniertes Ereignis generiert wurde.

Siehe Benutzerdefinierter Ereignisse schreiben.

Monitor Pause MP M Wenn die Datensammlung angehalten wird.

Ein Pausenereignis kann durch eine explizite Pausenanforderung, zu Beginn eines Blockfilters oder wenn der Datenpool voll ist, verursacht werden. Die Dauer einer Pause wird bei der Analyse der Anwendungs-Performance nicht berücksichtigt.

Mit jedem gesammelten Ereignis werden ein CPU- und ein Ereigniszeitstempel aufgezeichnet. Im Allgemeinen wird zu Beginn eines Ereignisses ein Zeitstempel genommen. Die Dauer eines Ereignisses entspricht daher der Zeit, die zwischen dem Zeitstempel des Ereignisses und dem Zeitstempel des folgenden Ereignisses vergeht.

Gesammelte Daten

Dieser Abschnitt beschreibt die von der Profiler Utility gesammelten Daten:

Allgemeine Daten

Die folgenden Datenelemente werden bei jedem Ereignis gesammelt:

  • Ereigniszähler

  • Ereignistyp

  • Ereigniszeit in Mikrosekunden

  • Session-CPU-Zeit in Mikrosekunden

  • Trace-Session-Kennung

  • Natural Security-Benutzergruppenkennung

  • Natural-Benutzerkennung

  • Natural-Anwendungsname

  • Programm-Library

  • Programmname

  • Programmebene

  • Copycode-Library

  • Copycode-Name

  • Statement-Zeilennummer

  • Statement-Op-Code

  • Coverage Flag (für Natural-Codeabdeckung)

Anmerkungen:

  1. Die für die Datensammlung aufgewendete Zeit (Monitor-CPU-Zeit) wird separat gemessen und aus der CPU-Zeit der Session herausgenommen.
  2. Die Ereignisse werden gezählt, bevor eine Filterung oder Probenahme (Sampling) durchgeführt wird. Daher erhalten die Ereignisse im Allgemeinen die gleichen Zählergebnisse, unabhängig davon, welche Filterung oder Probenahme verwendet wird.
  3. Statement-Ereignisse werden nur gezählt, wenn das Ereignisfilter-Schlüsselwort STATEMENT=COUNT verwendet wird.
  4. Monitor Pause-Ereignisse werden nicht gezählt.
  5. Natural-Codeabdeckung sammelt nur NS- und PI-Ereignisse
  6. Natural-Codeabdeckung sammelt keine Zeitwerte.
  7. Für jedes Objekt, auf das zugegriffen wird, und für alle (rekursiv) im Objekt enthaltenen Copycodes wird ein PI-Ereignis gesammelt.
Ereignisspezifische Daten:

Die folgenden Daten werden nur bei folgenden Ereignissen erhoben:

Ereignis Datenelemente
Session Initialization

(Session-Initialisierung)

Keines
Session Termination

(Session-Beendigung)

Beendigung-Rückgabecode
Natural-Beendigung-Meldungscode NAT99nn
Name des Back-End-Programms
Monitor-CPU-Zeit im Mikrosekunden

Program Load

(Laden eines Programms)

Name des zu ladenden Programms
Name der Load Library
Aufruftyp

Program Resume

(Programm-Wiederaufnahme)

Keines
Program Start/Termination

(Programm-Start/Beendigung)

Programmtyp
Datenbankkennung der Programm-Library
Dateinummer der Programm-Library

Program Information

(Programminformationen)

Programmtyp
Anzahl der Statements in dem Programm oder im Copycode
Erstes Statement Item
INCLUDE-Zeilennummer
Parent-Copycode-Kennung

Database Call

(Datenbankaufruf)

Datenbanktyp
Kommandocode
Kommandokennung
Datenbankkennung DBID
Dateinummer
Antwortcode (Ereignistyp DA)
Fehler-Subcode (Ereignistyp DA)
Adabas-Kommandozeit (Ereignistyp DA)

Terminal I/O

(Terminal-Ein-/Ausgabe)

Anzahl gesendeter Bytes
Anzahl gelesener Bytes
Zugeordneter Gesamtspeicher
Länge des komprimierten Session-Speichers

External Program Call

(externer Programmaufruf)

Name des aufgerufenen Programms
Aufrufmodus, z.B. dynamischer oder statischer Modus
Programm-Link-Ort
Parametertyp, z.B. Referenz oder Wert
Rückmeldecode (Ereignistyp CA)

Runtime Error

(Laufzeitfehler)

Natural-Systemfehlermeldungscode
Externer Abend Code
Name des Fehlerbehandlungsprogramms

Natural Statement Profiling: Keines

Natural-Codeabdeckung: Statement Item Identifier (GP Offset)

Start of RPC Request Execution

(Beginn der RPC-Anforderungsausführung)

Umgebung (C = Client, S = Server)
Name des Subprogramms
Adabas-Benutzerkennung (ETID)
Status der Konversation
Anmelde-Indikator (Y = Anmeldung durchgeführt)
Impersonierung-Indikator der RPC-Anforderung (Y = Impersonierung durchgeführt)

Outbound/Inbound RPC Message / RPC Wait for Client

(Ausgehende/eingehende RPC-Nachricht / RPC Warten auf Client)

Umgebung (C = Client, S = Server)
Transportprotokoll
RPC-Funktion
Typ der Client-Benutzerkennung
Länge der Nachricht
RPC-Rückgabecode
Externe Konversationskennung
Client-Benutzerkennung
Serverknoten (Ereignistypen RO und RW)
Servername (Ereignistypen RO und RW)

User-Defined Event

Benutzerdefiniertes Ereignis

Subtyp des benutzerdefinierten Ereignisses
Bis zu 249 Bytes benutzerdefinierte Informationen

Monitor Pause Art der Monitorpause

Mögliche Werte:

R Monitorpause angefordert. Dieser Wert wird auch gesetzt, wenn die Sitzung mit der Pause-Option initialisiert wird.
F Beginn eines Blocks von herausgefilterten Ereignissen. Blockfilter sind: Library, Programm, Zeile, FNAT, Ereignisanzahl oder Zeitfilter.
W Die Trace-Session wartet, weil der Daten-Pool voll ist.

Profilierung initialisieren

Die INIT-Funktion der Profiler Utility initialisiert die Profil-Erstellung. Die INIT-Funktion muss vor einer der Profiler Utility-Funktionen START, PAUSE oder TEXT oder einem Profiler-Filter ausgeführt werden.

Syntax der INIT-Funktion:

FUNCTION=INIT
  [RESOURCE={ON|OFF}]
  [RESOURCE-NAME=resource-name]
  [RESOURCE-LIB=library-name]
  [REPLACE={YES|NO}]
  [SAMPLING={ON|OFF}]
  [INTERVAL={100|interval-time}]
  [CONSOLIDATE={ON|OFF}]
  [TRANSACTION={ON|OFF}]
  [WAIT-FULL={60|wait-full-time}]
  [WAIT-EMPTY={60|wait-empty-time}]
  [CMPRMIN=data-set-name]
  [CMSYNIN=data-set-name]
  [TRACE-EVENT={ON|OFF}]
  [TRACE-MONITOR={3|trace-level}]
  [TRACE-CONSOLIDATE={ON|OFF}]

Syntax-Beschreibung:

Schlüsselwort für INIT Wert Beschreibung
RESOURCE   Gibt an, ob die Ereignisdaten in eine Natural Profiler-Ressourcendatei (NPRF oder NPRC) geschrieben werden sollen.
ON Die Ereignisdaten werden in eine Natural Profiler-Ressourcendatei geschrieben und können mit NaturalONE oder mit den Datenverarbeitungsfunktionen der Natural Profiler Utility analysiert werden.
OFF Die Ereignisdaten werden nicht in eine Natural Profiler-Ressourcendatei geschrieben. Diese Option kann verwendet werden, wenn nur der Profiler-Ereignis-Trace oder die Statistiken erforderlich sind.
RESOURCE-NAME resource-name Der Name der Profiler-Ressourcendatei, in der die Ereignisdaten für eine spätere Analyse gespeichert werden. Wenn die Erweiterung .nprf (Natural Profiler-Ressourcendatei) oder .nprc (Natural Profiler-Ressource, konsolidiert) nicht angegeben wurde, wird sie automatisch hinzugefügt. Welche Erweiterung verwendet wird, hängt vom Schlüsselwort CONSOLIDATE ab.

Standardeinstellung: *INIT-USER_yyyymmdd_hhiiss

Dabei ist *INIT-USER der Inhalt der entsprechenden Natural-Systemvariablen (Name des Jobs oder Benutzerkennung, unter der die Natural-Session läuft);

und yyyymmdd_hhiiss ist das Datum und die Uhrzeit der Ressourcengenerierung.

RESOURCE-LIB library-name Der Name der Natural-Library, der die Ressource zugeordnet ist.

Standardwert: Der Name der aktuellen Library.

REPLACE   Gibt an, ob die Ressource ersetzt wird, wenn sie bereits vorhanden ist.
YES Ressource ersetzen, falls vorhanden.
NO Ressource nicht ersetzen. Wenn die Ressource bereits vorhanden ist, wird eine Nachricht geschrieben und es wird keine Profil-Erstellung durchgeführt.
SAMPLING   Gibt an, ob die CPU-Zeit-Probenahme (Sampling) des Profilers aktiviert ist. Die Probenahme kann die Anzahl der überwachten Ereignisse drastisch reduzieren, wobei fast die gleichen CPU-Zeitergebnisse erzielt werden. Siehe Stichprobentechnik (Natural Profiler Sampling).
ON Sampling aktivieren.
OFF Sampling deaktivieren.
INTERVAL interval-time Das Stichprobenintervall bestimmt, bei welchen CPU-Zeitstempel Ereignisse gesammelt werden. Wenn das Stichprobenintervall größer ist, werden weniger Ereignisse gesammelt. Wenn das Abtastintervall kleiner ist, sind die resultierenden CPU-Zeiten genauer.

Gültige Werte für interval-time:

1 bis 2147483647

Einheit: Mikrosekunden

CONSOLIDATE   Gibt an, ob die Ereignisdaten konsolidiert (aggregiert) werden, bevor sie in die Ressourcendatei geschrieben werden. Siehe Datenkonsolidierung, Codeabdeckung und Datenverarbeitung im Abschnitt Grundlegendes Konzept der Profiler Utility.
ON Die Ereignisdaten werden konsolidiert und in eine NPRC-Ressourcendatei (Natural Profiler Resource Consolidated) geschrieben.
OFF Die Ereignisdaten werden nicht konsolidiert in eine NPRF-Ressourcendatei (Natural Profiler Resource File) geschrieben.
TRANSACTION   Diese Option gilt nur, wenn CONSOLIDATE (siehe oben) auf ON gesetzt ist.

Gibt an, ob Transaktionsbezeichner (Identifier) zu den konsolidierten Ereignisdaten hinzugefügt werden.

ON Transaktionsbezeichner werden den konsolidierten Ereignisdaten hinzugefügt.

Transaktionsbezeichner sind eine Voraussetzung für die Bewertung der Transaktionsantwortzeit. Siehe Transaktionszusammenfassung.

Anmerkung:
Die generierte NPRC-Ressourcendatei benötigt mehr Speicherplatz, wenn ON gesetzt ist.

OFF Es werden keine Transaktionsbezeichner zu den konsolidierten Ereignisdaten hinzugefügt.
WAIT-FULL wait-full-time Gibt an, wie lange die Trace-Session wartet, wenn der Profiler-Daten-Pool voll ist. Wenn das Limit erreicht ist und immer noch kein freigegebener Platz verfügbar ist, wird Natural beendet (ABEND S0C1).

Der Wert verhindert, dass die Trace-Session endlos auf eine unerwartet ausgefallene Monitor-Session wartet.

Gültige Werte für wait-full-time:

1 bis 32767

Einheit: Sekunden

WAIT-EMPTY wait-empty-time Gibt an, wie lange die Profiler-Monitor-Session wartet, wenn der Profiler-Daten-Pool leer ist und die Trace-Session noch aktiv ist. Wenn das Limit erreicht ist, wird eine Nachricht geschrieben und das Profiling gestoppt.

Ein Wert von Null (0) bedeutet, dass der Profiler ohne Limit wartet. Ein positiver Wert verhindert, dass die Monitor-Session endlos auf eine möglicherweise fehlerhafte Trace-Session wartet.

Gültige Werte für wait-empty-time:

0 bis 2147483647

Beim Profiling eines Batch-Natural RPC-Servers oder beim Profiling einer Großrechner-Session von Natural Studio wird der Wert immer auf 0 gesetzt. Siehe Batch-Natural RPC-Server profilieren und Profil-Erstellung einer Großrechner-Session aus Natural Studio.

Einheit: Sekunden

CMPRMIN data-set-name Gibt den Namen des Eingabe-Dataset für dynamische Parameter für die Profiler-Monitor-Session an. Siehe Monitor-Session CMPRMIN.

Standardwert: CMPRMIN (die Monitor-Session verwendet die Parameter der Trace-Session)

CMSYNIN data-set-name

Gibt den Namen des primären Kommandoeingabe-Dataset für die Profiler-Monitor-Session an. Siehe Monitor-Session CMSYNIN.

Standardwert: DUMMY (die Monitor-Session verwendet keinen primären Kommandoeingabe-Dataset).

TRACE-EVENT   Gibt an, ob das Profiler-Trace in die Standardausgabe der Profiler-Monitor-Session (MONPRINT-Dataset) geschrieben wird. Siehe Ereignis-Trace.
ON Das Profiler-Ereignis-Trace schreiben.
OFF Das Profiler-Ereignis-Trace nicht schreiben.
TRACE-MONITOR trace-level Legt die Ebene des internen Tracing der Profiler-Monitor-Session fest. Das interne Trace enthält Informationen wie Profiler-Fehler und wird in die Standardausgabe der Monitor-Session (MONPRINT-Dataset) geschrieben. Siehe Interner Trace.

Gültige Trace-Ebenen: 0 bis 10

TRACE-CONSOLIDATE   Gibt an, ob das Profiler-Konsolidierungs-Trace in die Standardausgabe geschrieben wird. Die Konsolidierungsverfolgung kann nur geschrieben werden, wenn CONSOLIDATE=ON angegeben ist. Siehe Konsolidierungs-Trace.
ON Das Profiler-Konsolidierungs-Trace schreiben.
OFF Das Profiler-Konsolidierungs-Trace nicht schreiben.

Beispiel für INIT

FUNCTION=INIT           /* Initialize Profiling
  RESOURCE=ON           /* Write to resource file
  RESOURCE-NAME='Test'  /* Resource name
  RESOURCE-LIB=PRFDATA  /* Resource library
  REPLACE=YES           /* Replace resource
  SAMPLING=ON           /* Use sampling
  INTERVAL=100          /* Sampling interval
  CONSOLIDATE=OFF       /* Do not consolidate the data
  TRANSACTION=OFF       /* Do not add transaction identifiers 
  WAIT-FULL=60          /* Wait sec if pool full
  WAIT-EMPTY=60         /* Wait sec if pool empty
  CMPRMIN=PRFPARMS      /* CMPRMIN for monitor session
  TRACE-EVENT=ON        /* Trace events
  TRACE-MON=3           /* Trace level monitor session

Initialisierung der Codeabdeckung (Code Coverage)

Die Funktion COVERAGE der Profiler Utility initialisiert die Messung der Natural-Codeabdeckung. Die COVERAGE-Funktion muss vor einer der Profiler Utility-Funktionen START, PAUSE oder TEXT oder einem Profiler-Filter ausgeführt werden.

Syntax von COVERAGE:

FUNCTION=COVERAGE
  [RESOURCE={ON|OFF}]
  [RESOURCE-NAME=resource-name]
  [RESOURCE-LIB=library-name]
  [REPLACE={YES|NO}]
  [WAIT-FULL={60|wait-full-time}]
  [WAIT-EMPTY={60|wait-empty-time}]
  [CMPRMIN=data-set-name]
  [CMSYNIN=data-set-name]
  [TRACE-EVENT={ON|OFF}]
  [TRACE-MONITOR={3|trace-level}]
  [TRACE-COVERAGE={ON|OFF}]

Syntax-Beschreibung:

Schlüsselwort für COVERAGE Wert Beschreibung
RESOURCE   Gibt an, ob Codeabdeckungsdaten in ein Natural Code Coverage Resource File (NCVF) geschrieben werden sollen.
ON Codeabdeckungsdaten werden in eine Natural-Code-Coverage-Ressourcendatei geschrieben und können mit NaturalONE oder mit den Datenverarbeitungsfunktionen der Natural Profiler Utility analysiert werden.
OFF Es werden keine Codeabdeckungsdaten werden in eine Natural-Code-Coverage-Ressourcendatei geschrieben.

Diese Option kann verwendet werden, wenn nur das Profiler-Ereignis-Trace oder die Statistiken erforderlich sind.

RESOURCE-NAME resource-name Der Name der Natural-Code-Coverage-Ressourcendatei, in der Codeabdeckungsdaten für eine spätere Analyse gespeichert werden. Wenn die Erweiterung .ncvf (Natural code coverage resource file) nicht angegeben wurde, wird sie automatisch hinzugefügt.

Standardeinstellung: *INIT-USER_yyyymmdd_hhiiss

Dabei ist *INIT-USER der Inhalt der entsprechenden Natural-Systemvariablen ist (Name des Jobs oder Benutzerkennung, unter der die Natural-Session läuft);

und yyyymmdd_hhiiss ist das Datum und die Uhrzeit der Ressourcengenerierung.

RESOURCE-LIB library-name Der Name der Natural-Library, der die Ressource zugeordnet ist.

Standardwert: Der Name der aktuellen Library.

REPLACE   Gibt an, ob die Ressource ersetzt wird, wenn sie bereits vorhanden ist.
YES Ressource ersetzen, falls vorhanden.
NO Ressource nicht ersetzen. Wenn die Ressource bereits vorhanden ist, wird eine Nachricht geschrieben und es wird kein Code Coverage durchgeführt.
WAIT-FULL wait-full-time Gibt an, wie lange die Trace-Session wartet, wenn der Profiler-Daten-Pool voll ist. Wenn das Limit erreicht ist und immer noch kein freigegebener Platz verfügbar ist, wird Natural beendet (ABEND S0C1).

Der Wert verhindert, dass die Trace-Session endlos auf eine unerwartet ausgefallene Monitor-Session wartet.

Gültige Werte für wait-full-time:

1 bis 32767

Einheit: Sekunden

WAIT-EMPTY wait-empty-time Gibt an, wie lange die Profiler-Monitor-Session wartet, wenn der Profiler-Daten-Pool leer ist und die Trace-Session noch aktiv ist. Wenn das Limit erreicht ist, wird eine Nachricht geschrieben und das Profiling gestoppt.

Ein Wert von Null (0) bedeutet, dass der Profiler ohne Limit wartet. Ein positiver Wert verhindert, dass die Monitor-Session endlos auf eine möglicherweise fehlerhafte Trace-Session wartet.

Gültige Werte für wait-empty-time:

0 bis 2147483647

Bei der Messung der Codeabdeckung eines Batch-Natural RPC-Servers oder einer Großrechner-Session aus Natural Studio wird der Wert immer auf 0 gesetzt. Siehe Batch-Natural RPC-Server profilieren and Profil-Erstellung einer Großrechner-Session aus Natural Studio.

Einheit: Sekunden

CMPRMIN data-set-name Gibt den Namen des Parameter-Eingabe-Dataset für die Profiler-Monitor-Session an. Siehe Monitor-Session CMPRMIN.

Standardwert: CMPRMIN (die Monitor-Session verwendet die Parameter der Trace-Session).

CMSYNIN data-set-name Gibt den Namen des primären Kommando-Eingabe-Dataset für die Profiler-Monitor-Session an. Siehe Monitor-Session CMSYNIN.

Standardwert: DUMMY (die Monitor-Session verwendet keinen primären Kommando-Eingabe-Dataset)

TRACE-EVENT   Gibt an, ob das Profiler-Ereignis-Trace in die Standardausgabe der Profiler-Monitor-Session (MONPRINT-Dataset) geschrieben wird. Siehe Ablaufverfolgung (Tracing) beim Messen der Natural-Codeabdeckung.
ON Das Profiler-Ereignis-Trace schreiben.
OFF Das Profiler-Ereignis-Trace nicht schreiben.
TRACE-MONITOR trace-level Legt die Ebene des internen Tracing der Profiler-Monitor-Session fest. Das interne Trace enthält Informationen wie Profiler-Fehler und wird in die Standardausgabe der Monitor-Session (MONPRINT-Dataset) geschrieben. Siehe Interner Trace.

Gültige Trace-Ebenen: 0 bis 10

TRACE-COVERAGE   Gibt an, ob das Profiler-Codeabdeckungs-Trace in die Standardausgabe geschrieben wird. Siehe Ablaufverfolgung (Tracing) beim Messen der Natural-Codeabdeckung.
ON Das Profiler-Konsolidierungs-Trace schreiben.
OFF Das Profiler-Konsolidierungs-Trace nicht schreiben.

Beispiel für COVERAGE

FUNCTION=COVERAGE       /* Initialize code coverage
  RESOURCE=ON           /* Write to resource file
  RESOURCE-NAME='Test'  /* Resource name
  RESOURCE-LIB=COVDATA  /* Resource library
  REPLACE=YES           /* Replace resource
  WAIT-FULL=60          /* Wait sec if pool full
  WAIT-EMPTY=60         /* Wait sec if pool empty
  CMPRMIN=PRFPARMS      /* CMPRMIN for monitor session
  TRACE-EVENT=ON        /* Trace events
  TRACE-MON=3           /* Trace level of monitor session
  TRACE-COVERAGE=ON     /* Trace coverage data

Datensammlung starten und anhalten

Der Profiler muss initialisiert werden, bevor die Datensammlung gestartet oder angehalten werden kann. Da die Datensammlung nach der Initialisierung angehalten wird, muss sie in irgendeiner Weise gestartet werden, damit Ereignisdaten aufgezeichnet werden.

Sie können die Datensammlung mittels einer der folgenden Methoden starten und anhalten:

Profiler Utility-Funktionen benutzen

Die Profiler Utility-Funktionen START und PAUSE werden verwendet, um die Datensammlung zu starten und anzuhalten. Es gilt die folgende Syntax:

FUNCTION=START [COUNT={0|count-number}]
FUNCTION=PAUSE

Syntax-Beschreibung:

Schlüsselwort für START Wert Beschreibung
COUNT count-number Setzt den Ereigniszähler des nächsten überwachten Ereignisses auf den angegebenen Wert.

Gültige Werte für count-number:

0 bis 2147483647

Der Ereigniszähler bleibt unverändert, wenn ein Wert von Null (0) angegeben wird.

Profiler Utility-Programme benutzen

Die folgenden Natural-Programme stehen in der System-Library SYSPRFLR bereit, um Profiler Utility-Funktionen auszuführen:

Programm Beschreibung
PRFSTART Die Datensammlung starten.
PRFPAUSE Die Datensammlung anhalten.
PRFSTATE Den Status der Datensammlung abfragen.
PRFFCT Eine Profiler Utility-Funktionen ausführen: START, PAUSE oder STATE.

Beginn der AnweisungslisteUm Profiler Utility-Programme zu benutzen:

  • Melden Sie sich bei der Library SYSPRFLR an oder kopieren Sie die Programme in die Library SYSTEM, in die entsprechende Steplib-Library oder in die erforderliche Library.

    Wenn PRFFCT verwendet wird, muss auch die Anwendungsprogrammierschnittstelle USR8210N kopiert werden (siehe folgenden Abschnitt).

    Falls PRFFCT in einer Client/Server-Umgebung verwendet wird, kopieren Sie PRFFCT in die Client-Library und USR8210N in die Server-Library.

    Anmerkung:
    PRFFCT erwartet als Eingabewert START, PAUSE oder STATE, um die entsprechende Funktion auszuführen.

Beginn der AnweisungslisteUm die Datensammlung zu starten:

  • Führen Sie das folgende Programm aus:

    PRFSTART

    Oder:

    PRFFCT
    START

Beginn der AnweisungslisteUm die Datensammlung anzuhalten:

  • Führen Sie das folgende Programm aus:

    PRFPAUSE

    Oder:

    PRFFCT
    PAUSE

Beginn der AnweisungslisteUm den aktuellen Status der Datensammlung abzufragen:

  • Führen Sie das folgende Programm aus:

    PRFSTATE

    Oder:

    PRFFCT
    STATE

Anwendungsprogrammierschnittstelle USR8210N benutzen

Die Datensammlung kann von der profilierten Natural-Anwendung aus gestartet und angehalten werden, indem die Anwendungsprogrammierschnittstelle (API) USR8210N aufgerufen wird. Die API kann auch verwendet werden, um den aktuellen Status des Überwachungsprozesses zu ermitteln. Die API wird in der Library SYSEXT ausgeliefert. Weitere Informationen siehe SYSEXT Utility.

Beginn der AnweisungslisteUm die API zu benutzen:

  • Kopieren Sie das Subprogramm USR8210N in die Library SYSTEM, in die entsprechende Steplib-Library oder in die gewünschte Library.

    Anmerkung:
    Die API USR8210N erwartet als erster Parameter den Wert START, PAUSE oder STATE, um die entsprechende Funktion auszuführen. Die Parameterwerte können in Groß- oder Kleinbuchstaben angegeben werden. Bei der Rückkehr enthält P-RETURN den Rückgabecode und P-MESSAGE die Erfolgs- oder Fehlermeldung.

Beginn der AnweisungslisteUm die Datensammlung zu starten:

  • Benutzen Sie die API mit dem CALLNAT-Statement:

    CALLNAT 'USR8210N' 'START' P-RETURN P-MESSAGE /* Start Profiler

Beginn der AnweisungslisteUm die Datensammlung anzuhalten:

  • Benutzen Sie die API mit dem CALLNAT-Statement:

    CALLNAT 'USR8210N' 'PAUSE' P-RETURN P-MESSAGE /* Pause Profiler

Beginn der AnweisungslisteUm den aktuellen Status der Datensammlung abzufragen:

  • Benutzen Sie die API mit dem CALLNAT-Statement:

    CALLNAT 'USR8210N' 'STATE' P-RETURN P-MESSAGE /* Get Profiler state

    Der Status ist im Feld P-RETURN codiert:

    P-RETURN Beschreibung
    0 Die Datensammlung mit dem Natural Profiler ist gestartet.
    1 Die Datensammlung mit dem Natural Profiler ist angehalten.

Filter zur Begrenzung der gesammelten Daten benutzen

Filter spielen eine wichtige Rolle bei der Reduzierung der Menge der gesammelten Daten. Folgende Filter stehen zur Verfügung:

Anmerkung:
Der Profiler muss initialisiert werden, bevor Einstellungen auf einen bestimmten Filter angewendet werden können.

Ereignisfilter (Event Filter)

Der Profiler-Ereignisfilter gibt an, welche Ereignisse gesammelt werden. Darüber hinaus bestimmt es, ob Ereignisdaten aufgezeichnet werden, während Natural-Systemprogramme ausgeführt werden.

Syntax des Ereignisfilters:

FILTER=EVENT
  [EVENT={[event-type]...|ALL}
  [STATEMENT={ON|OFF|COUNT}]
  [FNAT={ON|OFF}

Syntax-Beschreibung:

Schlüsselwort für EVENT Wert Beschreibung
EVENT   Gibt an, welche Ereignisse gesammelt werden.
event-type Jedes Ereignis wird mit einem ein- oder zweistelligen Schlüssel codiert. Mehrere Ereignisse werden durch Leerzeichen getrennt. Es werden nur die angegebenen Ereignisse aufgezeichnet. Wenn kein Ereignis angegeben wird, überwacht der Profiler nur die Session- und Pausenereignisse.

Mögliche Ereigniseinträge sind: DB, DA, PL, PS, PT, PR, IB, IA, E, CB, CA, U, RS, RI, RO und RW.

Notes:
  1. Informationen zu den Ereigniscodes finden Sie unter Gesammelte Ereignisse und Daten.

  2. Die folgenden Ereignisse können nicht in der Ereignisliste angegeben werden:

    • SI-Ereignisse (Session-Initialisierung) können vom Profiler nicht im Batch-Modus gesammelt werden.

    • ST-Ereignisse (Session Termination) und MP-Ereignisse (Monitor Pause) werden immer gesammelt.

    • The collection of NS (Natural Statement) events depends on the STATEMENT keyword.

      Die Sammlung von NS-Ereignissen (Natural Statement) hängt vom Schlüsselwort STATEMENT ab.

  3. Wenn nur ein Zeichen angegeben wird, werden alle Ereignisse, die mit diesem Zeichen beginnen, aufgezeichnet. Zum Beispiel ist EVENT=P äquivalent zu EVENT=PL PR PS PT.

ALL Alle Ereignisse werden aufgezeichnet; das heißt, die Definition ist äquivalent zu
EVENT=DB DA PL PS PT PR IB IA E CB CA U RS RI RO

Vorsicht:
EVENT=ALL enthält das NS-Ereignis nicht. Die Sammlung von NS-Ereignissen (Natural Statement) hängt vom Schlüsselwort STATEMENT ab.

STATEMENT   Gibt an, ob Natural-Statement-Ereignisse (NS) gesammelt werden.
ON Natural-Statement-Ereignisse (NS) werden gesammelt, aber nicht gezählt. Es werden nur Nicht-Statement-Ereignisse gezählt. Natural-Statement-Ereignisse erhalten die gleiche Anzahl wie das vorherige Ereignis.
OFF Natural-Statement-Ereignisse (NS) werden nicht gesammelt.
COUNT Natural-Statement-Ereignisse (NS) werden gesammelt und gezählt, was bedeutet, dass das Ereigniszählerfeld im Ereignisdatensatz mit jedem Statement-Ereignis erhöht wird. Diese Option kann zu einer schlechteren Performance führen. Siehe Profiler-Performance im Batch-Modus.
FNAT   Gibt an, ob Ereignisdaten aufgezeichnet werden, während Natural-Systemprogramme ausgeführt werden.
ON Ereignisdaten werden aufgezeichnet, während Natural-Systemprogramme ausgeführt werden.
OFF Ereignisdaten werden nicht aufgezeichnet, während Natural-Systemprogramme ausgeführt werden.
Standardfilterwert für die Profil-Erstellung

Standardmäßig (wenn der Ereignisfilter nicht angegeben ist) werden alle Ereignisse außer Natural-Statement-Ereignissen gesammelt und Ereignisdaten von Natural-Systemprogrammen werden nicht aufgezeichnet:

FILTER=EVENT            /* Set event filter
  EVENT=ALL             /* All events
  STATEMENT=OFF         /* Do not collect statements
  FNAT=OFF              /* No FNAT
Standardfilterwert für Codeabdeckung

Standardmäßig (wenn der Ereignisfilter nicht angegeben ist) werden nur Programmstart- und Natural-Statement-Ereignisse gesammelt. Ereignisdaten von Natural-Systemprogrammen werden nicht aufgezeichnet:

FILTER=EVENT            /* Set event filter
  EVENT=PS              /* Program start only
  STATEMENT=ON          /* Collect statements
  FNAT=OFF              /* No FNAT

Die Codeabdeckung funktioniert nicht korrekt, wenn Programmstart- oder Natural-Statement-Ereignisse nicht gesammelt werden. Wenn andere Ereignisse überwacht werden, werden sie im Trace angezeigt, aber von der Codeabdeckung ignoriert.

Beispiel für einen Ereignisfilter
FILTER=EVENT            /* Set event filter
  EVENT=D PS PR         /* Database and program start/resume events
  STATEMENT=ON          /* Collect statements (no count)
  FNAT=OFF              /* No FNAT

Programmfilter

Der Profiler-Programmfilter gibt die Libraries, Programme (Natural-Objekte) und Programmzeilen an, für die Ereignisdaten gesammelt werden. Standardmäßig (wenn der Programmfilter nicht angegeben ist) werden die Daten aller Libraries, Programme und Zeilen gesammelt.

Syntax des Programfilters:

FILTER=PROGRAM
  [LIBRARY=library-name]
  [PROGRAM=program-name]
  [LINE-FROM={0|start-number}
  [LINE-TO={0|end-number}

Syntax-Beschreibung:

Schlüsselwort für PROGRAM Wert Beschreibung
LIBRARY library-name Nur die angegebene Library wird überwacht. Wenn die Spezifikation mit einem Stern (*) endet, werden alle Libraries mit dem entsprechenden Präfix überwacht.

Standardeinstellung: alle Libraries

PROGRAM program-name Nur das angegebene Programm wird überwacht. Wenn die Spezifikation mit einem Stern (*) endet, werden alle Programme mit dem entsprechenden Präfix überwacht.

Standardeinstellung: alle Programme

LINE-FROM start-number Nur Zeilen mit einer Zeilennummer, die größer oder gleich der angegebenen Nummer ist, werden überwacht.

Gültige Werte für start-number:

0 bis 9999

LINE-TO end-number Nur Zeilen mit einer Zeilennummer, die kleiner oder gleich der angegebenen Nummer ist, werden überwacht. Wenn die Zahl 0 ist, wird die maximale Zeilennummer verwendet.

Gültige Werte für end-number:

0 bis 9999

Beispiel für einen Programmfilter:

Das folgende Beispiel überwacht die Zeilen 0500 bis 2000 in allen Natural-Objekten, die in der Library PRFDEMO mit X beginnen.

FILTER=PROGRAM            /* Set program filter
  LIBRARY=PRFDEMO         /* Monitored library
  PROGRAM=X*              /* Monitored program
  LINE-FROM=500           /* Monitor from line 0500
  LINE-TO=2000            /* Monitor to line 2000

Zählfilter

Der Profiler-Zählfilter (Count Filter) gibt die Ereigniszähler an, für die Daten gesammelt werden. Standardmäßig (wenn der Zählfilter nicht angegeben ist) werden Daten für jede Ereignisanzahl gesammelt.

Wenn der Ereignisfilter STATEMENT=ON gesetzt ist, kann sich der Zählfilter nur auf Nicht-Statement-Ereignisse beziehen, da Statement-Ereignisse keine eindeutige Anzahl erhalten. Die Nicht-Statement-Ereignisse haben die gleiche Anzahl wie bei STATEMENT=OFF und in beiden Fällen kann der gleiche Zählfilter verwendet werden.

Syntax des Zählfilters:

FILTER=COUNT
  [FROM={0|minimum-count}
  [TO={0|maximum-count}

Syntax-Beschreibung:

Schlüsselwort für COUNT Wert Beschreibung
FROM minimum-count Es werden nur Ereignisse bei einem Ereigniszähler überwacht, der größer oder gleich der angegebenen Zahl ist.

Gültige Werte für minimum-count:

0 bis 2147483647

TO maximum-count Es werden nur Ereignisse bei einem Ereigniszähler überwacht, der kleiner oder gleich der angegebenen Zahl ist. Wenn die Zahl 0 ist, wird der maximale Ereigniszähler verwendet.

Gültige Werte für maximum-count:

0 bis 2147483647

Beispiel für einen Zählfilter

Eine Profil-Erstellung mit STATEMENT=OFF hat gezeigt, dass zwischen den Ereignissen viel CPU-Zeit mit den Zählern 1200 bis 1400 verbracht wurde. Jetzt soll dieser Bereich, einschließlich der Statements, detaillierter analysiert werden. Mit STATEMENT=COUNT würden auch die Statements gezählt und die Ereignisse würden andere Zählerwerte erhalten. Aber mit STATEMENT=ON werden die Statements nicht gezählt und die Zählerwerte können verwendet werden, um die Datensammlung einzuschränken.

FILTER=COUNT            /* Set count filter
  FROM=1200             /* Monitor from event count 1200
  TO=1400               /* Monitor to event count 1400

Zeitfilter

Der Profiler-Zeitfilter gibt die CPU-Zeiten (Einheit: 1/100 Sekunden) an, für die Daten gesammelt werden. Standardmäßig (wenn der Zeitfilter nicht angegeben ist) werden Daten für jede CPU-Zeit gesammelt.

Syntax des Zeitfilters:

FILTER=TIME
  [FROM={0|minimum-time}
  [TO={0|maximum-time}

Syntax-Beschreibung:

Schlüsselwort für TIME Wert Beschreibung
FROM minimum-time Es werden nur Ereignisse mit einer CPU-Zeit überwacht, die größer oder gleich der gegebenen Anzahl an 1/100 Sekunden ist.

Gültige Werte für minimum-time:

0 bis 2147483647

TO maximum-time Es werden nur Ereignisse mit einer CPU-Zeit überwacht, die kleiner oder gleich der gegebenen Anzahl an 1/100 Sekunden ist. Wenn die Zahl 0 ist, wird die maximale CPU-Zeit verwendet.

Gültige Werte für maximum-time:

0 bis 2147483647

Beispiel für einen Zählfilter:

In dem folgenden Beispiel werden alle Ereignisse überwacht, die nach einer Sekunde für eine Dauer von zwei Sekunden auftreten:

FILTER=TIME            /* Set time filter
  FROM=100             /* Monitor from CPU second 1.00
  TO=300               /* Monitor to CPU second 3.00

Stichprobennahme (Sampling) aktivieren

Bei der Sampling-Methode wird ein statistischer Ansatz verwendet, bei dem Daten durch Stichprobennahme gesammelt werden. Das Sampling reduziert die Menge der in die Ressourcendatei geschriebenen Daten erheblich und behält annähernd die gleichen CPU-Zeiten bei wie ohne Sampling.

Die Stichprobennahme steht bei der Profil-Erstellung (Profiling), aber nicht bei der Messung der Codeabdeckung (Code Coverage) zur Verfügung.

Allgemeine Informationen zur Stichprobennahme finden Sie unter Stichprobentechnik (Natural Profiler Sampling) im Kapitel Grundlegendes Konzept der Profiler Utility.

Beginn der AnweisungslisteUm das Sampling zu aktivieren:

  • Geben Sie die folgenden untergeordneten Schlüsselwörter ein, die der INIT-Funktion der Profiler Utility zugeordnet sind:

    SAMPLING=ON
    INTERVAL=nnn

    Dabei ist nnn das Stichprobenintervall in Mikrosekunden ist.

    Anmerkung:
    Standardmäßig (wenn SAMPLING nicht angegeben ist) werden keine Stichproben der Daten genommen. Wenn SAMPLING=ON angegeben ist, aber kein INTERVAL, beträgt das Standard-Stichprobenintervall 100 Mikrosekunden.

Benutzerdefinierte Ereignisse schreiben

Ein benutzerdefiniertes Ereignis kann aus einem Natural-Programm mithilfe des folgenden Natural-Statement generiert werden:

CALL 'CMRDC' 'U' USER-DATA

Das erste Zeichen der USER-DATA wird als Subtyp des benutzerdefinierten Ereignisses behandelt. Die restlichen Zeichen sind der Text des benutzerdefinierten Ereignisses. Weitere Informationen finden Sie unter Benutzerdefinierte Ereignisse in der SYSRDC Utility-Dokumentation.

Anmerkungen:

  1. Der Natural Profiler im Batch-Modus bietet eine Funktion, mit der Sie benutzerdefinierte Ereignisse aus dem JCL-Eingabestrom generieren können. Diese benutzerdefinierten Ereignisse werden immer unabhängig von den aktuellen Filtereinstellungen aufgezeichnet. Wenn die Profil-Erstellung angehalten wird, aktiviert die Profiler Utility die Profil-Erstellung, bevor sie das benutzerdefinierte Ereignis schreibt, und deaktiviert sie anschließend. Wenn die Probenahme aktiv ist, kann es vorkommen, dass ein benutzerdefiniertes Ereignis herausgefiltert wird.
  2. Der Profiler muss initialisiert werden, bevor ein benutzerdefiniertes Ereignis geschrieben werden kann.

Die Funktion FUNCTION=TEXT der Profiler Utility wird verwendet, um benutzerdefinierte Ereignisse zu schreiben. Es gilt die folgende Syntax:

FUNCTION=TEXT
  [TEXT=text]
  [TYPE=character]

Syntax-Beschreibung:

Schlüsselwort für TEXT Wert Beschreibung
TEXT text Der Text text wird dem Profiler-Trace als benutzerdefiniertes Ereignis hinzugefügt. Wenn mehrere TEXT-Schlüsselwörter angegeben sind, werden die entsprechenden Werte verkettet. Die maximale Textgröße beträgt 249 Bytes. Zusätzliche Zeichen werden abgeschnitten.

Standardwert: keiner (Leerzeichen)

TYPE character Das alphanumerische Zeichen character gibt den Subtyp des benutzerdefinierten Ereignisses an. Der Subtyp ist Teil der ereignisspezifischen Daten. Der Ereignistyp eines benutzerdefinierten Ereignisses ist immer U gefolgt von einem Leerzeichen.

Standardwert: Leerzeichen

Verwenden Sie die folgende Ereignisfiltereinstellung, wenn Sie nur die benutzerdefinierten Ereignisse überwachen möchten, die mit der TEXT-Funktion geschrieben wurden. Zusätzlich zu den TEXT-Funktionseinträgen werden auch die Session- und Pausenereignisse überwacht. Alle anderen Ereignisse, einschließlich benutzerdefinierter Ereignisse, die durch Aufrufe von CMRDC geschrieben werden, werden herausgefiltert.

* Monitor only TEXT function entries
FILTER=EVENT/* Set event filter
  EVENT=                /* No events
  STATEMENT=OFF         /* No statements
  FNAT=OFF              /* No FNAT

Beispiel für ein benutzerdefiniertes Ereignis

Das folgende Beispiel schreibt ein benutzerdefiniertes Ereignis mit dem Subtyp J und dem Text Start profiling in das Profiler-Ereignis-Trace.

FUNCTION=TEXT            /* Write a user-defined event
  TEXT='Start profiling' /* User-defined event text
  TYPE='J'               /* User-defined event subtype

Monitor-Session CMPRMIN

Standardmäßig verwendet die Profiler-Monitor-Session die gleichen dynamischen Natural-Parameter wie die Trace-Sitzung, die mit dem CMPRMIN-Eingabe-Dataset angegeben wurde. Ausnahme: Der Profilparameter RDCSIZE (Puffergröße für den Natural Data Collector) ist für die Monitor-Session auf Null (0) gesetzt. Mit dem CMPRMIN-Schlüsselwort der Profiler Utility-Funktion INIT oder COVERAGE kann ein separater dynamischer Parametereingabe-Dataset für die Profiler-Monitor-Session definiert werden. Wenn Sie den separaten Eingabe-Dataset für dynamische Parameter verwenden, beachten Sie Folgendes:

  • Geben Sie für die Monitor-Session nur die Natural-Parameter an, die erforderlich sind. Geben Sie keine Parameter an, die für die Anwendungsausführung erforderlich sind (z. B. RPC).

  • Geben Sie die Parameter RDCSIZE und RDCEXIT (User Exits für den Natural Data Collector) nur für die Trace-Session an. Die Angabe dieser Parameter für die Monitor-Session führt zu unnötigen Exit-Aufrufen und einer schlechteren Performance.

  • Geben Sie den Parameter PDPSIZE (Profiler-Daten-Pool-Größe) nur für die Monitor-Session an. Jede Spezifikation im Eingabe-Dataset für dynamische Parameter der Trace-Session wird ignoriert.

Wenn die standardmäßige Einstellung des Natural-Profilparameters ETID (Adabas-Benutzerkennung) verwendet wird, kann es vorkommen, dass der folgende Fehler von der Profiler-Monitor-Session empfangen wird:

NAT3048 Error during Open processing. DB/Subcode nn/8 - ETID=job-name.. (Fehler während der Open-Kommandoverarbeitung).

Verwenden Sie in diesem Fall die folgenden Parameter für CMPRMIN:

ETID=' ',DBCLOSE=ON

Alternativ können Sie einen ETID-Wert verwenden, der sich vom Jobnamen im separaten dynamischen Parametereingabe-Dataset für die Profiler-Monitor-Session unterscheidet.

Beginn der AnweisungslisteUm einen dynamischen Parametereingabe-Dataset für die Profiler-Monitor-Session zu definieren:

  • Geben Sie das folgende untergeordnete Schlüsselwort ein, das der Profiler Utility-Funktion INIT oder COVERAGE zugeordnet ist:

    CMPRMIN=data-set

    Dabei ist data-set der Name des dynamischen Parameter-Eingabe-Dataset für die Profiler-Monitor-Session.

Beispiel für z/OS:

//CMSYNIN  DD  *
PROFILER
FUNCTION=INIT             /* Initialize profiling
  CMPRMIN=PRFPARMS        /* Monitor session parameter
  ...
/*
//* Trace Session Parameters
//CMPRMIN  DD   *
RDCSIZE=2,RDCEXIT=NATRDC1,...
/*
//* Monitor Session Parameters
//PRFPARMS DD   *
ETID=PROFILER,PDPSIZE=10000,...
/*

Monitor-Session CMSYNIN

Im Allgemeinen benötigt die Profiler-Monitor-Session keinen primären Kommandoeingabe-Dataset. Mit dem CMSYNIN-Schlüsselwort der Profiler Utility-Funktion INIT oder COVERAGE kann ein separater primärer Kommandoeingabe-Dataset für die Profiler-Monitor-Session definiert werden. Dies ist erforderlich, wenn Ihre Anwendung unter der Kontrolle von Natural Security läuft und Sie keine automatische Anmeldung wünschen, d.h. der Natural-Profilparameter AUTO (Automatische Anmeldung) ist auf OFF gesetzt. Geben Sie die gewünschten Anmeldeeinstellungen im primären Kommandoeingabe-Dataset für die Profiler-Monitor-Session an, gefolgt vom Profiler-Kommando, das die Profiler-Monitor-Session startet.

Geben Sie für das Profiling Folgendes an:

library-name,user-id,password
PROFILER MONITOR

Geben Sie für die Codeabdeckung Folgendes an:

library-name,user-id,password
PROFILER COVMON

Anmerkung:
Wenn die obige Kommando-Syntax nicht angewendet wird, tritt der folgende Fehler auf: Profiler Error-1 => PRBINIT : Profiler INIT function - No response from monitor session after 0.3 seconds. (Profiler INIT-Funktion - Keine Antwort von der Monitor-Session nach 0,3 Sekunden.)

Beginn der AnweisungslisteUm einen primären Kommandoeingabe-Dataset für die Profiler-Monitor-Session zu definieren:

  • Geben Sie das folgende untergeordnete Schlüsselwort ein, das der Profiler Utility-Funktion INIT oder COVERAGE zugeordnet ist:

    CMSYNIN=data-set

    Dabei ist data-set der Name des primären Kommandoeingabe-Parameter-Dataset für die Profiler-Monitor-Session.

Beispiel für z/OS (mit AUTO=OFF gesetzt):

//CMSYNIN  DD  *
library-name,user-id,password
PROFILER
FUNCTION=INIT             /* Initialize profiling
  CMSYNIN=PRFSYNIN        /* Monitor session input data
  ...
/*
//* Monitor Session Input Data
//PRFSYNIN DD   *
library-name,user-id,password
PROFILER MONITOR
/*

Batch-Natural RPC-Server profilieren

Die Profil-Erstellung oder die Messung der Codeabdeckung eines Batch-Natural RPC-Servers erfordert, dass das Systemkommando PROFILER und die Profiler-Eingabedaten mit dem Natural-Profilparameter STACK im RPC-Server-Job eingegeben werden. Die Profiler-Eingabe muss im zweiten Syntaxformat erfolgen (ohne Gleichheitszeichen und Kommas). Siehe auch Profiler Utility-Syntax in Syntax und Schlüsselwörter.

Anmerkung:
Unter z/OS dürfen Sie die Language Environment-Option POSIX(ON) nicht verwenden. Wenn Sie SSL für die Kommunikation mit dem EntireX Broker verwenden möchten, müssen Sie Application Transparent Transport Layer Security (AT-TLS) verwenden.

Beginn der AnweisungslisteUm die Profil-Erstellung eines Batch Natural RPC-Servers zu starten:

  • Geben Sie das folgende Schlüsselwort ein, bevor die Profiler-Funktion INIT oder COVERAGE ausgeführt wird:

    RPC

Das Schlüsselwort RPC zeigt dem Profiler an, dass ein Natural-RPC-Server überwacht wird. Der Profiler überschreibt das Schlüsselwort WAIT-EMPTY der Initialisierung mit dem Wert Null (0), so dass die Profil-Erstellung immer fortgesetzt wird, wenn der Profiler-Daten-Pool leer ist und die Trace-Session noch aktiv ist.

Es wird empfohlen, einen separaten dynamischen Parametereingabe-Dataset (Monitor-Session CMPRMIN) für die Profiler-Monitor-Session zu verwenden, wenn Sie einen Batch Natural RPC-Server profilieren. Geben Sie den RPC-Parameter in diesem Dataset nicht an. Siehe Monitor-Session CMPRMIN.

Die Ereignisdaten des Batch Natural RPC-Servers werden in eine Profiler-Ressourcendatei geschrieben. Der Name und die Library der Ressourcendatei können mit Profiler-Schlüsselwörtern angegeben werden (siehe Profilierung initialisieren). Wir empfehlen Ihnen, den Natural RPC-Server zu stoppen, bevor der Profiler die Ressourcendatei weiterverarbeitet.

Wenn Sie ein Profil eines Natural-RPC-Servers erstellen, können Sie die Datensammlung mit den für die Profiler Utility bereitgestellten Programmen starten und anhalten.

Beginn der AnweisungslisteUm die Profiler-Datensammlung in einer Client/Server-Umgebung zu starten und anzuhalten:

  1. Kopieren Sie das Programm PRFFCT aus der System-Library SYSPRFLR in die Client-Library und die Anwendungsprogrammierschnittstelle USR8210N aus der System-Library SYSEXT in die Server-Library.

  2. Führen Sie das Programm PRFFCT in der Client-Library aus.

    PRFFCT erwartet als Eingabe den Wert START oder PAUSE, um die entsprechende Funktion auszuführen. Wenn Sie den Wert STATE eingeben, wird der aktuelle Status der Datensammlung angezeigt.

    Weitere Informationen siehe Datensammlung starten und anhalten.

Beispiel für Natural RPC Batch-Profilierung

Das folgende Beispiel für z/OS zeigt die Profiler-Eingabedaten für einen Batch Natural RPC-Server, der mit dem Natural-Profilparameter STACK angegeben wurde:

STACK=(                
PROFILER RPC:          
TRACE:3:               
FUNCTION:INIT:         
  TRACE-EVENT:OFF:     
  TRACE-MON:3:         
  CMPRMIN:CMPRMINX:    
  RESOURCE:ON:         
  RESOURCE-NAME:RPCTEST:
  RESOURCE-LIB:PRFDATA:
  REPLACE:YES:         
FILTER:EVENT:          
  EVENT:ALL:           
  STATEMENT:ON:        
  FNAT:OFF:            
END-PROFILER;          
LOGON PRFDEMO          
)

Profil-Erstellung einer Großrechner-Session aus Natural Studio

Sie können die Profiler Utility im Batch-Modus benutzen, um ein Profil einer Mainframe-Anwendung zu erstellen oder die Codeabdeckung für eine Großrechner-Anwendung auszuführen, die remote von Natural Studio auf einem Natural Development Server ausgeführt wird.

Dazu müssen Sie das Systemkommando PROFILER und die PROFILER-Eingabedaten mit dem dynamischen Natural-Profilparameter STACK angeben, wenn Sie Ihre Remote-Großrechner-Umgebung mappen. Die Profiler-Eingabe muss im zweiten Syntaxformat eingegeben werden (ohne Gleichheitszeichen und Kommas). Siehe auch Profiler Utility-Syntax in Syntax und Schlüsselwörter.

Sie können das Profiler-Schlüsselwort INCLUDE verwenden, um die Profiler-Eingabe aus einem Natural-Text-Objekt zu lesen und so die mit dem STACK-Parameter eingegebene Datenmenge zu reduzieren. Ein Beispiel finden Sie im Textobjekt XNDV, das in der System-Library SYSPRFLR ausgeliefert wird. In diesem Beispiel wird die Profil-Erstellung initialisiert und sofort die Überwachung gestartet.

Der Profiler überschreibt automatisch das Schlüsselwort WAIT-EMPTY der Initialisierung mit dem Wert Null (0), so dass die Profil-Erstellung immer fortgesetzt wird, wenn der Profiler-Daten-Pool leer ist und die Trace-Session noch aktiv ist.

Die Ereignisdaten der Natural Studio-Großrechner-Session werden in eine Profiler-Ressourcendatei geschrieben. Der Name und die Library der Ressourcendatei können mit Profiler-Schlüsselwörtern angegeben werden (siehe Profilierung initialisieren oder Initialisierung der Codeabdeckung (Code Coverage)). Wir empfehlen Ihnen, die Großrechner-Sitzung zu trennen, bevor Sie die Ressourcendatei auswerten.

Wenn Sie ein Profil einer Natural Studio-Großrechner-Sitzung erstellen, können Sie die Datensammlung mit den für die Profiler Utility mitgelieferten Programmen starten und anhalten (siehe entsprechenden Abschnitt).

Beginn der AnweisungslisteUm die Profiler-Datenerfassung in einer Natural Studio-Großrechner-Sitzung zu starten oder anzuhalten:

  1. Melden Sie sich bei der Library SYSPRFLR an.

  2. Führen Sie das Programm PRFSTART aus, um die Sammlung zu starten.

  3. Führen Sie das Programm PRFPAUSE aus, um die Sammlung anzuhalten.

Regeln und Einschränkungen

Die folgenden Regeln und Einschränkungen gelten für die Profil-Erstellung einer Großrechner-Session aus Natural Studio:

  • Die Profil-Erstellung mit der Profiler Utility im Batch-Modus funktioniert nicht, wenn Programme remote von NaturalONE ausgeführt werden. Verwenden Sie den NaturalONE Profiler, wenn Sie Großrechner-Programme profilieren möchten, die in einer NaturalONE-Umgebung ausgeführt werden.

  • Die Profil-Erstellung einer Natural Studio-Großrechner-Session mit der Profiler Utility im Batch-Modus funktioniert nicht, wenn der Natural Development Server einen CICS-Adapter verwendet.

  • Wenn die Profil-Erstellung mit dem STACK-Parameter gestartet wird, verwenden Sie die Profiler-Einstellung TRACE=0.

  • Das Monitor-Tracing (TRACE-MONITOR) der Profiler-Session wird in die Natural Development Server-Ausgabe geschrieben.

Beispiel für STACK für Mainframe Großrechner-Profiling

Das folgende Beispiel enthält eine STACK-Parameterangabe für eine Profiler-Dateneingabe, die dynamisch beim Mappen auf eine Remote-Großrechner-Umgebung von Natural Studio gesetzt wird:

STACK=(PROFILER RESOURCE-LIB:PRFDATA:INCLUDE:XNDV)

Die Ressource wird in die Library PRFDATA geschrieben.

Ereignisdaten konsolidieren

Mit der Profiler Utility-Funktion CONSOLIDATE können Sie Ereignisdaten konsolidieren.

Beachten Sie, dass die Natural Profiler Rich GUI-Schnittstelle ebenfalls eine Funktion zur Konsolidierung von Profiler-Ereignisdaten bietet.

Allgemeine Informationen zur Datenkonsolidierung finden Sie unter Datenkonsolidierung im Kapitel Grundlegendes Konzept der Profiler Utility.

Syntax von CONSOLIDATE:

FUNCTION=CONSOLIDATE
  [RESOURCE={ON|OFF}]
  [RESOURCE-NAME=resource-name]
  [RESOURCE-LIB=library-name]
  [REPLACE={YES|NO}]
  [TRANSACTION={ON|OFF}]
  [IO-TIME={ON|OFF}]
  [EXPORT={ON|OFF}]
  [FORMAT={TEXT|COMMA|SEMICOLON}]
  [TRACE-EVENT={ON|OFF}]
  [TRACE-CONSOLIDATE={ON|OFF}]

Syntax-Beschreibung:

Schlüsselwort für CONSOLIDATE Wert Beschreibung
RESOURCE   Gibt an, ob die konsolidierten Ereignisdaten in eine konsolidierte Natural Profiler-Ressourcendatei (NPRC) geschrieben werden.
ON Die konsolidierten Ereignisdaten werden in eine NPRC-Ressourcendatei geschrieben.
OFF Die konsolidierten Ereignisdaten werden nicht in eine NPRC-Ressourcendatei geschrieben.

Diese Einstellung ist nützlich, wenn Sie das Ereignis-Trace oder die Statistikdaten drucken oder die Daten exportieren möchten und die konsolidierte NPRC-Ressourcendatei nicht benötigen.

RESOURCE-NAME resource-name Der Name der Natural Profiler-Ressourcendatei (NPRF), die Sie konsolidieren möchten.

Die Dateierweiterung .nprf wird automatisch hinzugefügt.

Standardwert: Der Name der zuletzt erstellten NPRF-Ressourcendatei in der Library

Bei RESOURCE=ON werden die konsolidierten Daten in eine NPRC-Ressourcendatei mit demselben Ressourcennamen geschrieben.

RESOURCE-LIB library-name Der Name der Natural-Library, die die NPRF-Ressourcendatei enthält, die Sie konsolidieren möchten.

Standardwert: Der Name der aktuellen Library.

Diese Library wird auch als Ziel-Library für die konsolidierte NPRC-Ressourcendatei verwendet.

REPLACE   Gibt an, ob eine vorhandene NPRC-Ressourcendatei ersetzt wird.
YES Ersetzen einer vorhandene NPRC-Ressourcendatei mit demselben Namen.
NO Kein Ersetzen einer vorhandene NPRC-Ressourcendatei mit demselben Namen.

Eine Nachricht wird zurückgegeben, wenn bereits eine Ressourcendatei mit demselben Namen vorhanden ist. In diesem Fall wird keine Konsolidierung durchgeführt.

TRANSACTION   Gibt an, ob Transaktionskennungen zu den konsolidierten Ereignisdaten hinzugefügt werden.
ON Transaktionskennungen werden zu den konsolidierten Ereignisdaten hinzugefügt. Weitere Informationen siehe Transaktionszusammenfassung.

Anmerkung:
Die generierte NPRC-Ressourcendatei benötigt mehr Speicherplatz, wenn ON eingestellt ist.

OFF Transaktionskennungen werden den konsolidierten Ereignisdaten nicht hinzugefügt.
IO-TIME   Gibt an, ob die E/A-Zeit (IB-Ereignis) und die Natural-RPC-Client-Zeit (RW-Ereignis) in den konsolidierten Daten enthalten sind.
ON E/A- und Natural-RPC-Client-Zeit sind in den konsolidierten Daten enthalten.
OFF E/A- und Natural-RPC-Client-Zeit sind nicht in den konsolidierten Daten enthalten.

Diese Einstellung ist nützlich, wenn die Ereignisdaten aus der Profiler Utility im Online-Modus stammen und Sie planen, die Performance in NaturalONE oder mit der Profiler Utility-READ-Funktion zu analysieren.

Für eine Performance-Analyse mit der Natural Profiler Rich GUI-Schnittstelle ist diese Einstellung nicht erforderlich, da diese eine ähnliche Funktion bietet.

EXPORT   Gibt an, ob die konsolidierten Ereignisdaten in die Arbeitsdatei (Work File) 7 geschrieben werden.
ON In die Arbeitsdatei 7 schreiben.
OFF Nicht in die Arbeitsdatei 7 schreiben.
FORMAT   Gibt das Format an, in dem die exportierten Daten in Arbeitsdatei 7 geschrieben werden.
TEXT Daten im Freitextformat schreiben.
COMMA Daten im CSV-Format mit einem Komma (,) als Trennzeichen schreiben.
SEMICOLON Daten im CSV-Format mit einem Semikolon (;) als Trennzeichen schreiben.
TRACE-EVENT   Gibt an, ob das Profiler-Ereignis-Trace in die Standardausgabe geschrieben wird.

Siehe Ereignis-Trace.

ON Profiler-Ereignis-Trace schreiben.
OFF Profiler-Ereignis-Trace nicht schreiben.
TRACE-CONSOLIDATE   Gibt an, ob der Profiler-Konsolidierungs-Trace in die Standardausgabe geschrieben wird. Siehe Konsolidierungs-Trace.
ON Profiler-Konsolidierungs-Trace schreiben.
OFF Profiler-Konsolidierungs-Trace nicht schreiben.

Beispiel für eine Konsolidierung

Im folgenden Beispiel wird die Profiler-Ressource Test.nprf in der Library PRFDATA konsolidiert und die konsolidierten Daten werden in die Profiler-Ressource Test.nprc geschrieben. E/A- und Natural-RPC-Client-Zeit sind in den konsolidierten Daten enthalten.

Darüber hinaus werden die konsolidierten Daten im CSV-Format (semikolongetrennte Werte) in Arbeitsdatei 7 geschrieben.

Die Ereignis- und Konsolidierungs-Traces sind ausgeschaltet.

FUNCTION=CONSOLIDATE    /* Consolidate Profiler data
  RESOURCE=ON           /* Write to resource
  RESOURCE-NAME='Test'  /* Resource name
  RESOURCE-LIB=PRFDATA  /* Resource library
  REPLACE=YES           /* Replace resource
  TRANSACTION=OFF       /* Do not add transaction identifiers 
  IO-TIME=ON            /* Include I/O and RPC client times
  EXPORT=ON             /* Write to Work File 7       
  FORMAT=S              /* CSV format with semicolon separator 
  TRACE-EVENT=OFF       /* No event trace
  TRACE-CONSOLIDATE=OFF /* No consolidation trace

Ereignisdaten auswerten

Wenn das Profil einer Natural-Anwendung erstellt wird, schreibt die Natural Profiler Utility die Ereignisdaten in eine NPRF-Ressourcendatei. Konsolidierte Daten werden in einer NPRC-Ressourcendatei und Abdeckungsdaten in einer NCVF-Ressourcendatei gespeichert. Die READ-Funktion der Profiler Utility liest und wertet die Profiler-Ressourcendaten aus und schreibt die Ergebnisse in die Standardausgabe oder in eine Natural-Arbeitsdatei. Die durchgeführten Auswertungen hängen, wie in der folgenden Tabelle beschrieben, vom Typ der gelesenen Ressourcendatei ab:

Typ der Ressourcendatei Auswertung Beschreibung
NPRF Ereignis-Trace Chronologische Liste der Profiler-Ereignisdaten.
Programm-Trace Programmablauf der profilierten Anwendung.
Statistik Statistik der Profil-Erstellung und der NPRF-Ressourcendatei.
NPRC Konsolidierungs-Trace Liste der konsolidierten Daten mit Trefferzahlen und zusammengefasster verstrichener (elapsed) Zeit und CPU-Zeit.
Programmzusammenfassung Tabelle der ausgeführten Natural-Objekte.

Die Tabelle zeigt, welche Ereignisse während der Objektausführung aufgetreten sind und welche CPU-Zeit für die Ausführung des Objekts aufgewendet wurde.

Zeilenzusammenfassung Tabelle der ausgeführten Natural-Quellcode-Zeilen.

Die Tabelle zeigt, wie viele Ereignisse während der Zeilenausführung aufgetreten sind und wie viel CPU- und verstrichene (elapsed) Zeit bei der Ausführung der Zeile aufgewendet wurde.

Transaktionszusammenfassung Tabelle der ausgeführten Transaktionen.

Die Tabelle zeigt, wie viele Ereignisse während der Transaktionsausführung aufgetreten sind und die Antwortzeit (verstrichene (elapsed) Zeit) der Transaktionen.

Statistik Statistikdaten des Profiling, der Konsolidierung und der NPRC-Ressourcendatei.
NCVF Statement-Abdeckung Liste der in den Quellcode-Zeilen abgedeckten Statements.

Die Liste zeigt den Prozentsatz der Statement-Abdeckung für jede Statement-Zeile in dem Quellcode der aufgerufenen Programme.

Programmabdeckung Tabelle der Codeabdeckungsergebnisse ausgeführter Natural-Objekte.

Die Programmabdeckungstabelle listet alle Natural-Objekte auf, die während des Abdeckungslaufs ausgeführt wurden. Für jedes Objekt zeigt es den Prozentsatz der Abdeckung, die Anzahl der abgedeckten und nicht abgedeckten ("missed") Statements und die Gesamtzahl der Statements.

Statistik Statistikdaten für Profil-Erstellung, Abdeckung und die NCVF-Ressourcendatei.

Dieser Abschnitt behandelt die folgenden Themen:

Lesefunktion (READ) der Profiler Utility

Die READ-Funktion der Profiler Utility liest und wertet die Ressourcendaten aus.

Syntax von READ:

FUNCTION=READ
  [RESOURCE-NAME=resource-name]
  [RESOURCE-LIB=library-name]
  [RESOURCE-TYPE={NPRF|NPRC|NCVF}]
  [EVENT={ON|OFF}]
  [PROGRAM={ON|OFF}]
  [LINE={ON|OFF}]
  [TRANSACTION={ON|OFF}]
  [STATISTICS={ON|OFF}]
  [PRINT={ON|OFF}]
  [EXPORT={ON|OFF}]
  [FORMAT={TEXT|COMMA|SEMICOLON}]

Syntax-Beschreibung:

Schlüsselwort für READ Wert Beschreibung
RESOURCE-NAME resource-name Der Name der NPRF-, NPRC- oder NCVF-Ressourcendatei, die Sie lesen möchten.

Wenn keine Dateierweiterung angegeben ist, wird die mit dem Schlüsselwort RESOURCE-TYPE angegebene Erweiterung automatisch hinzugefügt.

Standardwert: Der Name der zuletzt erstellten NPRF-, NPRC- oder NCVF-Ressourcendatei in der Library, abhängig von der RESOURCE-TYPE-Angabe.

RESOURCE-LIB library-name Der Name der Natural-Library, die die NPRF-, NPRC- oder NCVF-Ressource enthält, die Sie lesen möchten.

Standardwert: Der Name der aktuellen Library.

RESOURCE-TYPE   Gibt den Standard-Ressourcentyp (Dateierweiterung) an, der verwendet werden soll, wenn keine Erweiterung mit RESOURCE-NAME angegeben ist.
NPRF Der Standard-Ressourcentyp ist NPRF mit der Erweiterung .nprf.
NPRC Der Standard-Ressourcentyp ist NPRC mit der Erweiterung .nprc.
NCVF Der Standard-Ressourcentyp ist NCVF mit der Erweiterung .ncvf.
EVENT   Gibt an, ob der Natural Profiler Ereignisse auswertet.

Siehe auch Ereignis-Trace, Konsolidierungs-Trace und Statement-Abdeckung.

ON

NPRF: Das Natural Profiler-Ereignis-Trace schreiben.
NPRC: Das Natural Profiler-Konsolidierungs-Trace schreiben.
NCVF: Das Ergebnis des Statement-Abdeckung-Trace schreiben.

OFF Ereignisse nicht auswerten.
PROGRAM   Gibt an, ob der Natural Profiler Programme auswertet.

Siehe auch Programm-Trace, Programmzusammenfassung und Programmabdeckung.

ON

NPRF: Das Natural Profiler-Programm-Trace schreiben.
NPRC: Die Natural Profiler-Programmzusammenfassung schreiben.
NCVF: Die Programmabdeckungstabelle schreiben.

OFF Programme nicht auswerten.
LINE   Diese Option ist nur für NPRC-Ressourcen verfügbar.

Gibt an, ob der Natural Profiler ausgeführte Quellcodezeilen auswertet.

Siehe auch Zeilenzusammenfassung.

ON Die Natural Profiler-Zeilenzusammenfassung schreiben.
OFF Keine ausgeführten Quellcodezeilen auswerten.
TRANSACTION   Diese Option ist nur für NPRC-Ressourcen verfügbar.

Gibt an, ob der Natural-Profiler Transaktionen auswertet.

Weitere Informationen siehe Transaktionszusammenfassung.

ON Transaktionen auswerten, um eine Transaktionszusammenfassung zu generieren und transaktionsbezogene Werte in der Programmzusammenfassung und der Zeilenzusammenfassung anzuzeigen.
OFF Keine Transaktionen auswerten.
STATISTICS   Gibt an, ob der Natural Profiler Statistiken schreibt.

Siehe auch Profiler-Statistikdaten.

Anmerkung:
Statistikdaten für die Natural-Codeabdeckung werden unter UNIX und Windows nicht erfasst.

ON Statistiken schreiben.
OFF Keine Statistiken schreiben.
PRINT   Gibt an, ob das Ergebnis in die Standardausgabe geschrieben wird.
ON In die Standardausgabe schreiben.
OFF Nicht in die Standardausgabe schreiben.
EXPORT   Gibt an, ob die ausgewerteten Daten in die Arbeitsdatei 7 geschrieben werden.
ON In die Arbeitsdatei 7 schreiben.
OFF Nicht in die Arbeitsdatei 7 schreiben.
FORMAT   Gibt das Format an, in dem die exportierten Daten in Arbeitsdatei 7 geschrieben werden.
TEXT Die Daten im Freitextformat schreiben.
COMMA Die Daten im CSV-Format mit einem Komma (,) als Trennzeichen schreiben.
SEMICOLON Die Daten im CSV-Format mit einem Semikolon (;) als Trennzeichen schreiben.

Beispiel für READ

Das folgende Beispiel liest die Natural Profiler-Ressource Test.nprf in der Library PRFDATA und schreibt das Ereignis-Trace, das Programm-Trace und die Profiler-Statistiken in die Standardausgabe und in die Arbeitsdatei 7 im Textformat.

FUNCTION=READ           /* Read Profiler Data
  RESOURCE-NAME='Test'  /* Resource name
  RESOURCE-LIB=PRFDATA  /* Resource library
  RESOURCE-TYPE=NPRF    /* Use resource type NPRF
  EVENT=ON              /* Print event trace
  PROGRAM=ON            /* Print program trace
  STATISTICS=ON         /* Print statistics
  PRINT=ON              /* Write to standard output
  EXPORT=ON             /* Write to Work File 7
  FORMAT=TEXT           /* Export in text format

Ereignis-Trace

Wenn EVENT=ON für eine NPRF-Ressourcendatei angegeben wird, wird das Profiler-Ereignis-Trace generiert.

Das Ereignis-Trace zeigt die Daten jedes Natural-Ereignisses, das während der Ausführung der Anwendung aufgetreten ist. Das Trace kann referenziert werden, wenn detaillierte Informationen zu einem Ereignis erforderlich sind. Wenn beispielsweise während der Anwendungsausführung ein Natural-Fehler aufgetreten ist, zeigt das Ereignis-Trace die entsprechende Fehlernummer und Meldung an.

Wenn das Ereignis-Trace in die Standardausgabe (PRINT=ON) geschrieben oder im Textformat exportiert wird (EXPORT=ON, FORMAT=TEXT), ähnelt sie dem Ereignis-Trace, das von der Profiler-Monitor-Session geschrieben wurde, während die Anwendung profiliert wurde (siehe Ereignis-Trace). Wenn die Daten im CSV-Format (kommagetrennte Werte) exportiert werden, enthalten sie alle vom Profiler bereitgestellten Datenfelder (siehe Gesammelte Daten).

Beispiel für ein Ereignis-Trace

Das folgende Beispiel zeigt einen Auszug aus einem Ereignis-Trace:

Natural Profiler Event Trace
----------------------------
     Count Time              CPU-Time (ms) Ev Lev Library  Program  Line CC-Lib   CC-Name  Statement  Local-Data
         0 10:20:58.219911        63.318   MP 003 SYSPRFD  PRBINIT  8350                   Call       Monitor pause requested
       102 10:20:58.277586        76.106   PL 000                   0000                              Execute SYSEDMD/MENU
       103 10:20:58.277591        76.139   PS 001 SYSEDMD  MENU     0000                   PgmStart   00010/02430 Type: P
       103 10:20:58.277594        76.151   NS 001 SYSEDMD  MENU     0250                   Compute    Assign/Compute/Move
       103 10:20:58.277596        76.155   NS 001 SYSEDMD  MENU     0270                   Fetch      Fetch
       104 10:20:58.277598        76.169   DB 001 SYSEDMD  MENU     0270                   Fetch      00010/02430 S1
...

Erläuterungen:

  • Die Spalte Count zeigt die Nummer des Ereignisses an. Monitor Pause (MP)-Ereignisse und Natural Statement (NS)-Ereignisse werden nicht gezählt und erhalten die Nummer des vorherigen Ereignisses.

  • Die Spalten Time und CPU-Time zeigen die Ereigniszeit bzw. den CPU-Zeitstempel der Ereignisausführung an.

  • Das Ereignis mit der Nummer 104 ist ein Database Before (DB)-Ereignis, das durch ein Adabas S1-Kommando verursacht wird, das für die Datei 00010/02430 ausgegeben wurde und durch ein FETCH-Statement in der Zeile 0270 des Natural-Objekts MENU ausgelöst wurde.

Weitere Erläuterungen zu den Trace-Spalten und Ereignistypen finden Sie in den Abschnitten Event-Trace und Gesammelte Ereignisse und Daten.

Konsolidierungs-Trace

Wenn EVENT=ON für eine NPRC-Ressourcendatei angegeben wird, wird das Natural Profiler-Konsolidierungs-Trace generiert. Das Konsolidierungs-Trace wird auch generiert, wenn CONSOLIDATE=ON und TRACE-CONSOLIDATE=ON für die INIT-Funktion der Profiler Utility gesetzt sind oder wenn TRACE-CONSOLIDATE=ON für die Profiler Utility-Funktion CONSOLIDATE gesetzt ist.

Das Konsolidierungs-Trace zeigt allgemeine Ereignisdaten, zusammengefasste Werte der verstrichenen (elapsed) Zeit und CPU-Zeit sowie die Trefferanzahl des konsolidierten Datensatzes. Wenn zwei Trace-Einträge die gleichen allgemeinen Ereignisdaten zeigen, haben sie unterschiedliche ereignisspezifische Daten, die nicht im Konsolidierungs-Trage angezeigt werden.

Die konsolidierten Datensätze dienen als Grundlage für weitere Auswertungen wie die NaturalONE-Hot Spots oder die Datenauswertung und Programmanalyse der Profiler Rich GUI-Schnittstelle. Das Konsolidierungs-Trace kann verwendet werden, um die konsolidierten Daten zu validieren.

Wenn das Konsolidierungs-Trace in die Standardausgabe (PRINT=ON) geschrieben wird, ähnelt es dem Konsolidierungs-Trace, das von der Profiler-Datenkonsolidierung geschrieben wurde (siehe Ereignisdaten konsolidieren). Wenn die Daten exportiert werden, enthalten sie alle vom Profiler bereitgestellten konsolidierten Datenfelder.

Beispiel für ein Konsolidierungs-Trace:

Das folgende Beispiel zeigt einen Auszug aus einem Konsolidierungs-Trace:

Natural Profiler Consolidation Trace
------------------------------------
    Count Transact Ev User     Lev Library  Program  Line CC-Lib   CC-Name  Statement   Hit-Count  Elapsed(ms)      CPU(ms)
        1          DA PRFO82D  000                   0000                                       1       75.692        0.870
        2          DA PRFO82D  000                   0000                                       1        0.002        0.004
        3          DA PRFO82D  000                   0000                                       1        0.006        0.025
        4          NS PRFO82D  006 SYSLIBS  A82CLS   0010 SYSAOSSU C-COPYRT Reset              43        0.043        0.118
        5          NS PRFO82D  006 SYSTEM   NOMSTCS  4360                   End                 1        0.000        0.003
        6          PL PRFO82D  006 SYSTEM   NOMSTCS  0970                   Callnat             1        0.008        0.058
        7          PL PRFO82D  006 SYSTEM   NOMSTCS  1020                   Perform             1        0.004        0.017
...

Erläuterungen:

  • Die Spalte Count zeigt die Nummer des konsolidierten Datensatzes.

  • Die Spalte Transact zeigt die Transaktionskennung.

    Die Transaktionskennung beginnt mit 1 und wird mit jedem IA- (nach Terminal-E/A) oder RI-Ereignis (eingehende RPC-Nachricht) erhöht. Transaktionskennungen sind nur verfügbar, wenn die Daten mit der Option TRANSACTION=ON konsolidiert werden.

  • Der konsolidierte Datensatz 4 zeigt, dass die RESET-Anweisung in der Zeile 0010 des Copycode C-COPYRT (im Natural-Objekt A82CLS enthalten) 43 Mal ausgeführt wurde und eine verstrichene (elapsed) Gesamtzeit von 0,043 Millisekunden (ms) und eine Gesamt-CPU-Zeit von 0,118 ms verbrauchte.

  • Die Anwendung lief auf einer z/OS-Maschine mit zIIP (IBM System z Integrated Information Processor). Unter dieser Bedingung kann die CPU-Zeit höher sein als die verstrichene (elapsed) Zeit.

Weitere Erläuterungen zu den Trace-Spalten und Ereignistypen finden Sie in den Abschnitten Event-Trace und Gesammelte Ereignisse und Daten.

Programm-Trace

Wenn PROGRAM=ON für eine NPRF-Ressourcendatei angegeben wird, wird das Profiler-Programm-Trace erstellt. Das Programm-Trace zeigt den Programmfluss der profilierten Anwendung. Im Allgemeinen zeigt der Programmablauf ausschließlich Programm- und Session-Ereignisse an (eine Liste möglicher Ereignistypen finden Sie unter Gesammelte Ereignisse und Daten).

Wenn der Programmablauf in die Standardausgabe (PRINT=ON) geschrieben oder im Textformat exportiert wird (EXPORT=ON, FORMAT=TEXT), werden die Programmnamen entsprechend der Programmebene eingerückt (siehe Beispiel unten), um einen schnellen Überblick über die Anwendungsaufrufstruktur zu erhalten.

Wenn die Daten im CSV-Format (kommagetrennte Werte) exportiert werden, werden die Programmnamen nicht eingerückt. Zusätzlich zur Ausgabe im Textformat enthalten die exportierten Daten den CPU-Zeitstempel und die zusammengefasste Adabas-Zeit.

Beispiel für einen Programm-Trace

Das folgende Beispiel zeigt einen Auszug eines Programm-Trace und die Summen der Anwendungsausführung:

Natural Profiler Program Trace
------------------------------
Time            Ev Library  CC-Name  Line Lev Program  Events
10:20:58.309812 PL                   0000 000
10:20:58.309817 PS SYSEDMD           0000 001 .OPTTEST  D=4 N=2
10:20:58.357694 PL SYSEDMD           5620 001 .OPTTEST
10:20:58.357704 PS SYSEDMD           0000 002 ..CALLMON3 N=3
10:20:58.385263 PL SYSEDMD           0980 002 ..CALLMON3
10:20:58.385274 PS SYSEDMD           0000 003 ...OP3DISC  D=3 N=4
10:20:58.412207 PL SYSEDMD           1670 003 ...OP3DISC
10:20:58.412221 PS SYSEDMD           0000 004 ....OPTINFO  N=57
10:20:58.443203 PL SYSEDMD           5830 004 ....OPTINFO
10:20:58.443210 PS SYSEDMD           0000 005 ....:OPTPARM1 D=3 N=19
10:20:58.449549 PL SYSEDMD           1960 005 ....:OPTPARM1
10:20:58.449555 PS SYSEDMD           0000 006 ....:.OPTPARM2 D=3 N=10
10:20:58.458286 PL SYSEDMD           0560 006 ....:.OPTPARM2
10:20:58.458300 PS SYSEDMD           0000 007 ....:..OPTPARM3 N=16
10:20:58.458390 PL SYSEDMD           1530 007 ....:..OPTPARM3
10:20:58.458408 PS SYSLIBS           0000 008 ....:...NAT41004 D=10 C=6 N=7345
10:20:58.471017 PT SYSLIBS           5235 008 ....:...NAT41004
10:20:58.471017 PR SYSEDMD           1530 007 ....:..OPTPARM3 N=2898
10:20:58.473293 PL SYSEDMD           1530 007 ....:..OPTPARM3
10:20:58.473297 PS SYSLIBS           0000 008 ....:...NAT41004 D=5 C=6 N=1416
10:20:58.475581 PT SYSLIBS           5235 008 ....:...NAT41004
10:20:58.475581 PR SYSEDMD           1530 007 ....:..OPTPARM3 N=466
10:20:58.475957 PT SYSEDMD           2190 007 ....:..OPTPARM3
10:20:58.475957 PR SYSEDMD           0560 006 ....:.OPTPARM2 N=283
10:20:58.476187 PT SYSEDMD           0860 006 ....:.OPTPARM2
10:20:58.476187 PR SYSEDMD           1960 005 ....:OPTPARM1 N=42
10:20:58.476222 PT SYSEDMD           7510 005 ....:OPTPARM1
10:20:58.476222 PR SYSEDMD           5830 004 ....OPTINFO  D=3 N=10
10:20:58.497926 PL SYSEDMD           6080 004 ....OPTINFO
10:20:58.521954 PR SYSEDMD           1670 003 ...OP3DISC  N=241
10:21:11.205102 PR SYSEDMD           0980 002 ..CALLMON3 D=7 N=6070
10:21:41.704996 PR SYSEDMD           5620 001 .OPTTEST  D=8 I=3 N=26
10:21:41.731229 PT SYSEDMD           7370 001 .OPTTEST
10:21:41.731229 PR                   0000 000          D=14 I=1
10:21:42.248348 ST                   0000 000

Totals
------
Ev Event                    Count
S  Session ................ 1
P  Program ................ 5297
D  Database Call .......... 2140
I  Terminal I/O ........... 12
C  External Program Call .. 6510
E  Runtime Error .......... 43
N  Natural Statement ...... 857384
R  RPC Request............. 0
U  User-Defined Event ..... 0
M  Monitor Pause .......... 2

Erläuterungen:

  • Für jedes aufgeführte Ereignis wird der Zeitpunkt des Ereignisses, die aktive Library, das Programm (Natural-Objekt), der Copycode, die Zeilennummer und die Programmebene angezeigt.

  • Dem Programmnamen folgt die Anzahl der Ereignisse, die von einem Programmereignis bis zum nächsten Programmereignis aufgetreten sind.

  • Ereignisse, die zu einer Ereignisgruppe gehören, werden unter Verwendung der maximalen Anzahl der entsprechenden Ereignistypen zu einer Anzahl zusammengefasst. Beispiel: Ein Database Before-(DB)- und ein Database After-(DA)-Ereignis werden zu einem Datenbankereignis (D=1) zusammengefasst.

  • Im obigen Beispiel wurde das Natural-Objekt OPTTEST auf Ebene 1 gestartet. Dieses Programm ruft das Subprogramm CALLMON3 auf, das weitere Subprogramme aufruft. Die höchste Stufe 8 wird erreicht, wenn das Subprogramm NAT41004 ausgeführt wird. Während der ersten Ausführung führt dieses Subprogramm 10 Datenbankaufrufe (D=10), 6 externe Programmaufrufe (C=6) und 7345 Natural-Statements (N=7345) durch.

  • Der Abschnitt Totals (Summen) am Ende des Programm-Trace zeigt die maximale Anzahl jeder Ereignisgruppe. Zum Beispiel: Die Summe von 2140 Datenbankaufrufe entspricht 2140 Database Before-(DB)- und 2140 Database After-(DA)-Ereignissen.

  • Die Summen der Ereignisgruppen Session (S) und Program (P) sind nur unter Totals (Summen) aufgeführt; sie sind nicht neben dem Programmnamen aufgeführt.

Weitere Erläuterungen zu den Trace-Spalten finden Sie im Abschnitt Ereignis-Trace.

Erläuterungen zu Ereignistypen und zugehörigen Ereignisgruppen finden Sie im Ereignisse.

Programmzusammenfassung

Wenn PROGRAM=ON für eine NPRC-Ressourcendatei angegeben ist, wird die Profiler-Programmzusammenfassung generiert.

Die Programmzusammenfassung zeigt für jedes Natural-Objekt, wie viele Natural-Ereignisse aufgetreten sind, die gesamte CPU-Zeit (in Millisekunden) und den Prozentsatz der CPU-Zeit, die das Natural-Objekt bezogen auf die gesamte CPU-Zeit aufgewendet hat.

Monitor-Pause-Ereignisse und Ereignisse auf Ebene 0 werden nicht für die Programmzusammenfassung berücksichtigt. Ereignisse, die zu einer Ereignisgruppe gehören, werden zu einer Zählung zusammengefasst: siehe Ereignisse.

Programmstarts und Ladeanforderungen werden separat aufgeführt.

Wenn die Daten im CSV-Format (kommagetrennte Werte) exportiert werden, wird die Anzahl jedes Ereignistyps aufgelistet. Darüber hinaus werden die verstrichene (elapsed) Zeit und die Adabas-Zeiten (absolute und prozentuale Werte) angezeigt. Die exportierten Zeitwerte werden in Mikrosekunden angezeigt.

Beispiel für eine Programmzusammenfassung

Das folgende Beispiel zeigt den Auszug einer Programmzusammenfassung:

Natural Profiler Program Summary                                                                                      
--------------------------------                                                                                      
Library  Program      Start      Load  Database       I/O  External     Error Statement      User CPU-Time (ms)  CPU %
SYSEDMD  ADA-CL          41         0        40         0        41         0       621         0         3.785   0.14
SYSEDMD  ADA-RC          45         0        44         0        45         0       545         0         4.704   0.17
SYSEDMD  AOS-CL         115        97        15         0         0         0      2507         0        42.890   1.63
SYSEDMD  AOS-OP         169       154        22         0         0         0      6975         0        70.286   2.68
SYSEDMD  BYTE             1         0         0         0         0         0        11         0         0.034   0.00
SYSEDMD  CALLMON3         1         5        23         0         0         0      7089         0        20.001   0.76
SYSEDMD  CALLNOM          6         6        19         0         0         0        18         0         1.342   0.05
SYSEDMD  CALLNOPM         2         2         4         0         0         0        16         0         0.395   0.01
SYSEDMD  CALLNOPN         1         1         4         0         0         0         8         0         0.244   0.00
SYSEDMD  CALLNOPS         3         4        23         0         0         1        31         0         1.841   0.07
SYSEDMD  DISNOP           1         7         6         0         0         0       515         0         2.260   0.08
SYSEDMD  DISNO4I          1        47         3         0         1         0      8075         0        25.516   0.97
SYSEDMD  DISNO4IS        57         0         0         0       624         0     36877         0       105.650   4.03
SYSEDMD  DISNRS           1         0         0         0        44         0       511         0         3.343   0.12
SYSEDMD  DISNSP           1        18        15         0         0         0      1850         0         6.074   0.23
SYSEDMD  DISNTMZ          1         4        11         0         0         0       324         0         2.309   0.08
SYSEDMD  MENU             1         1         3         0         0         0         2         0         0.235   0.00
SYSEDMD  MONACSH          1         6         6         0         0         0      1217         0         3.470   0.13
SYSEDMD  MONADA           1      3176        71         0         0         0    272180         0       680.214  25.98
SYSEDMD  MONAREP          1         9        28         0         0         0      1964         0         6.378   0.24
...
Total                  5294      5293      2122         7      6510        43    857384         0      2617.326 100.00

Erläuterungen:

  • Das Natural-Objekt MONADA verbrauchte die meiste CPU-Zeit: 680,214 ms, was 25,98 Prozent der gesamten CPU-Zeit entspricht.

  • MONADA wurde einmal gestartet, es lud 3176 andere Natural-Objekte, führte 71 Datenbankaufrufe und 272180 Natural-Statements durch. Es gab keine Eingabe/Ausgabe, keinen externen Aufruf und keinen Fehler im Programm.

  • Am Ende der Programmzusammenfassung werden die Gesamtzahlen der Profil-Erstellung aufgelistet.

Zeilenzusammenfassung

Wenn LINE=ON für eine NPRC-Ressourcendatei angegeben wird, wird die Profiler-Zeilenzusammenfassung generiert.

Die Zeilenzusammenfassung zeigt für jede Quellcodezeile in einem Natural-Objekt die Anzahl der aufgetretenen Natural-Ereignisse (Hit-Count/Trefferzahl), die CPU- und die verstrichene (elapsed) Zeit (in Millisekunden und Prozent), die für die Zeile aufgewendet wurde. Der Prozentsatz der Zeiten wird im Verhältnis zu den Gesamtzeiten der Anwendung berechnet.

Die Zeilenzusammenfassung zählt keine Monitor-Pause-Ereignisse und Ereignisse auf Ebene 0.

Wenn die Daten im CSV-Format (kommagetrennte Werte) exportiert werden, wird die Anzahl jedes Ereignistyps aufgelistet. Zusätzlich werden die Adabas-Zeiten (absolute und prozentuale Werte) angezeigt. Die exportierten Zeitwerte werden in Mikrosekunden angezeigt.

Beispiel für eine Zeilenzusammenfassung

Das folgende Beispiel zeigt den Auszug einer Zeilenzusammenfassung:

Natural Profiler Line Summary                                                                
--------------------------------                                                             
Library  Program  Line CC-Lib   CC-Name  Hit-Count       CPU (ms)  CPU %  Elapsed (ms)  Ela %
PRFTEST  XINT     0000                            1         0.016   0.46         0.003   0.01
PRFTEST  XINT     0140                            1         0.005   0.14         0.001   0.00
PRFTEST  XINT     0150                            1         0.006   0.17         0.002   0.01
PRFTEST  XINT     0160                            1         0.004   0.11         0.001   0.00
PRFTEST  XINT     0170                           23         0.128   3.75         0.029   0.18
PRFTEST  XINT     0180                           10         0.049   1.43         0.012   0.07
PRFTEST  XINT     0190                           10         0.054   1.58         0.010   0.06
...
Total                                           371         3.408 100.00        15.992 100.00

Erläuterungen:

  • Die Zeile 0170 im Natural-Objekt XINT verbrauchte 0,128 ms der CPU-Zeit und 0,029 ms der verstrichenen (elapsed) Zeit. Dies entspricht 3,75 Prozent der gesamten CPU-Zeit und 0,18 Prozent der gesamten verstrichenen (elapsed) Zeit. 23 Ereignisse (Hit-Count/Trefferzahl) wurden in der Zeile ausgeführt.

  • Am Ende der Zeilenzusammenfassung werden die Gesamtzahlen der Profil-Erstellung aufgelistet.

Transaktionszusammenfassung

Eine Transaktion ist der Code, der zwischen zwei aufeinanderfolgenden Terminal-Ein-/Ausgabe-Vorgängen ausgeführt wird. Die verstrichene (elapsed) Zeit, die für die Ausführung einer Transaktion aufgewendet wurde, wird als Antwortzeit (Response Time) bezeichnet.

Die vom Profiler generierte Transaktionszusammenfassung zeigt, wie viele Natural-Ereignisse bei jeder Transaktion aufgetreten sind, die Antwortzeit (in Millisekunden) und den Prozentsatz der Antwortzeit, die die Transaktion bezogen auf die gesamte Antwortzeit aufgewendet hat.

Erforderliche Voraussetzungen für Transaktionsbewertungen

Die Profiler-Daten müssen mit der CONSOLIDATE-Funktion auf TRANSACTION=ON konsolidiert werden, damit die konsolidierten Datensätze in der NPRC-Ressourcendatei Transaktionsbezeichner enthalten, die für die Auswertung der Transaktionsantwortzeit erforderlich sind.

TRANSACTION=ON wird für die READ-Funktion angegeben.

Für Transaktionen ausgewertete Ereignisdaten

Im Allgemeinen bezieht sich ein Terminal-Ein-/Ausgabe-Ereignis auf eine Transaktion. Die Anzahl der Terminal-Ein-/Ausgabe-Ereignisse ist nicht in der Standardausgabe aufgeführt (für PRINT=ON).

Daten, die im CSV-Format (kommagetrennte Werte) exportiert werden, enthalten die Anzahl jedes Ereignistyps, einschließlich Terminal-Eingabe/Ausgabe. Darüber hinaus enthält die Datenliste die CPU-Zeit und die Adabas-Zeiten (absolute und Prozentwerte). Exportierte Zeitwerte werden in Mikrosekunden angezeigt.

Die Transaktionszusammenfassung berücksichtigt keine Before Terminal E/A (IB)-Ereignisse, RPC Wait for Client-Ereignisse (RW), Monitor Pause (MP)-Ereignisse und Ereignisse auf Ebene 0. Ereignisse, die zu einer Ereignisgruppe gehören, werden zu einer Zählung zusammengefasst.

Erläuterungen zu Ereignistypen und zugehörigen Ereignisgruppen finden Sie im Abschnitt Ereignisse.

Geänderte Zeilen- und Programmzusammenfassung

Wenn TRANSACTION=ON für die READ-Funktion einer NPRC-Ressourcendatei angegeben wird, berücksichtigen die Programmzusammenfassung und die Zeilenzusammenfassung auch den Transaktionsbezeichner (Identifier) und aggregieren die Programm- und Positionswerte für jede Transaktion separat. In der Transaktionszeilenzusammenfassung gibt die Spalte ID die Programmzeile an, in der die Transaktion gestartet wurde.

Beispiel für eine Transaktionszusammenfassung

Das folgende Beispiel zeigt eine Transaktionszusammenfassung:

Natural Profiler Transaction Summary                                                                                     
------------------------------------                                                                                     
Transact TA-Lib   TA-Prog  TA-CC TA-Line   Program  Database  External     Error Statement      User  Elapsed (ms)  Time%
       1                                         1         0         1         0         0         0         0.829   0.50
       2 SYSPRFLR PRFMENM           0020         9        13         8         0         0         0        17.618  10.65
       3 SYSEDM   MOPTTEST          0020         4         0         0         0         0         0         6.167   3.72
       4 SYSEDM   OPTWLS80          0470         0         0         0         0         0         0         1.108   0.66
       5 SYSEDM   OPTWLS80          0470         2         0         0         0         0         0         1.133   0.68
       6 SYSEDM   OPTTEST           1750         1         0         0         0         0         0         1.180   0.71
       7 SYSEDM   MOPTTEST          0020        27        33        30         0         0         0        94.236  56.96
       8 SYSEDM   OPTTEST           5590         1         0         0         0         0         0         1.185   0.71
       9 SYSEDM   MOPTTEST          0020        37        33        56         0         0         0        37.311  22.55
      10 SYSEDM   OPTTEST           5760         1         0         0         0         0         0         1.096   0.66
      11 SYSEDM   MOPTTEST          0020         6         0         6         0         0         0         2.164   1.30
      12 SYSPRFLR PRFMENM           0020         2         0         3         0         0         0         1.394   0.84
Total                                           86        79       103         0         0         0       165.421 100.00

Erläuterungen am Beispiel von Transaktion 7:

  • Transaktion 7 verbrauchte die längste (verstrichene) Antwortzeit: 94,236 Millisekunden (ms), was 56,96 Prozent der gesamten Antwortzeit entspricht.

  • Transaktion 7 startete eine E/A-Vorgang in der Library SYSEDM (TA-Lib-Spalte), Programm MOPTTEST (TA-Prog), Programmzeile 0020 (TA-Line).

  • Transaktion 7 hat auf 27 Programme zugegriffen und 33 Datenbankaufrufe und 30 externe Programmaufrufe durchgeführt.

  • Im obigen Beispiel sind alle Zähler für Statement-Ereignisse 0, da Statement-Ereignisse während diesem Profiler-Lauf nicht gesammelt wurden.

  • Am Ende der Transaktionszusammenfassung werden die Gesamtzahlen (Total) der profilierten Transaktionen aufgelistet.

Programmabdeckung

Die Programmabdeckungstabelle wird generiert, wenn PROGRAM=ON für eine NCVF-Ressourcendatei angegeben ist.

Die Programmabdeckungstabelle zeigt die Codeabdeckungsergebnisse für jedes aufgerufene Natural-Objekt. Wenn die Tabelle im Textformat angegeben wird, werden nur die GP-Abdeckungsergebnisse (einschließlich Copycodes) angezeigt. Im CSV-Format (kommagetrennte Werte) zeigt die Tabelle Zeilen, die Copycode-Werte enthalten, zusätzliche Spalten mit Quellcodezählern (Copycodes nicht enthalten) und Informationen zu INCLUDE-Statements.

Im Textformat enthält die Tabelle die Anzahl der Abdeckungen für jede aufgerufene Library und für die gesamte Anwendung.

Die Tabelle enthält die folgenden Spalten:

Spalte Beschreibung
Evaluation Der Auswertungstyp. Mögliche Typen sind:
Program Für Programmabdeckungsdaten.
Event (Ereignis) Für Statement-Abdeckungsdaten.
Statistics Für Profiler-Statistikdaten.
Object Count Die Anzahl der katalogisierten Objekte (GPs), die in der Tabelle aufgeführt sind.
Object Type Der Typ des Natural-Objekts, z.B. Programm und Subprogramm.
Library Die Natural-Library, die das Objekt enthält.
Object Der Name des Natural-Objekts.
Copycode ID Der eindeutige Bezeichner der Copycode-Instanz im katalogisierten Objekt (GP). Das Programm erhält die Copycode-ID 0.
Copycode Library Die Library, aus der der Copycode eingefügt wird.
Copycode Name Der Name des Copycode.
GP Coverage% Der Prozentsatz der Objektabdeckung, wobei INCLUDE-Statements aufgelöst werden.
GP Covered Die Anzahl der abgedeckten (ausgeführten) Statements, wobei INCLUDE-Statements aufgelöst werden.
GP Missed Die Anzahl der "missed" (nicht ausgeführten) Statements im Objekt, wobei INCLUDE-Statements aufgelöst werden.
GP Total Die Gesamtzahl aller ausführbaren Statements im Objekt, wobei INCLUDE-Statements aufgelöst werden.
Src Coverage% Der Prozentsatz der Objektabdeckung, wobei INCLUDE-Statements nicht aufgelöst werden.
Src Covered Die Anzahl der abgedeckten (ausgeführten) Statements, wobei INCLUDE-Statements nicht aufgelöst werden.
Src Missed Die Anzahl der "missed" (nicht ausgeführten) Statements im Objekt, wobei INCLUDE-Statements nicht aufgelöst werden.
Src Total Die Gesamtzahl aller ausführbaren Statements im Objekt, wobei INCLUDE-Statements nicht aufgelöst werden.
First Statement Die ID des ersten Statements des Objekts oder Copycodes.
INCLUDE CC-ID Nur bei Copycode.

Die Copycode-ID des Objekts oder des Copycode, der den Copycode enthält.

INCLUDE Object Nur bei Copycode.

Der Name des Objekts oder des Copycode, der den Copycode enthält.

INCLUDE Line Nur bei Copycode.

Die Zeilennummer des INCLUDE-Statement, das den Copycode enthält.

Beispiel für die Programmabdeckung

Das folgende Beispiel zeigt das Ergebnis der Programmabdeckung im Textformat

Program Coverage                                          
----------------                                          
Library  Object   Ty Coverage%  Covered    Missed    Total
COVDEMO  TESTCOVN N      84.0%       37         7       44
COVDEMO  TESTCOVP P      69.2%        9         4       13
COVDEMO  -------- --     80.7%       46        11       57
Totals   -------- --     80.7%       46        11       57

Erläuterungen:

  • Die Anwendung greift auf zwei Objekte zu: Das TESTCOVN-Subprogramm (N) und das TESTCOVP-Programm (P).

  • In TESTCOVN gibt es 44 ausführbare Statements (Objektcode-Anweisungen), von denen 37 abgedeckt (ausgeführt) und 7 nicht ausgeführt wurden ("missed"), was eine Gesamtabdeckung von 84,0% ergibt.

  • Die aufsummierten Werte der beiden Objekte, auf die in der Library COVDEMO zugegriffen wird, zeigen eine Abdeckung von 80,7%.

  • Die Gesamtabdeckung beträgt ebenfalls 80,7%, weil die Objekte nur auf eine Library zugreifen.

Statement-Abdeckung

Die Statement-Abdeckung wird generiert, wenn EVENT=ON für eine NCVF-Ressourcendatei angegeben wird.

Für die Statement-Abdeckung liest die Profiler Utility den Quellcode der überwachten Objekte. Zuerst sucht sie den Quellcode in der Library, die die Natural Profiler-Ressource enthält. Wenn der Quellcode in dieser Library nicht gefunden wird, wird er in der Library gesucht, die mit den Profiler-Daten angegeben ist. Wenn der Quellcode auch dort nicht gefunden wird oder wenn der Quellcode nicht mit den gesammelten Daten übereinstimmt, werden im Statement-Abdeckungsreport Quellcodezeilen nicht gedruckt. Die Profiler Utility löst INCLUDE-Statements auf und fügt den Quellcode des entsprechenden Copycodes in das inkludierende Programm ein. Wenn die INCLUDE-Struktur nicht aufgelöst werden kann, werden die Copycodes separat gedruckt.

Wenn ein Quellcode nach der Ausführung der Abdeckung geändert wurde, kann die Profiler Utility nicht mehr die vollständigen Informationen bereitstellen. Um dies zu verhindern, kopieren Sie die Ressourcendatei zusammen mit den zugehörigen Programmquellen in eine andere Library. Wenn die Profiler Utility die Ressource liest, werden die Quellcodes aus der Ressource-Library genommen und eine Änderung der ursprünglichen Quellcodes hat keinen Einfluss auf die Statement-Abdeckung.

Die Statement-Abdeckung zeigt den Prozentsatz der Statements, die für jede Quellcodezeile der aufgerufenen Programme abgedeckt werden. Wenn das Ergebnis im Textformat geschrieben ist, werden für jedes in der Statistik aufgeführte Objekt die Objektabdeckungswerte vor den Statement-Abdeckungsdaten angezeigt. Wenn das Ergebnis im CSV-Format (kommagetrennte Werte) geschrieben wird, werden zusätzliche Informationen zur Abdeckung der Statement-Abdeckung bereitgestellt.

Die Tabelle enthält die folgenden Spalten:

Spalte Beschreibung
Evaluation Der Auswertungstyp. Mögliche Typen sind:
Program Für Programmabdeckungsdaten.
Event (Ereignis) Für Statement-Abdeckungsdaten.
Statistics Für Profiler-Statistikdaten.
Object Count Die Anzahl der in der Tabelle aufgeführten Objekte (GPs).
Library Die Natural-Library, die die Objekte enthält.
Object Der Name des Natural-Objekts.
Copycode ID Der eindeutige Bezeichner der Copycode-Instanz im zugehörigen katalogisierten Objekt. Das Programm erhält die Copycode-ID 0.
Copycode Library Die Library, die den Copycode enthält (wenn Copycode aktiv ist).
Copycode Name Der Name des Copycodes (wenn Copycode aktiv ist).
Line Die Zeilennummer im Natural Source-Objekt, z. B. 0120.
Source Die Natural-Quellcodezeile, die eine Statement-Definition enthält, z. B. MOVE #A TO #B.
Coverage% Der Prozentsatz der Statement-Abdeckung der Zeile.
Covered Die Anzahl der in der Zeile abgedeckten (ausgeführten) Statements.
Missed Die Anzahl der "missed" (nicht ausgeführten) Statements in der Zeile.
Total Die Gesamtzahl aller ausführbaren Statements (Objektcode-Anweisungen) in der Zeile.
Item Coverage Gibt an, welche Statement-Elemente (Objektcode-Anweisungen) in der Zeile abgedeckt oder nicht abgedeckt wurden ("missed"). Jedes Statement wird entweder durch 1 oder 0 dargestellt, wobei 1 ein abgedecktes Statement und 0 ein nicht abgedecktes ("missed") Statement anzeigt. Zum Beispiel: Ein Wert von x100 zeigt an, dass nur das erste von drei Statements in der Zeile abgedeckt ist.
Mark Zeigt den Abdeckungsstatus der Zeile an.

Die Spalte Mark kann verwendet werden, um die Abdeckungsergebnisse in Tools wie Microsoft Excel zu visualisieren. Mögliche Mark-Werte sind unter Microsoft Excel-Vorlage zur Visualisierung der Abdeckungsergebnisse benutzen aufgeführt.

Beispiel für Statement-Abdeckung:

Im folgenden Beispiel wird angenommen, dass die Entwicklungsabteilung eine neue Version des TESTCOVN-Subprogramms an die Qualitätssicherungsabteilung geliefert hat. Nach dem Ausführen der Testprogramme zeigt die Statement-Abdeckung des Subprogramms das folgende Ergebnis (Textformat):

Statement Coverage
------------------ 
M Cov% CC-Lib   CC-Name  Line Source                         
*                        0010 * Test function Coverage       
*                        0020 * Subprogram TESTCOVN          
+                        0030 DEFINE DATA                    
+                        0040 PARAMETER                      
+                        0050 1 FUNC     (I2)  /* Function   
+                        0060 1 RET-CODE (I4)  /* Return code
+                        0070 END-DEFINE                     
*                        0080 *                              
*                        0090 /* Return 0 by default         
C 100%                   0100 RESET RET-CODE                 
*                        0110 *                              
C 100%                   0120 DECIDE ON FIRST VALUE OF FUNC  
P  50%                   0130   VALUE 0                      
M   0%                   0140     PRINT 'Test function 0'    
P  66%                   0150   VALUE 1                      
C 100%                   0160     PRINT 'Test function 1'    
C 100%                   0170   VALUE 2                      
C 100%                   0180     PRINT 'Test function 2'    
C 100%                   0190   VALUE 3                      
C 100%                   0200     PRINT 'Test function 3'    
C 100%                   0210   VALUE 4                      
C 100%                   0220     PRINT 'Test function 4'    
C 100%                   0230   VALUE 5                                 
C 100%                   0240     PRINT 'Test function 5'               
C 100%                   0250   VALUE 6                                 
C 100%                   0260     PRINT 'Test function 6'               
C 100%                   0270   VALUE 7                                 
C 100%                   0280     PRINT 'Test function 7'               
C 100%                   0290   VALUE 8                                 
C 100%                   0300     PRINT 'Test function 8'               
P  33%                   0310   VALUE 9                                 
M   0%                   0320     PRINT 'New test function 9'           
C 100%                   0330   NONE VALUE                              
M   0%                   0340     RET-CODE := 1 /* Unsupported function
+                        0350 END-DECIDE                                
*                        0360 *                                         
C 100%                   0370 END

Erläuterungen:

  • Die Spalte Mark (M) zeigt an, ob eine Zeile abgedeckt (C = Covered), nicht abgedeckt (M = Missed) oder teilweise abgedeckt (P = Partially) ist.

  • Keine Testfälle decken die Funktionen Test function 0 und New test function 9 ab (bezeichnet mit M und 0% Abdeckung). Der Fall NONE VALUE wird ebenfalls nicht abgedeckt.

  • Alle anderen Testfälle sind abgedeckt (bezeichnet mit C und 100% Abdeckung).

  • Ein Natural VALUE-Statement entspricht mehreren Objektcode-Statements. Die Abdeckung von 50% und 60% für VALUE 0- und VALUE 1-Statements zeigt an, dass nur ein Teil dieser Objektcode-Statements abgedeckt ist.

    Dies liegt daran, dass eines der generierten Objektcode-Statements aus technischen Gründen zum vorangehenden Statement und die anderen zum aktuellen VALUE-Statement gehören.

Infolge dieser Abdeckungsanalyse müssen die Testfälle so angepasst werden, dass auch die Test function 0 und die Test function 9 (und möglicherweise der Fehlerfall mit einem nicht unterstützten Funktionscode) abgedeckt sind.

Microsoft Excel-Vorlage zur Visualisierung der Abdeckungsergebnisse benutzen

Voraussetzungen: Microsoft Excel und Natural für Windows oder Natural für UNIX.

Wenn Sie das Abdeckungsergebnis mit Microsoft Excel analysieren möchten, können Sie die Microsoft Excel-Vorlage verwenden, die mit Natural für Windows und Natural für UNIX geliefert wird. Führen Sie dazu die folgenden Schritte aus:

  1. Führen Sie die Profiler READ-Funktion aus und schreiben Sie die Ausgabedaten im CSV-Format (kommagetrennte Werte) in Arbeitsdatei 7 (Work File 7). Zum Beispiel:

    FUNCTION=READ           /* Read Profiler Data
      RESOURCE-NAME='Test'  /* Resource name
      RESOURCE-LIB=PRFDATA  /* Resource library
      RESOURCE-TYPE=NCVF    /* Use resource type NCVF
      EVENT=ON              /* Print statement coverage
      PROGRAM=ON            /* Print program coverage
      STATISTICS=ON         /* Print statistics
      PRINT=ON              /* Write to standard output
      EXPORT=ON             /* Write to Work File 7
      FORMAT=COMMA          /* Export in CSV format
  2. Falls Ihr Microsoft Excel Semikolons als Trennzeichen benötigt, geben Sie Folgendes an:

    FORMAT=SEMICOLON      /* Export in CSV format
  3. Exportieren Sie die Daten von Arbeitsdatei 7 mit einem beliebigen Tool (z. B. FTP) als CSV-formatierte Datei in eine Windows-Umgebung.

  4. Öffnen Sie die CSV-Datei mit Microsoft Excel.

  5. Ordnen Sie die Daten neu an, so dass sich jeder Auswertungstyp (Programm, Ereignis, Statistik) auf einem eigenen Arbeitsblatt in der Microsoft Excel-Datei befindet.

  6. Öffnen Sie die gelieferte Vorlage TESTCOV.XLSX mit Microsoft Excel. Die Vorlage ist im Unterverzeichnis RES (Ressourcen) der Natural-System-Library SYSPRFLR enthalten.

  7. Kopieren Sie für jedes Arbeitsblatt das Format aus der Vorlage in Ihr Microsoft Excel:

    • Klicken Sie auf die obere linke Ecke der Tabelle in der Vorlage, um alle Daten in der Tabelle zu markieren.

    • Klicken Sie auf die Microsoft Excel-Funktion Copy format.

    • Klicken Sie auf die obere linke Ecke der Tabelle in Ihrem Arbeitsblatt, um das Format zu kopieren.

      Jetzt sind alle Einträge wie in der Vorlage formatiert. Die Quellcodezeilen sind wie folgt gefärbt und markiert:

      Farbe Markierung Beschreibung
      Grün C Alle Statements in der Zeile sind abgedeckt ("Covered").
      Gelb P Die Statements in der Zeile sind teilweise abgedeckt ("Partially").
      Rosa M Alle Statements in der Zeile werden nicht abgedeckt ("Missed").
      Grau * Ein Kommentar oder eine leere Zeile.
      Rot E Fehler aufgetreten.

      Zum Beispiel, wenn die Abdeckungsanalyse eine Zeilennummer gesammelt hat, aber die entsprechende Quellcodezeile nicht gefunden wird.

      Keine (weiß) + Alle anderen Zeilen, z.B. Fortsetzungszeilen eines Statement.

Beispiel für ein Microsoft Excel-Arbeitsblatt

Das folgende Beispiel zeigt einen Arbeitsblattauszug der Codeabdeckung für das Programm TESTCOVP mit inkludiertem Copycode TESTCOVC ohne die Spalten, die den Objektnamen und die Library enthalten:

Sample Excel sheet extract.

Erläuterungen:

  • Die Quellcodezeilen des Copycode TESTCOVC sind in den Quellcode des Programms TESTCOVP direkt nach dem entsprechenden INCLUDE-Statement eingefügt.

  • Die (rosa) Zeilen 40 bis 70 des Copycodes enthalten nicht abgedeckte ("missed") Statements, was bedeutet, dass sie im Testlauf nicht ausgeführt wurden.

  • Alle anderen Zeilen (grün), die ausführbare Statements enthalten, sind abgedeckt.

  • Ein FOR-Statement entspricht vier Objektcode-Statements. Alle vier Statements werden, wie in x1111 in der Spalte Item Coverage angezeigt, behandelt.

Statistiken

Wenn STATISTICS=ON angegeben wird, werden die Profiler-Statistiken aufgelistet.

Wenn die Daten im CSV-Format (kommagetrennte Werte) exportiert werden, werden die Eigenschaften und Werte der Profiler-Statistiken als separate Spalten zum Ereignis- oder Konsolidierungs-Trace hinzugefügt. Wenn Abdeckungsdaten im CSV-Format exportiert werden, werden die Statistikwerte in zusätzlichen Zeilen hinzugefügt, die durch den Wert Statistics in der Spalte Evaluation gekennzeichnet sind.

Beispiel für Statistik:

Das folgende Beispiel zeigt einen Auszug aus den Statistikdaten einer NPRC-Ressourcendatei:

***************************************************************************  
* 11:02:39          ***** NATURAL PROFILER UTILITY *****         2015-08-05  
* User SAGTEST1                - Statistics -                       RESDATA  
*                                                                            
* General Info                                                               
* Machine class ...................... MAINFRAME                             
* Environment ........................ Batch                                 
...
* Profiler Resource File                                                     
* Resource name ...................... EDM-MONITOR.nprc                      
* Resource type ...................... Natural Profiler Resource Consolidated
* Resource allocation date ........... 2015-07-27 10:36:19.6
* Resource size (bytes) .............. 565160               
...
*                                                           
* Monitor Session                                           
* Monitor start time ................. 2015-07-27 10:20:57.2
* Monitor end time ................... 2015-07-27 10:21:42.8
* Monitor elapsed time (sec) ......... 45.519604            
*                                                           
* Trace Session                                             
* First library ...................... SYSEDMD              
* First program ...................... MENU                 
* Highest level ...................... 10                   
* Trace start time ................... 10:20:58.219911      
* Trace end time ..................... 10:21:42.248348      
* Trace elapsed time (sec) ........... 44.028437            
...
* Data Processing                               
* Number of events ................... 895936   
...
* Data Consolidation                                                       
* Consolidation ...................... ON                                  
* Consolidation records .............. 21624                               
* Consolidation elapsed time (sec) ... 15.643516                           
* Consolidation factor ............... 41.4                                
* Consolidation records/block ........ 191.3                               
* Bytes/consolidation record ......... 25.8                                
*
...                                                                          
***************************************************************************

Erläuterungen:

  • Die Ressource EDM-MONITOR.nprc wurde am 27.07.2015 um 10:36:19 Uhr zugewiesen und hat eine Größe von 565160 Bytes.

  • Die profilierte Anwendung lief am selben Tag um 10:20:58 Uhr für 44,0 Sekunden und startete mit dem Programm MENU in der Library SYSEDMD.

  • Die profilierte Anwendung generierte insgesamt 895936 Natural-Ereignisse. Die Datenkonsolidierung dauerte 15,6 Sekunden und reduzierte die Anzahl der Datensätze auf 21624, was einem Konsolidierungsfaktor von 41,4 entspricht.

Alle bereitgestellten Statistikinformationen werden im Abschnitt Profiler-Statistikdaten erläutert.

Profiler-Ressourcendateien verwalten

Im Allgemeinen werden Profiler-Ressourcen mit der Natural Utility SYSMAIN, NaturalONE oder Natural Studio als NPRF-, NPRC- oder NCVF-Dateien aufgeführt. Diese Tools bieten auch Funktionen zum Kopieren, Umbenennen und Löschen von Ressourcendateien.

Die Natural Profiler Rich GUI-Schnittstelle listet auch die Profiler-Ressourcen auf und bietet eine Funktion zum Löschen einer Profiler-Ressourcendatei.

Darüber hinaus können Sie Profiler Utility-Funktionen verwenden, um Profiler-Ressourcendateien aufzulisten und zu löschen.

Dieser Abschnitt behandelt die folgenden Themen:

Profiler-Ressourcendateien auflisten

Die Funktion LIST der Profiler Utility listet die Profiler-Ressourcendateien einer bestimmten Natural-Library sowie das Datum und die Uhrzeit auf, zu der die Ressourcendateien zugeordnet wurden.

Syntax von LIST:

FUNCTION=LIST
  [RESOURCE-LIB=library-name]
  [RESOURCE-TYPE={NPRF|NPRC|NCVF}]
  [PRINT={ON|OFF}]
  [EXPORT={ON|OFF}]
  [FORMAT={TEXT|COMMA|SEMICOLON}]

Syntax-Beschreibung:

Schlüsselwort für LIST Wert Beschreibung
RESOURCE-LIB library-name Der Name der Natural-Library, die die Profiler-Ressourcendateien enthält, die Sie auflisten möchten.

Standardwert: Der Name der aktuellen Library.

RESOURCE-TYPE   Gibt den Typ der aufzulistenden Ressourcendateien an: NPRF, NPRC oder NCVF.

Standardeinstellung: Alle Typen werden aufgelistet, wenn hier kein Wert angegeben ist.

NPRF Listet nur NPRF-Ressourcendateien (Natural Profiler Resource File) auf.
NPRC Listet nur NPRC-Ressourcendateien (Natural Profiler Resource Consolidated) auf.
NCVF Listet nur NCVF-Ressourcendateien (Natural Code Coverage File) auf.
PRINT   Gibt an, ob das Ergebnis in die Standardausgabe geschrieben wird.
ON In die Standardausgabe schreiben.
OFF Nicht in die Standardausgabe schreiben.
EXPORT   Gibt an, ob das Ergebnis in Natural-Arbeitsdatei (Work File) 7 geschrieben wird.
ON In Natural-Arbeitsdatei 7 schreiben.
OFF Nicht in Natural-Arbeitsdatei 7 schreiben.
FORMAT   Gibt das Format an, in dem die exportierten Daten in Arbeitsdatei 7 geschrieben werden.
TEXT Daten im Freitextformat schreiben.
COMMA Daten im CSV-Format schreiben mit einem Komma (,), das als Trennzeichen verwendet wird.
SEMICOLON Daten im CSV-Format schreiben mit einem Semikolon (;), das als Trennzeichen verwendet wird.
Beispiel für LIST:

Das folgende Beispiel listet die NPRF-Profiler-Ressourcendateien der Library PRFDATA auf. Die Liste wird in die Standardausgabe und in die Arbeitsdatei 7 im Textformat geschrieben.

FUNCTION=LIST           /* List Profiler resource files
  RESOURCE-LIB=PRFDATA  /* Resource library
  RESOURCE-TYPE=NPRF    /* List NPRF resource files
  PRINT=ON              /* Write to standard output
  EXPORT=ON             /* Write to Work File 7
  FORMAT=TEXT           /* Export in text format

Ausgabe:

Natural Profiler Resources
--------------------------
Library: PRFDATA
Resource type: nprf
 
Count Date       Time     Name
    1 2015-06-15 14:32:18 Hello1.nprf
    2 2015-06-26 18:39:57 QDTest1.nprf
    3 2015-06-24 22:00:35 QETest1.nprf
    4 2015-06-30 14:32:42 Studio.nprf
    5 2015-07-02 15:02:32 Test.nprf
 
Number of nprf resources in library PRFDATA: 5

Löschen einer Ressourcendatei

Wenn Sie eine große Ressourcendatei löschen oder ersetzen, kann es vorkommen, dass Sie die folgende Fehlermeldung erhalten:

Error - NAT3047 Maximum value for Adabas parameter NISNHQ was exceeded.

(Fehler - NAT3047 Maximalwert für den Adabas-Parameter NISNHQ wurde überschritten.)

In diesem Fall haben Sie drei Möglichkeiten:

  1. Bitten Sie Ihren Datenbankadministrator, den Wert des Adabas-Parameters NISNHQ zu erhöhen.

  2. Benutzen Sie die Delete-Funktion der Profiler Rich GUI-Schnittstelle. Sie verwendet die gleiche Technik wie die DELETE-Funktion der Profiler Utility.

  3. Benutzen Sie die DELETE-Funktion der Profiler Utility, um ein "unsauberes" Löschen der Ressource durchzuführen. Diese Funktion löscht die Ressource nicht in einem einzigen großen Schritt, sondern in Blöcken (mit einem Ende der Transaktion nach jedem Block). Wenn die DELETE-Funktion aus irgendeinem Grund fehlschlägt, müssen Sie sie wiederholen, um inkonsistente Daten zu beseitigen.

    Syntax von DELETE:

    FUNCTION=DELETE
      [RESOURCE-NAME=resource-name]
      [RESOURCE-TYPE={NPRF|NPRC|NCVF|NPRK|NONE}]
      [RESOURCE-LIB=library-name]

    Syntax-Beschreibung:

    Schlüsselwort für DELETE Wert Beschreibung
    RESOURCE-NAME resource-name Der Name der Profiler-Ressourcendatei, die Sie löschen möchten.

    Mögliche Erweiterungen sind .nprf (Natural Profiler resource file), .nprc (Natural Profiler resource consolidated), .ncvf (Natural code coverage file) oder .nprk (Natural Profiler resource key). Wenn keine Erweiterung angegeben wurde, wird die mit dem Schlüsselwort RESOURCE-TYPE angegebene Erweiterung automatisch hinzugefügt.

    Standardwert: keiner

    Wenn RESOURCE-TYPE=NPRK angegeben ist und kein RESOURCE-NAME, wird der Name der Profiler-Ressourcendatei, die den NaturalONE Profiler-Schlüssel enthält, als Ressourcenname verwendet.

    RESOURCE-TYPE   Der Standard-Ressourcentyp (Erweiterung), der gelöscht werden soll, wenn keine Erweiterung mit RESOURCE-NAME angegeben ist.

    Standardwert: NPRF

    NPRF Der Standard-Ressourcentyp ist NPRF mit der Erweiterung .nprf.
    NPRC Der Standard-Ressourcentyp ist NPRC mit der Erweiterung .nprc.
    NCVF Der Standard-Ressourcentyp ist NCVF mit der Erweiterung .ncvf.
    NPRK Der Standard-Ressourcentyp ist NPRK mit der Erweiterung .nprk.
    NONE Die Ressource mit dem Kurznamen resource-name wird gelöscht.
    RESOURCE-LIB library-name Der Name der Natural-Library, die die Ressource enthält, die Sie löschen möchten.

    Standardwert: Der Name der aktuellen Library

Beispiel für DELETE

FUNCTION=DELETE         /* Delete a Profiler resource file
  RESOURCE-NAME='Test'  /* Resource name
  RESOURCE-TYPE=NPRF    /* Resource type
  RESOURCE-LIB=PRFDATA  /* Resource library

Profiler-Eingaben aus Natural-Textobjekten einfügen

Der Profiler kann Eingabedaten von einem Natural-Textobjekt lesen. Die Syntax der Daten im Natural-Textobjekt ist die gleiche wie für den primären Kommandoeingabedatensatz CMSYNIN (siehe Syntax und Schlüsselwörter).

Beginn der AnweisungslisteUm Profiler-Eingabedaten aus einem Natural-Textobjekt zu inkludieren:

Die Daten im Natural-Textobjekt werden den Profiler-Eingabedaten in der Zeile nach dem INCLUDE-Schlüsselwort hinzugefügt. Die Profiler-Eingabedaten können mehrere INCLUDE-Schlüsselwörter enthalten, und die zugehörigen Natural-Textobjekte können auch INCLUDE-Schlüsselwörter enthalten. Wenn ein Natural-Textobjekt ein END-PROFILER-Schlüsselwort enthält, wird die Profiler Utility beendet und alle verbleibenden Daten in dem (den) Natural-Textobjekt(en) werden ignoriert.

In der Natural-System-Library SYSPRFLR werden Textobjekte ausgeliefert, deren Namen mit X beginnen, und die als Profiler-Eingabe verwendet werden können. Die einzelnen Profiler-Funktionen, die sie ausführen, werden in den Quellcodes dieser Objekte beschrieben.

Wir empfehlen, keine Objekte in der System-Library SYSPRFLR zu ändern, da sie überschrieben oder entfernt werden können, wenn eine neue Natural-Version installiert wird. Kopieren Sie die erforderlichen Objekte in eine User Library, bevor Sie sie bearbeiten.

Beispiele für INCLUDE

Das folgende Beispiel fügt den Inhalt des Natural-Textobjekts MYPROF aus der Library MYLIB zu den Profiler-Eingabedaten hinzu:

INCLUDE-LIB=MYLIB
INCLUDE=MYPROF

Im folgenden Beispiel wird der Inhalt des Natural-Textobjekts XINIT aus der Library SYSPRFLR zu den Profiler-Eingabedaten hinzugefügt. Das Objekt initialisiert und startet die Profil-Erstellung ohne Konsolidierung und ohne Statement-Ereignissammlung. Darüber hinaus wird die Profiler Utility beendet, so dass nach dem INCLUDE-Schlüsselwort keine weitere Profiler-Eingabe erwartet wird.

INCLUDE=XINIT

Ereignisverfolgung (Event-Trace)

Der Natural Profiler sammelt detaillierte Informationen über jedes Natural-Ereignis, das auftritt, während eine Natural-Anwendung ausgeführt wird. Diese Daten können in der Ereignisverfolgung (Event-Trace) eingesehen werden.

Die für die Natural-Code-Abdeckung geschriebenen Traces werden im Abschnitt Ablaufverfolgung (Tracing) beim Messen der Natural-Codeabdeckung beschrieben.

Die Profiler Utility bietet die folgenden Optionen zum Schreiben einer Profiler-Ereignisverfolgung:

  • Schreiben des Trace in die Standardausgabe der Profiler-Monitor-Session (MONPRINT-Dataset), während die Anwendung profiliert wird.

  • Schreiben des Trace in die Standardausgabe, während die NPRF-Daten konsolidiert werden. In diesem Fall zeigt die Ereignisverfolgung die Delta-Werte der verstrichenen (elapsed) Zeit und der CPU-Zeit anstelle von ereignisspezifischen Daten.

  • Schreiben des Trace beim Lesen einer Profiler NPRF-Ressourcendatei mit der Profiler Utility-Funktion READ.

Anmerkung:
Die Ereignisverfolgung (Event-Trace) kann auch in NaturalONE aufgelistet werden.

Beginn der AnweisungslisteUm die die Ereignisverfolgung zu aktivieren:

  • Geben Sie das folgende untergeordnete Schlüsselwort der INIT-Funktion der Profiler Utility ein:

    TRACE-EVENT=ON

    Geben Sie das folgende untergeordnete Schlüsselwort der CONSOLIDATE-Funktion der Profiler Utility ein:

    TRACE-EVENT=ON

    Geben Sie das folgende untergeordnete Schlüsselwort der READ-Funktion der Profiler Utility ein:

    EVENT=ON

Die Profiler-Ereignisverfolgung enthält die folgenden Spalten:

Spalte Beschreibung
Count Ereigniszähler.
Time Zeitpunkt des Ereignisses.

Einheit: Stunde:Minute:Sekunde.Mikrosekunden

CPU-Time Session-CPU-Zeit.

Einheit: Mikrosekunden

Ev Ereignistyp.

Siehe Gesammelte Ereignisse und Daten.

Lev Programmebene.
Library Programm-Library.
Program Programmname (Natural-Objekt) .
Line Zeilennummer des ausgeführten Programm-Statement.
CC-Lib Copycode-Library (wenn Copycode aktiv ist).
CC-Name Copycode-Name (wenn Copycode aktiv ist).
Statement Natural-Statement, das zurzeit ausgeführt wird.

Aus technischen Gründen gibt es keine Eins-zu-Eins-Beziehung zwischen einem Natural-Quellcode-Statement und dem entsprechenden Objektcode im katalogisierten Objekt. Daher können sich die in der Profiler-Ereignisverfolgung aufgeführten Anweisungen von den Anweisungen im Quellcode unterscheiden.

Local-Data Ereignisspezifische Daten wie die Adabas-Datenbankkennung (DBID) und die Dateinummer (FNR).

Diese Daten werden nur für die Funktionen INIT und READ der Profiler Utility angezeigt.

Elapsed (ms) Verstrichene Zeit für die Verarbeitung des Ereignisses.

Einheit: Millisekunden

Diese Daten werden nur für die CONSOLIDATE-Funktion der Profiler Utility angezeigt.
CPU-Delta CPU-Zeit, die für die Verarbeitung des Ereignisses aufgewendet wurde.

Einheit: Millisekunden

Beispiel für eine Ereignisverfolgung (Event Trace)

Im folgenden Beispiel druckt die Funktion READ der Profiler Utility das Event Trace aus:

FUNCTION=READ               /* Read event data
  EVENT=ON                  /* Write event trace

Das Event Trace wird in die Standardausgabe geschrieben:

Count Time              CPU-Time (ms) Ev Lev Library  Program  Line CC-Lib   CC-Name  Statement  Local-Data
    0 17:38:17.200951          42.324 MP 003 SYSPRFLR PRBINIT  8370                   Call       Monitor pause requested
    0 17:38:17.204508          43.471 MP 003 SYSPRFLR PRBSTART 1760                   Call       Start of block filter
   11 17:38:17.218379          48.874 DB 000                   0000                              00010/00032 S1
   12 17:38:17.218941          48.897 DA 000                   0000                              00010/00032 S1   Rsp: 0
   13 17:38:17.218944          48.910 PL 000                   0000                              Execute PRFDEMO/XPROF
   14 17:38:17.218945          48.916 PS 001 PRFDEMO  XPROF    0000                   PgmStart   00010/00032 Type: P
   15 17:38:17.218956          48.979 IB 001 PRFDEMO  XPROF    0300                   Input      Out: 133 In: 0
   16 17:38:17.219235          49.046 IA 001 PRFDEMO  XPROF    0300                   Input      Out: 133 In: 80
   17 17:38:17.219258          49.182 DB 001 PRFDEMO  XPROF    0370                   Callnat    00010/00032 S1
   18 17:38:17.220426          49.211 DA 001 PRFDEMO  XPROF    0370                   Callnat    00010/00032 S1   Rsp: 0
   19 17:38:17.220427          49.216 DB 001 PRFDEMO  XPROF    0370                   Callnat    00010/00032 S1
   ...

Ablaufverfolgung (Tracing) beim Messen der Natural-Codeabdeckung

Beim Messen der Natural-Codeabdeckung (Code Coverage) stehen zwei Trace-Optionen zur Verfügung:

  • Die Ereignisverfolgung (Event Trace) listet alle überwachten Ereignisse auf. Dies sind standardmäßig die Ereignisse Program Start (PS) und Natural Statement (NS). Wenn der Profiler das GP liest, schreibt er außerdem einen Ereignisverfolgungseintrag für jedes im GP gefundene Statement. Diese Einträge werden durch den Pseudo-Ereignistyp GP angezeigt.

  • Die Codeabdeckungsverfolgung (Coverage Trace) listet alle Datensätze auf, die in die Natural-Abdeckungsressourcendatei (Natural Coverage Resource File) geschrieben werden.

Wenn die Abdeckungsressource mit der Profiler Utility-Funktion READ gelesen wird, ist die folgende Trace-Option verfügbar:

  • Die interne Datenverfolgung listet alle Datensätze auf, die aus der Natural-Abdeckungsressourcendatei gelesen werden.

Beginn der AnweisungslisteUm die Ablaufverfolgung für die Codeabdeckung zu aktivieren:

  1. Aktivieren Sie die Ereignisverfolgung, indem Sie das folgende untergeordnete Schlüsselwort der COVERAGE-Funktion der Profiler Utility angeben:

    TRACE-EVENT=ON
  2. Aktivieren Sie die Ablaufverfolgung für die Codeabdeckung, indem Sie das folgende untergeordnete Schlüsselwort der READ-Funktion der Profiler Utility angeben:

    TRACE-COVERAGE=ON
  3. Aktivieren Sie die interne Ablaufverfolgung, indem Sie das folgende untergeordnete Schlüsselwort der READ-Funktion der Profiler Utility angeben:

    TRACE=9

Die folgende Tabelle beschreibt die in den Ablaufverfolgungen (Traces) aufgeführten Eigenschaften und gibt mit (X) an, für welchen Trace-Typ die Daten bereitgestellt werden.

Event Trace = Ereignisverfolgung, Coverage Trace = Codeablaufverfolgung, Internal Trace = Interne Ablaufverfolgung:

Eigenschaft Event Trace Coverage Trace Internal Trace Beschreibung
Count X X X Der Ereigniszähler.
Ev X X X Der Ereignistyp.

Siehe Gesammelte Ereignisse und Daten.

Der Pseudo-Ereignistyp GP zeigt ein im GP gelesenes Statement an.

Library X X X Der Name der Natural-Library, die das Programm/Objekt enthält.
Program/Object X X X Der Name des Natural-Programms/Objekts.
Ty - X X Der Objekttyp, z.B. P, für Programm.
CC-Lib X X X Der Name der Natural-Library, die den Copycode enthält (wenn Copycode aktiv ist).
CC-Name X X X Der Name des Copycodes.
Line X X X Die Nummer der Quellcodezeile.
Statement X X - Das ausgeführte Natural-Statement.

Aus technischen Gründen gibt es keine Eins-zu-Eins-Beziehung zwischen einem Natural-Quellcode-Statement und dem entsprechenden Objektcode im katalogisierten Objekt. Daher können sich die in der Profiler-Ereignisverfolgung aufgeführten Statements von den Statements in der Quelle unterscheiden.

Für die Codeabdeckung wird der Statement-Objektcode nicht in der Ressourcendatei gespeichert. Daher kann er nur während der Datensammlung aufgelistet werden.

GP-Offset X - - Der Offset im GP.

Er identifiziert eindeutig das Statement-Element zum Zeitpunkt der Ausführung.

Size X - - Die Größe des Statement im GP.
CC-ID - X X Die Copycode-ID.

Sie identifiziert die Copycode-Instanz im GP eindeutig. Das Programm erhält die Copycode-ID 0.

Par-CC - X X Nur für Copycode.

Die übergeordnete Copycode-ID, die die Copycode-ID des Objekts/Copycodes ist, das/der den aktuellen Copycode enthält.

INCL - X - Nur für Copycode.

Die Zeilennummer des INCLUDE-Statement, das den Copycode enthält.

FirstS - X X Die Kennung (ID) des ersten Statement des Objekts oder Copycodes.
Stmts - X X Die Gesamtzahl der ausführbaren Statements im Objekt, wobei alle INCLUDE-Statements aufgelöst werden.
Item X X X Die Elementkennung (Item ID) des Statement.

Sie identifiziert eindeutig das Statement in der Ressourcendatei.

Cover X X X Das Abdeckungskennzeichen (Flag) des Statement: (0 oder 1).

Wenn das GP gelesen wird, werden alle Flags mit 0 initialisiert. Immer wenn ein Statement ausgeführt wird, wird das Flag auf 1 gesetzt.

Same X - - Wenn das GP gelesen wird, zeigt es an, wie viele nachfolgende Statements den gleichen Objektcode und die gleiche Zeilennummer haben. Diese Statements werden verworfen.

Immer wenn ein verworfenes Statement überwacht wird, wird das Statement, das sich vor dem verworfenen Statement befindet, als abgedeckt markiert. Die Spalte zeigt den GP-Offset des markierten Statement.

Beispiel für einen Coverage Trace

Im folgenden Beispiel schreibt die Funktion COVERAGE der Profiler Utility die Abdeckungsverfolgung:

FUNCTION=COVERAGE           /* Initialize code coverage
  TRACE-COVERAGE=ON         /* Write coverage trace

Das Coverage Trace wird in die Standardausgabe der Profiler-Monitor-Session (MONPRINT-Dataset) geschrieben:

                        Natural Coverage Trace                                                                
                        ----------------------                                                                
Count Ev Library  Program  Ty CC-Lib   CC-Name  Line Statement  CC-ID Par-CC INCL  FirstS  Stmts    Item Cover
    1 PI COVDEMO  TESTCOVN N                                        0      0 0000       1     44         1    
    2 NS COVDEMO  TESTCOVN                      0130 Compute        0                                  4 0    
    3 NS COVDEMO  TESTCOVN                      0140 Print          0                                  5 0    
    4 NS COVDEMO  TESTCOVN                      0150 Goto           0                                  6 0    
    5 NS COVDEMO  TESTCOVN                      0310 If             0                                 39 0    
    6 NS COVDEMO  TESTCOVN                      0310 Compute        0                                 40 0    
    7 NS COVDEMO  TESTCOVN                      0320 Print          0                                 41 0    
    8 NS COVDEMO  TESTCOVN                      0340 Compute        0                                 43 0    
    9 NS COVDEMO  TESTCOVN                      0100 Reset          0                                  1 1    
   10 NS COVDEMO  TESTCOVN                      0120 Reset          0                                  2 1    
   11 NS COVDEMO  TESTCOVN                      0130 If             0                                  3 1    
   12 NS COVDEMO  TESTCOVN                      0150 If             0                                  7 1    
...

Interner Trace

Das Profiler-interne Trace schreibt Profiler-Meldungen wie z.B. Fehler oder Warnungen.

Das interner Trace kann für Folgendes aktiviert werden:

  • Die Profiler-Monitor-Sessions (Datensammlung/Data Collection). Die Daten werden in die Standardausgabe der Monitor-Session geschrieben.

  • Die Profiler-Datenverarbeitungsfunktionen. Die Daten werden in die Standardausgabe geschrieben.

  • Die Profiler Rich GUI-Schnittstelle bietet ein aufklappbares Feld für die interne Trace-Aktivierung. Die Daten werden in die Standardausgabe geschrieben.

Beginn der AnweisungslisteUm die interne Ablaufverfolgung für die Profiler-Trace-Session oder die Datenverarbeitungsfunktionen zu aktivieren:

  • Geben Sie das folgende Profiler-Schlüsselwort ein:

    TRACE=n

    Dabei ist n die Trace-Ebene (siehe Trace-Ebenen).

    Anmerkungen:

    1. Standardmäßig (wenn TRACE nicht angegeben ist) wird Trace-Ebene 2 (Warnungen) verwendet.
    2. Die Ablaufverfolgung wird aktiviert, sobald das Schlüsselwort TRACE angegeben ist. Es wird daher empfohlen, das TRACE-Schlüsselwort möglichst bald anzugeben.
    3. Wenn Sie die Profiler Utility mehrmals in dem Job ausführen, müssen Sie bei jeder Ausführung das Schlüsselwort TRACE angeben.

Beginn der AnweisungslisteUm die interne Ablaufverfolgung für die Profiler-Monitor-Session zu aktivieren:

  • Geben Sie das folgende untergeordnete Schlüsselwort der INIT- oder der COVERAGE-Funktion der Profiler Utility ein:

    TRACE-MONITOR=n

    Dabei ist n die Trace-Ebene (siehe Trace-Ebenen).

    Anmerkung:
    Standardmäßig (wenn TRACE-MONITOR nicht angegeben ist) wird Trace-Ebene 3 (Statistik) verwendet.

Trace-Ebenen

Die Trace-Ebene, die von den Profiler Trace- und Monitor-Sessions und von den Profiler-Datenverarbeitungsfunktionen verwendet werden, sind in der folgenden Tabelle aufgeführt. Im Allgemeinen enthält eine höhere Trace-Ebene auch die Informationen der unteren Trace-Ebenen. Wenn Sie beispielsweise Trace-Ebene 3 (Statistik) auswählen, werden auch Fehlermeldungen und Warnungen protokolliert.

Wir empfehlen, mindestens Trace-Ebene 2 (Warnungen) zu verwenden, damit Fehlermeldungen und Warnungen protokolliert werden. Für die Profiler-Monitor-Session ist Trace-Ebene 3 (Statistik) eine gute Wahl. Dann werden die Statistiken des Profiler-Laufs gedruckt (siehe Profiler-Statistiken). Höhere Trace-Ebenen für die Monitor-Session können extrem ausführlich sein und die Ausgabe kann mit dem Ereignis-Trace (falls aktiviert) vermischt werden.

Trace-Ebene Name Beschreibung
0 No trace Die interne Ablaufverfolgung des Profilers ist deaktiviert.
1 Error Fehlermeldungen werden protokolliert.
2 Warning Warnungen werden protokolliert.
3 Statistics Trace-Session: Die Werte, die für die Profiler Utility -Funktion INIT oder COVERAGE verwendet werden, werden gedruckt.

Monitor-Session: Die Profiler-Statistikdaten werden gedruckt.

Datenkonsolidierung: Die Profiler-Statistikdaten werden einschließlich der Konsolidierungsstatistiken gedruckt.

4 Function Nachrichten für verwendete Profiler Utility-Schlüsselwörter (FUNKTION, FILTER usw.) werden protokolliert.
5 Block Die Statistiken für jeden Datenblock, der in die Profiler-Ressourcendatei geschrieben wurde, werden gedruckt.
6 Details Detaillierte Informationen werden protokolliert.
7   Nicht benutzt.
8   Nicht benutzt.
9 Data Abdeckungsressourcendaten beim Lesen einer NCVF-Abdeckungsressourcendatei verfolgen.
10 Internal Interne Verwendung.

Beispiel

Im folgenden Beispiel wird das interne Trace des Profilers für die Trace-Session auf Ebene 4 (Funktion) gesetzt:

* Set Profiler internal trace
TRACE=4                     /* Trace level

Ausgabe der Profiler-Trace-Session für Trace-Ebene 4:

PRBMAIN : Profiler trace level: 4
PRBMAIN : Profiler On-Error: Terminate
***************************************************************************
* 15:45:14          ***** NATURAL PROFILER UTILITY *****         2014-12-17
* User SAGPRFD1               - Function INIT -                     PRBINIT
*
* Keyword              Wert
* -------------------- ----------------------------------------------------
* Resource             ON
* Resource-Lib         SAGPROF
* Resource-Name        Test01.nprf
* Replace              Y
* Wait-Full            60
* Wait-Empty           60
* Sampling             OFF
* Consolidate          OFF
* Trace-Monitor        5
* Trace-Event          OFF
* Trace-Consolidate    OFF
* -------------------- ----------------------------------------------------
***************************************************************************
PRBINIT : Profiler INIT function - Start monitor session.
PRBINIT : Profiler INIT function - Monitor session started. Time: 1.0 sec.
PRBINIT : Set trace session Id ...: 0000000000000001
PRBINIT : Set monitor session Id .: 0000000100000000
PRBINIT : Trace session successfully initialized.
PRBFEVEN: Event filter: SI ST DB DA PL PS PT PR IB IA E CB CA U RS RI RO NS
PRBSTART: Profiling started.
PRBMAIN : Profiler - End of input.
***************************************************************************
...
Output of the application
...

Profiler-Statistikdaten

Zusätzlich zu den Ereignisdaten sammelt der Profiler statistische Daten, die in die Profiler-Ressourcendatei geschrieben werden.

Die Profiler Utility bietet die folgenden Optionen zum Schreiben und Anzeigen von Profiler-Statistikdaten:

  • Statistikdaten in die Standardausgabe der Profiler-Monitor-Session (MONPRINT-Dataset) schreiben, während die Anwendung profiliert wird oder die Messung der Codeabdeckung durchgeführt wird.

  • Statistikdaten in die Standardausgabe schreiben, während die Daten konsolidiert werden.

  • Statistikdaten schreiben, während eine Profiler-Ressourcendatei mit der Profiler Utility-READ-Funktion gelesen wird.

  • Eine Ressource über die Natural Profiler Rich GUI-Schnittstelle auswählen, um die entsprechenden Eigenschaften und Statistiken anzuzeigen.

Um Profiler-Statistikdaten zu schreiben, führen Sie einen der folgenden Schritte aus:

  • Geben Sie das folgende untergeordnete Schlüsselwort der INIT- oder der COVERAGE-Funktion der Profiler Utility ein:

    TRACE-MONITOR=3

    oder eine höhere Trace-Ebene (siehe Trace-Ebenen). Trace-Ebene 3 ist auch die Standardebene für die Profiler-Monitor-Session.

  • Geben Sie das folgende Schlüsselwort ein, bevor Sie die CONSOLIDATE-Funktion der Profiler Utility starten:

    TRACE=3

    oder eine höhere Trace-Ebene (siehe Trace-Ebenen).

  • Geben Sie das folgende untergeordnete Schlüsselwort der READ-Funktion der Profiler Utility ein:

    STATISTICS=ON

Die Profiler-Statistikdaten werden in Kategorien angezeigt, wobei die Eigenschaften eines ähnlichen Typs zusammengefasst werden. Folgende Kategorien stehen zur Verfügung:

Anmerkung:
Die im folgenden Abschnitt aufgeführten Eigenschaften sind die Eigenschaften, die der Profiler in allen Umgebungen bereithält. Die Profiler-Statistiken enthalten nur die Eigenschaften, die für den aktuellen Lauf relevant sind. Daher werden nicht alle im Abschnitt aufgeführten Eigenschaften in jedem Fall angezeigt.

Allgemeine Informationen

Informationen zur Umgebung und Natural Profiler anzeigen.

Eigenschaft Beschreibung
Machine class Der Name der Maschinenklasse, auf der die Natural-Anwendung läuft.
Environment Die Umgebung, in der die Natural-Anwendung läuft, z.B. NaturalONE, Batch oder RPC.
Codepage Die Codepage, die während der Überwachung der Natural-Anwendung verwendet wurde.
User Die Kennung (ID) des Benutzers, der die Anwendung ausführt (Wert der Systemvariablen *USER). Bei einem Batch-Job kann es der Name des Jobs sein.
Profiler version Die interne Version des Profilers.

NaturalONE-Umgebung: Die Version des Profilers auf dem Server.

Profiler revision Die interne Revision des Profilers.
Profiler revision date Datum und Uhrzeit der Erstellung der Profiler-Revision.
Profiler client version NaturalONE-Umgebung: Die Version des Profiler-Clients.
Profiler trace library NaturalONE-Umgebung: Der Name der Natural-Library, die das interne Profiler-Trace und das Profiler-Ereignis-Trace enthält.
Profiler trace level Die Ebene des internen Trace des Profilers.
Profiler trace member NaturalONE-Umgebung: Der Name des Natural-Textobjekts, das das interne Profiler-Trace enthält.
Profiler event trace Zeigt an, ob die Profiler-Ereignisverfolgung aktiviert wurde (ON/OFF).
Profiler event trace member NaturalONE-Umgebung: Der Name des Natural-Textobjekts, das die Profiler-Ereignisverfolgung enthält.
Utility trace level NaturalONE-Umgebung: Die Ebene des Natural Utility Trace.

Profiler-Ressourcendatei

Informationen zu Profiler-Ressourcendateien anzeigen.

Eigenschaft Einheit Beschreibung
Resource name   Der Name der Natural Profiler-Ressourcendatei.
Resource type   Der Typ der Natural Profiler-Ressourcendatei: Natural Profiler Resource File (NPRF), Natural Profiler Resource Consolidated (NPRC) oder Natural Code Coverage File (NCVF).
Resource short name   Großrechner: Der Kurzname der Natural Profiler-Ressourcendatei.
Resource library   Der Name der Natural-Library, die die Natural Profiler-Ressourcendatei enthält.
Resource DBID   Die Datenbankkennung (DBID) der Natural-Library, die die Natural Profiler-Ressourcendatei enthält.
Resource FNR   Die Dateinummer (FNR) der Natural-Library, die die Natural Profiler-Ressourcendatei enthält.
Resource allocation date yyyy-mm-dd hh:ii:ss.t Datum und Uhrzeit, wann die Natural Profiler-Ressourcendatei angelegt wurde.
Resource size Bytes Die Größe der Natural Profiler-Ressourcendatei. Umfasst die Ressourcen-Headers, die Ereignisdaten und die Statistikdaten. Die Ressourcengröße wird unabhängig davon berechnet, ob die Ressource angelegt wird oder nicht.
Resource block size Bytes Die maximale Größe eines Ressourcenblocks. Ein Ressourcenblock besteht aus einem Ressourcenblock-Header und einem Datenblock.
Resource version   Die Version des Natural Profiler-Ressourcen-Layouts.

Monitor-Session

Statistiken der Profiler-Monitor-Session anzeigen.

Eigenschaft Einheit Beschreibung
Monitor start time yyyy-mm-dd hh:ii:ss.t Datum und Uhrzeit des Starts der Monitor-Session.
Monitor end time yyyy-mm-dd hh:ii:ss.t Datum und Uhrzeit des Endes der Monitor-Session.
Monitor elapsed time sec Die gesamte verstrichene Zeit, die von der Monitor-Session verbraucht wurde.

Trace-Session

Statistikdaten der Profiler-Trace-Session anzeigen. Die Profiler-Trace-Session beinhaltet auch die Anwendungsausführung.

Eigenschaft Einheit Beschreibung
First library   Die erste Library, die überwacht wurde. Die Libraries SYSTEM, SYSLIB* und SYSPRF* werden ignoriert.
First program   Das erste Programm, das überwacht wurde.
Highest level   Höchste Ebene der überwachten Natural-Objekte.
Trace start time hh:ii:ss.microsec Die Startzeit der Ablaufverfolgung. Bei NaturalONE ist dies die Zeit des SI-Ereignisses (Session Initialization). Im Batch-Modus ist die Sitzung bereits initialisiert, wenn die Überwachung gestartet wird. Daher ist die Startzeit die Zeit des ersten Ereignisses (normalerweise ein Monitor-Pause-Ereignis).
Trace end time hh:ii:ss.microsec Die Endezeit der Ablaufverfolgung. Dies ist im Allgemeinen die Zeit des ST-Ereignisses (Session Termination).
Trace elapsed time sec Die verstrichene Zeit, die von der Trace-Session von der Startzeit bis zur Endezeit verbraucht wird.
Application CPU time ms Die gesamte CPU-Zeit, die von der Anwendung verbraucht wird.
Monitor CPU time ms Die gesamte CPU-Zeit, die der Natural Data Collector verbraucht. Diese Zeit wird bei einem Natural-UNIX- oder Windows-Server nicht erfasst.
Total CPU time ms Die gesamte CPU-Zeit, die von der Trace-Session verbraucht wird. Es ist die Summe der CPU-Zeit der Anwendung und der CPU-Zeit des Monitors.
Sampling interval microsec Die Stichprobenintervallzeit (CPU-Zeit in Mikrosekunden). Der Wert Null (0) bedeutet, dass keine Stichprobennahme aktiv war.
Data pool empty   Die Anzahl der Profiler-Leseanforderungen, die den Profiler-Daten-Pool leer (und eine Session aktiv) vorfanden.
Data pool empty after full   Die Anzahl der Profiler-Leseanforderungen, die den Profiler-Daten-Pool leer vorfanden, obwohl er zuvor voll war. Wenn dieser Zähler größer als 0 ist, ist der Profiler-Daten-Pool zu klein, was zu einer schlechten Performance führt.
Data pool overflow   Die Anzahl der Profiler-Daten-Pool-Überläufe (mit verlorenen Daten). Daten-Pool-Überläufe sollten nicht mehr auftreten. Diesen Wert gibt es nur noch aus Gründen der Abwärtskompatibilität mit früheren Versionen von Natural.
No session active   Die Anzahl der Leseanforderungen, bei denen der Profiler-Daten-Pool leer und keine Trace-Session aktiv war. Dies kann nur bei Profiler-Leseanforderungen geschehen, die vor der Session-Initialisierung oder nach Beendigung der Session eingereicht wurden.

Datenverarbeitung

Statistiken über die Datenverarbeitung, Komprimierung und Übertragung anzeigen.

Eigenschaft Einheit Beschreibung
Number of events   Die Gesamtzahl der Ereignisse.
Highest event number   Die höchste Ereigniszahl, wie sie vom Natural Data Collector angegeben wurde. Beachten Sie, dass der Natural Data Collector nur Nicht-Statement-Ereignisse zählt, wenn er von NaturalONE aufgerufen wird. Im Batch-Modus hängt es vom Statement-Filter ab, ob Statement-Ereignisse gezählt werden oder nicht.
Number of data blocks   Die Anzahl der Ereignisdatenblöcke, die an NaturalONE gesendet oder in die Ressource geschrieben werden.
Utility buffer size Bytes Die Größe des Utility-Puffers, der für die Datenübertragung vom Server zu NaturalONE verwendet wird. Im Allgemeinen enthält der Puffer die Header-Informationen und funktionsspezifischen Daten.
Data block size Bytes Die maximale Menge an Ereignisdaten, die in einem Aufruf vom Server zu NaturalONE übertragen werden kann. Die gleiche Datenblockgröße wird zum Speichern der Ereignisdaten in der Ressourcendatei verwendet.
RDC data length Bytes Die Gesamtgröße der vom Natural Data Collector erhaltenen Daten.
Uncompressed data length Bytes Die Gesamtgröße der Profiler-Daten im unkomprimierten Format.
Compressed data length Bytes Die Gesamtgröße der komprimierten Daten, die an NaturalONE gesendet oder in die Profiler-Ressourcendatei geschrieben werden.
Identical bytes trimmed left   Die Anzahl der identischen Bytes, die bei der Vorwärtsdatenkomprimierung links abgeschnitten wurden.
Blanks trimmed right   Die Anzahl der Leerzeichen, die bei der rückwärts gerichteten Datenkomprimierung rechts abgeschnitten wurden.
Compression header length Bytes Die Gesamtgröße der Komprimierungs-Header, die mit jedem komprimierten Ereignisdatensatz gespeichert werden.
Compression rate Prozent Der Prozentsatz der Datenreduktion durch die Komprimierung. Je höher die Komprimierungsrate, desto weniger Daten müssen übertragen oder gespeichert werden. Die Formel der Komprimierungsrate wird unten beschrieben.
Events/block   Die durchschnittliche Anzahl der Ereignisse, die in einem Ereignisdatenblock enthalten sind.
Bytes/event   Die durchschnittliche Länge eines komprimierten Ereignisdatensatzes in Bytes. Diese Eigenschaft ist nicht für konsolidierte oder Abdeckungsdaten verfügbar.

Die Komprimierungsrate wird mittels folgender Formel berechnet:

CompressionRate := 100 ×

BytesTrimmedLeft + BytesTrimmedRight - CompressionHeaderLength
UncompressedDataLength

Ereignistyp-Statistiken

Statistiken der Ereignistypen anzeigen.

Eigenschaft Beschreibung
Unknown event Die Anzahl der unbekannten Ereignisse.
Session initialization Die Anzahl der Session-Initialisierungsereignisse.
Session termination Die Anzahl der Session-Beendigungsereignisse.
Program load Die Anzahl der Programmlade-Ereignisse.
Program start Die Anzahl der Programmstart-Ereignisse.
Program termination Die Anzahl der Programmbeendigungsereignisse.
Program resume Die Anzahl der Programmwiederaufnahme-Ereignisse.
Program information Die Anzahl der Programm-Informationsereignisse.
Before database call Die Anzahl der Vor-Datenbankaufruf-Ereignisse.
After database call Die Anzahl der Nach-Datenbankaufruf-Ereignisse.
Before terminal I/O Die Anzahl der Vor-Terminal-E/A-Ereignisse.
After terminal I/O Die Anzahl der Nach-Terminal-E/A-Ereignisse.
Before external program call Die Anzahl der Vor-Externem-Programmaufruf-Ereignisse.
After external program call Die Anzahl der Nach-Externem-Programmaufruf-Ereignisse.
Runtime error Die Anzahl der Laufzeitfehler-Ereignisse.
Natural statement Die Anzahl der Natural Statement-Ereignisse. Aus technischen Gründen können mehrere Natural-Statements zu einem Statement-Ereignis zusammengeführt werden, und umgekehrt kann ein Natural-Statement mehrere Statement-Ereignisse abdecken.
Outbound RPC message Die Anzahl der ausgehenden RPC-Nachrichtenereignisse.
Inbound RPC message Die Anzahl der eingehenden RPC-Nachrichtenereignisse.
Start RPC request execution Die Anzahl der RPC-Ausführungsanforderungsstart-Ereignisse.
RPC Wait for Client Die Anzahl der RPC-Wartet-auf-Client-Ereignisse.
User trace call Die Anzahl der benutzerdefinierten Ereignisse.
Monitor pause Die Anzahl der Monitor-Pause-Ereignisse.
Monitor filter Die Anzahl der Monitor-Filter-Ereignisse. Filter-Ereignisse werden nicht aufgezeichnet.

Monitor-Pause-Statistiken

Statistiken der Monitor-Pausentypen-Ereignissen anzeigen.

Eigenschaft Beschreibung
Pause - unknown type Die Anzahl der Monitor-Pause-Ereignisse mit unbekanntem Pausentyp.
Pause - requested Die Anzahl der angeforderten Monitor-Pause-Ereignisse.
Pause - start of block filter Die Anzahl der Monitor-Pause-Ereignisse, die durch den Start eines Blockfilters verursacht werden (Library-, Programm-, Zeilen-, FNAT-, Ereignisanzahl- oder Zeit-Filter).
Pause - data pool full Die Anzahl der Monitor-Pause-Ereignisse, die durch einen vollen Daten-Pool verursacht werden.
Pause - data pool overflow Die Anzahl der Monitor-Pause-Ereignisse, die durch einen Daten-Pool-Überlauf verursacht werden.

Datenkonsolidierung

Statistiken der Datenkonsolidierung anzeigen.

Eigenschaft Einheit Beschreibung
Consolidation  

Gibt an, ob die Profiler-Daten konsolidiert sind (ON/OFF). Bei der Konsolidierung werden ähnliche Ereignisse in einem Konsolidierungsdatensatz zusammengefasst.

Consolidation records   Die Gesamtzahl der Konsolidierungsdatensätze. Im Allgemeinen umfasst ein Konsolidierungsdatensatz mehrere Ereignisse.
Consolidation elapsed time Sekunden Die verstrichene Zeit in Sekunden, die für die Datenkonsolidierung mit der Profiler Utility-Funktion CONSOLIDATE erforderlich ist.

Dieser Wert wird nicht angegeben, wenn die Konsolidierung während der Datensammlung durchgeführt wird (Profiler Utility-Funktion INIT). In diesem Fall ist die für die Konsolidierung erforderliche Zeit in der Monitor elapsed time enthalten.

Consolidation factor   Die durchschnittliche Anzahl der Ereignisse, die zu einem Konsolidierungsdatensatz zusammengefasst sind. Je höher der Konsolidierungsfaktor, desto besser die Konsolidierung.
ConsolidationFactor := NumberOfEvents / ConsolidationRecords
Consolidation records/block   Die durchschnittliche Anzahl der Konsolidierungsdatensätze, die in einem Datenblock enthalten sind.
Bytes/consolidation record   Die durchschnittliche Länge in Bytes eines komprimierten Konsolidierungsdatensatzes.
Consolidate I/O time   Gibt an, ob die E/A- und Natural RPC-Client-Zeit in den konsolidierten Daten enthalten sind.

Abdeckung (Coverage)

Statistiken zur Natural-Codeabdeckung anzeigen.

Anmerkung:
Statistikdaten zur Natural-Codeabdeckung werden nur auf dem Großrechner gesammelt.

Eigenschaft Beschreibung
Coverage Zeigt an, ob die Natural-Codeabdeckung durchgeführt wird(ON/OFF).
Missed statements recorded Zeigt an, ob nicht abgedeckte ("missed") Statements aufgezeichnet werden (ON/OFF).
Coverage records Die Gesamtzahl der Abdeckungsdatensätze. Dies sind Programminformationen und Natural-Statement-Aufzeichnungen.
Program information records Die Anzahl der in die Ressourcendatei geschriebenen Programminformationsdatensätze. Jeder Programminformationsdatensatz enthält programm- und copycode-bezogene Informationen.
Coverage records/block Die durchschnittliche Anzahl der Abdeckungsdatensätze, die in einem Datenblock enthalten sind.
Bytes/coverage record Die durchschnittliche Länge in Bytes eines komprimierten Abdeckungsdatensatzes.
Programs covered Die Anzahl der abgedeckten Programme.
Programs NOC-ed Die Anzahl der abgedeckten Programme, die mit dem Natural Optimizer Compiler kompiliert wurden.
Statement coverage Der Prozentsatz der Statements aller aufgerufenen Programme, die von der Anwendung abgedeckt wurden.
Statements covered Die Anzahl der abgedeckten (ausgeführten) Statements.
Statements total Die Gesamtzahl der ausführbaren Statements aller Programme, auf die zugegriffen wird.

Transaktionen

Statistikdaten der ausgeführten Transaktionen anzeigen.

Anmerkung:
Transaktionsstatistikdaten sind nur verfügbar, wenn Profiler-Daten mit der auf TRANSACTION=ON gesetzten CONSOLIDATE-Funktion konsolidiert wurden.

Eigenschaft Einheit Beschreibung
Transaction   Gibt an, ob Transaktionsidentifikatoren zu den konsolidierten Datensätzen hinzugefügt werden (ON/OFF).

Transaktionsidentifikatoren sind erforderlich, um die Antwortzeit für Transaktionen auszuwerten.

Number of transactions   Die Gesamtzahl der verarbeiteten Transaktionen.

Eine Transaktion ist der Code, der zwischen zwei aufeinanderfolgenden Terminal-E/A-Vorgängen ausgeführt wird.

Total response time Sekunden Die gesamte verstrichene (elapsed) Zeit, die für die Verarbeitung aller Transaktionen aufgewendet wurde.
Average response time Sekunden Die durchschnittlich aufgewendete verstrichene (elapsed) Zeit pro Transaktion.
Max response time Sekunden Die maximale (höchste) verstrichene (elapsed) Zeit, die für die Verarbeitung von Transaktionen aufgewendet wird.
ID max response time   Der Transaktionsidentifikator der Transaktion mit der höchsten verstrichenen (elapsed) Zeit.

Zusätzlich zum Transaktionsidentifikator gibt die Statistik den Programmnamen, den Copycode-Namen (falls vorhanden) und die Programmzeile an, von der aus der Terminal-E/A-Vorgang ausgegeben wurde.

Weitere Informationen zur Auswertung von Transaktionen finden Sie unter Transaktionszusammenfassung.