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:
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.
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:
Profil-Erstellung einer Großrechner-Session aus Natural Studio
Ablaufverfolgung (Tracing) beim Messen der Natural-Codeabdeckung
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:
Überprüfen Sie, ob die Voraussetzungen erfüllt sind.
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.
Öffnen Sie die NPRF-Ressource in NaturalONE, um die Hot-Spots und das Ereignis-Tracing zu sichten.
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.
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.
Öffnen Sie die NPRC-Ressource in NaturalONE, um die Hot-Spots zu sichten.
Ö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.
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:
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:
Überprüfen Sie, ob die Voraussetzungen erfüllt sind.
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.
Öffnen Sie die NCVF-Ressource in NaturalONE, um die Code Coverage-Ansicht zu erhalten.
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.
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.
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:
Die folgenden Voraussetzungen müssen erfüllt sein, bevor Sie die Profiler Utility im Batch-Modus verwenden können:
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.)
Der Natural-Nukleus muss "reentrant" und "reusable" sein. Verwenden Sie die folgenden Linkage-Optionen:
RENT,REUS
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.
Um Ressourcendateien in einer NDV-Umgebung anzuzeigen:
Kopieren Sie den Quellcode des NDV-User Exit
NDV-SX03
aus der Natural-System-Library SYSLIB
in
eine Benutzer-Library.
Bearbeiten Sie das Member. Passen Sie den Code folgendermaßen an:
DISPLAY-RESOURCES := 'Y' /* Display resources in NaturalONE/Studio
Katalogisieren Sie das Member unter dem Namen
NDV-UX03
.
Kopieren Sie es zurück in die System-Library
SYSLIB
oder in die Library SYSLIBS
oder
SYSTEM
.
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:
Starten Sie NaturalONE.
Mappen Sie sich in der Natural Server-Ansicht auf die Umgebung, in der sich die Profiler-Ressourcen befinden.
Fügen Sie das in der System-Library SYSPRFLR
enthaltene Programm ACTIVATE
zu einem neuen oder vorhandenen
Projekt in NaturalONE hinzu.
Profilieren Sie das Programm ACTIVATE
mit der
Kontextmenüfunktion Profile As > Natural
Application.
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:
Starten Sie NaturalONE.
Wählen Sie in Ihrem Arbeitsbereich ein Natural-Projekt aus, das auf die Umgebung gemappt ist, in der sich die Profiler-Ressourcen befinden.
Rufen Sie das Kontextmenü auf und wählen Sie NaturalONE > Tools and Utilities, um die Utility SYSUTIL zu starten.
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.
Dieser Abschnitt beschreibt, wie Sie die Profiler Utility im Batch-Modus aufrufen und beenden.
Um 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.
Um 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:
.
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:
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:
IM=D
).
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.
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 )
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: |
|
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
( Standardwert: |
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
Der Library-Name wird für alle folgenden
Standardeinstellung: Wenn Siehe auch Profiler-Eingaben aus Natural-Textobjekten einfügen. |
END-PROFILER
oder
oder
|
Profiler-Eingabe beenden.
Das Schlüsselwort |
|
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 |
Dieser Abschnitt beschreibt die Ereignisse und Daten, die von der Profiler Utility im Batch-Modus verarbeitet werden.
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. |
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.
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:
- Die für die Datensammlung aufgewendete Zeit (Monitor-CPU-Zeit) wird separat gemessen und aus der CPU-Zeit der Session herausgenommen.
- 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.
- Statement-Ereignisse werden nur gezählt, wenn das Ereignisfilter-Schlüsselwort
STATEMENT=COUNT
verwendet wird.- Monitor Pause-Ereignisse werden nicht gezählt.
- Natural-Codeabdeckung sammelt nur
NS
- undPI
-Ereignisse- Natural-Codeabdeckung sammelt keine Zeitwerte.
- 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 MikrosekundenProgram Load (Laden eines Programms)
Name des zu ladenden Programms
Name der Load Library
AufruftypProgram Resume (Programm-Wiederaufnahme)
Keines Program Start/Termination (Programm-Start/Beendigung)
Programmtyp
Datenbankkennung der Programm-Library
Dateinummer der Programm-LibraryProgram Information (Programminformationen)
Programmtyp
Anzahl der Statements in dem Programm oder im Copycode
Erstes Statement Item
INCLUDE
-Zeilennummer
Parent-Copycode-KennungDatabase Call (Datenbankaufruf)
Datenbanktyp
Kommandocode
Kommandokennung
Datenbankkennung DBID
Dateinummer
Antwortcode (EreignistypDA
)
Fehler-Subcode (EreignistypDA
)
Adabas-Kommandozeit (EreignistypDA
)Terminal I/O (Terminal-Ein-/Ausgabe)
Anzahl gesendeter Bytes
Anzahl gelesener Bytes
Zugeordneter Gesamtspeicher
Länge des komprimierten Session-SpeichersExternal 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 (EreignistypCA
)Runtime Error (Laufzeitfehler)
Natural-Systemfehlermeldungscode
Externer Abend Code
Name des FehlerbehandlungsprogrammsNatural 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 (EreignistypenRO
undRW
)
Servername (EreignistypenRO
undRW
)User-Defined Event Benutzerdefiniertes Ereignis
Subtyp des benutzerdefinierten Ereignisses
Bis zu 249 Bytes benutzerdefinierte InformationenMonitor 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.
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:
Dabei ist 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
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: |
|
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
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 ( Gültige Werte für
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: |
CMSYNIN |
data-set-name |
Gibt den Namen des primären Kommandoeingabe-Dataset für die Profiler-Monitor-Session an. Siehe Monitor-Session CMSYNIN. Standardwert: |
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: |
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. |
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
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:
Dabei ist 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
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 ( Gültige Werte für
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: |
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: |
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: |
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. |
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
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:
Die Profiler Utility-Funktionen START
und
PAUSE
werden verwendet, um die Datensammlung zu starten und
anzuhalten. Es gilt die folgende Syntax:
|
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
Der Ereigniszähler bleibt unverändert, wenn ein Wert von
Null ( |
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 .
|
Um 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.
Um die Datensammlung zu starten:
Führen Sie das folgende Programm aus:
PRFSTART
Oder:
PRFFCT START
Um die Datensammlung anzuhalten:
Führen Sie das folgende Programm aus:
PRFPAUSE
Oder:
PRFFCT PAUSE
Um den aktuellen Status der Datensammlung abzufragen:
Führen Sie das folgende Programm aus:
PRFSTATE
Oder:
PRFFCT STATE
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.
Um 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.
Um die Datensammlung zu starten:
Benutzen Sie die API mit dem
CALLNAT
-Statement:
CALLNAT 'USR8210N' 'START' P-RETURN P-MESSAGE /* Start Profiler
Um die Datensammlung anzuhalten:
Benutzen Sie die API mit dem
CALLNAT
-Statement:
CALLNAT 'USR8210N' 'PAUSE' P-RETURN P-MESSAGE /* Pause Profiler
Um 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 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.
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: Notes:
|
|
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: |
|
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 FNATDie 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
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:
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
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:
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
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:
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
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.
Um 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.
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:
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
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
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.
Um 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.
//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,... /*
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.)
Um 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.
//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 /*
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.
Um 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.
Um die Profiler-Datensammlung in einer Client/Server-Umgebung zu starten und anzuhalten:
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.
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.
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 )
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).
Um die Profiler-Datenerfassung in einer Natural Studio-Großrechner-Sitzung zu starten oder anzuhalten:
Melden Sie sich bei der Library SYSPRFLR
an.
Führen Sie das Programm PRFSTART
aus, um die
Sammlung zu starten.
Führen Sie das Programm PRFPAUSE
aus, um die
Sammlung anzuhalten.
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.
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.
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 Standardwert: Der Name der zuletzt erstellten NPRF-Ressourcendatei in der Library Bei |
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: |
|
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- 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. |
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
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:
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 Standardwert: Der Name der zuletzt erstellten NPRF-,
NPRC- oder NCVF-Ressourcendatei in der Library, abhängig von der
|
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. |
|
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. |
|
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: |
|
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.
|
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
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 Datei00010/02430
ausgegeben wurde und durch einFETCH
-Statement in der Zeile0270
des Natural-ObjektsMENU
ausgelöst wurde.Weitere Erläuterungen zu den Trace-Spalten und Ereignistypen finden Sie in den Abschnitten Event-Trace und Gesammelte Ereignisse und Daten.
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 jedemIA
- (nach Terminal-E/A) oderRI
-Ereignis (eingehende RPC-Nachricht) erhöht. Transaktionskennungen sind nur verfügbar, wenn die Daten mit der OptionTRANSACTION=ON
konsolidiert werden.Der konsolidierte Datensatz
4
zeigt, dass dieRESET
-Anweisung in der Zeile0010
des CopycodeC-COPYRT
(im Natural-ObjektA82CLS
enthalten) 43 Mal ausgeführt wurde und eine verstrichene (elapsed) Gesamtzeit von0,043
Millisekunden (ms) und eine Gesamt-CPU-Zeit von0,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.
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 .......... 2Erlä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 Ebene1
gestartet. Dieses Programm ruft das SubprogrammCALLMON3
auf, das weitere Subprogramme aufruft. Die höchste Stufe 8 wird erreicht, wenn das SubprogrammNAT41004
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 unterTotals
(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.
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.00Erlä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 lud3176
andere Natural-Objekte, führte71
Datenbankaufrufe und272180
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.
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.00Erläuterungen:
Die Zeile
0170
im Natural-ObjektXINT
verbrauchte0,128
ms der CPU-Zeit und0,029
ms der verstrichenen (elapsed) Zeit. Dies entspricht3,75
Prozent der gesamten CPU-Zeit und0,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.
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 aufTRANSACTION=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 dieREAD
-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 SpalteID
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.00Erlä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 LibrarySYSEDM
(TA-Lib
-Spalte), ProgrammMOPTTEST
(TA-Prog
), Programmzeile0020
(TA-Line
).Transaktion
7
hat auf27
Programme zugegriffen und33
Datenbankaufrufe und30
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.
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 |
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.
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 |
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.
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:
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
Falls Ihr Microsoft Excel Semikolons als Trennzeichen benötigt, geben Sie Folgendes an:
FORMAT=SEMICOLON /* Export in CSV format
Exportieren Sie die Daten von Arbeitsdatei 7 mit einem beliebigen Tool (z. B. FTP) als CSV-formatierte Datei in eine Windows-Umgebung.
Öffnen Sie die CSV-Datei mit Microsoft Excel.
Ordnen Sie die Daten neu an, so dass sich jeder Auswertungstyp (Programm, Ereignis, Statistik) auf einem eigenen Arbeitsblatt in der Microsoft Excel-Datei befindet.
Öffnen Sie die gelieferte Vorlage TESTCOV.XLSX
mit Microsoft Excel. Die Vorlage ist im Unterverzeichnis RES
(Ressourcen) der Natural-System-Library SYSPRFLR
enthalten.
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. |
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:
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.
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 LibrarySYSEDMD
.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.
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:
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 formatAusgabe:
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
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:
Bitten Sie Ihren Datenbankadministrator, den Wert des
Adabas-Parameters NISNHQ
zu erhöhen.
Benutzen Sie die Delete-Funktion der
Profiler Rich GUI-Schnittstelle. Sie verwendet die gleiche Technik wie die
DELETE
-Funktion der Profiler Utility.
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 Standardwert: keiner Wenn |
RESOURCE-TYPE |
Der Standard-Ressourcentyp
(Erweiterung), der gelöscht werden soll, wenn keine Erweiterung mit
RESOURCE-NAME angegeben ist.
Standardwert: |
|
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 |
FUNCTION=DELETE /* Delete a Profiler resource file RESOURCE-NAME='Test' /* Resource name RESOURCE-TYPE=NPRF /* Resource type RESOURCE-LIB=PRFDATA /* Resource library
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).
Um Profiler-Eingabedaten aus einem Natural-Textobjekt zu inkludieren:
Geben Sie die folgenden Profiler-Schlüsselwörter ein:
INCLUDE-LIB=library-name INCLUDE=object-name
Die Schlüsselwortsyntax wird in Profiler Utility-Schlüsselwörter erklärt.
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.
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
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.
Um 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. |
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 dieCONSOLIDATE -Funktion der
Profiler Utility angezeigt.
|
CPU-Delta | CPU-Zeit, die für die Verarbeitung des
Ereignisses aufgewendet wurde.
Einheit: Millisekunden |
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 ... |
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.
Um die Ablaufverfolgung für die Codeabdeckung zu aktivieren:
Aktivieren Sie die Ereignisverfolgung, indem Sie das folgende
untergeordnete Schlüsselwort der COVERAGE
-Funktion der Profiler
Utility angeben:
TRACE-EVENT=ON
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
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 |
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 |
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 |
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
|
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. |
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 ...
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.
Um 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:
TRACE
nicht angegeben
ist) wird Trace-Ebene 2 (Warnungen) verwendet.
TRACE
angegeben ist. Es wird daher empfohlen, das
TRACE
-Schlüsselwort möglichst bald anzugeben.
TRACE
angeben.
Um 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.
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. |
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 ... |
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.
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. |
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. |
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. |
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. |
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
× |
|
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. |
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. |
Statistiken der Datenkonsolidierung anzeigen.
Eigenschaft | Einheit | Beschreibung |
---|---|---|
Consolidation |
Gibt an, ob die Profiler-Daten konsolidiert sind
( |
|
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 |
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. |
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. |
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.