SYSRDC Utility

#### Search Results

Search

# SYSRDC Utility

Mit dem Dienstprogramm ("Utility") SYSRDC können Sie Monitoring- und Abrechnungsdaten über den internen Prozessablauf innerhalb einer Natural-Anwendung aufzeichnen und für die Auswertung von Natural-Session-Aktivitäten in externen oder Natural-Programmen verwenden. Die Daten werden bei innerhalb von Natural auftretenden Ereignissen gesammelt

Folgende Themen werden behandelt:

- Funktionsbausteine von SYSRDC

- Datenerfassung auslösende Ereignisse

- Gesammelte Daten

- Natural Data Collector aktivieren und konfigurieren

- Trace Recording-Funktion

- User Exits für externes Monitoring/Accounting

- Aufruf des CMRDC-Interface

- Beispiel-Programme

#### Verwandte Themen:

- Profiler Utility, ein menügesteuertes Werkzeug zum Erzeugen und Auflisten von Trace-Datensätzen

- RDC - Konfiguration des Natural Data Collector in der Profilparameter-Dokumentation.

## Funktionsbausteine von SYSRDC

Im Folgenden werden die Funktionsbausteine der SYSRDC Utility beschrieben, mit denen Daten gesammelt und zur Weiterverarbeitung zur Verfügung gestellt werden können.

- Natural Data Collector als Teil des Natural-Nukleus:
  Sammelt Daten und steuert die Datenaufzeichnung im Natural Data Collector Buffer.

- User Exits:
  Übergibt Daten an externe Monitoring- und Abrechnungsprogramme.

- CMRDC Interface:
  Wertet Daten in einem Natural-Programm für die aktuelle Natural-Session aus.

## Datenerfassung auslösende Ereignisse

Ereignisse (Events) geben Aktivitäten innerhalb von Natural an. Die folgende Tabelle enthält eine Liste der Ereignisse, bei denen Daten innerhalb von Natural gesammelt werden, und der zur Verfügung stehenden Ereignistypen.

Jedem Ereignistyp ist ein ein- oder zweistelliger Code zugeordnet, wobei der erste Buchstabe die Gruppe des Ereignisses und der zweite Buchstabe den Untertyp darstellt, zum Beispiel:

Ereignistyp PL

P steht für die Ereignisgruppe program und L für den Untertyp load.

Ereignis | Ereignistyp
--- | ---
Session initialization (Initialisierung der Session) | SI
Session termination (Beendigung der Session) | ST
Program load (Laden eines Programms) | PL
Program start (Starten eines Programms) | PS
Program termination (Beendigen eines Programms) | PT
Before database call (vor einem Datenbankaufruf) | DB
After database call (nach einem Datenbankaufruf) | DA
Before terminal I/O (vor einer Terminal-Ein-/Ausgabe) | IB
After a terminal I/O (nach einer Terminal-Ein-/Ausgabe) | IA
Before non-Natural program call (vor dem Aufrufen eines Nicht-Natural-Programms) | CB
After non-Natural program call (nach dem Aufrufen eines Nicht-Natural-Programms) | CA
Runtime error (Laufzeitfehler) | E
Internal trace call (interner Trace-Aufruf) Anmerkung Die von internen Traces gelieferten Informationen sind nur für Debugging-Zwecke durch den Software AG Support bestimmt. Siehe unten. | N
Natural Statement Anmerkung Siehe unten. | NS
Outbound RPC message (ausgehende RPC-Meldung) | RO
Inbound RPC message (eingehende RPC-Meldung) | RI
Start of RPC request execution (Start der Ausführung der RPC-Anforderung) | RS
Wait for RPC client request (Warten auf RPC-Client-Anforderung) | RW
User-defined event (Benutzerdefiniertes Ereignis) | U

Um ein internes Trace-Aufruf-Ereignis zu aktivieren:

1. Setzen Sie den Natural-Profilparameter `ITRACE=ON`.

2. Definieren Sie die Natural-Komponenten, die interne Trace-Aufrufe absetzen sollen:

   - Benutzen Sie dazu das Makro `NTTRACE` im Natural-Parametermodul.

     Oder setzen Sie den dynamischen Natural-Profilparameter `TRACE`.

Um ein Natural-Statement-Ereignis zu aktivieren:

- Setzen Sie die Natural-Profilparameter `ITRACE=ON` und `TRACE=NATPROX`.

Informationen zu den oben genannten Profilparametern und dem Parameter-Makro siehe Parameter-Referenz-Dokumentation.

## Gesammelte Daten

Die Daten, die der Natural Data Collector sammelt, werden in den folgenden Abschnitten beschrieben:

Informationen zum Layout der Daten können Sie dem Natural Source Dataset (Datei) NAMRDC oder dem lokalen Datenbereich RDCDATA entnehmen, der sich in der Natural-System-Library SYSRDC befindet.

Die gesammelten Daten können in zwei Kategorien unterteilt werden: allgemeine und ereignisspezifische Daten:

- Allgemeine Daten

- Ereignisspezifische Daten

### Allgemeine Daten

Die folgenden allgemeinen Daten werden bei jedem Ereignis gesammelt:

- Software AG-Produktname

- Produktversion

- Betriebssystem

- TP-Monitor

- Laufmodi, z.B. Adressierungs- und Residenzmodus des Natural-Nukleus und des Natural Buffer Pool

- TP-Benutzername oder Batch-Jobname

- TP-Terminalkennung (ID)

- Aktuelle Natural-Benutzerkennung (ID)

- Aktuelle Natural Security-Benutzergruppenkennung (ID)

- Aktuelle Natural-Library

- Aktuelles Natural-Programm

- Aktuelle Programmebene

- Zeilennummer des zurzeit ausgeführten Programm-Statements

- Session CPU Time (gleiches Format wie `*CPU-TIME`)

### Ereignisspezifische Daten

Die folgenden Daten werden nur bei den folgenden Ereignissen gesammelt:

Ereignis | Datenelemente
--- | ---
Session initialization (Initialisierung der Session) | keine
Session termination (Beendigung der Session) | Beendigungs-Rückgabecode Natural-Beendigungsmeldungscode NAT99nn Name des Back-end-Programms
Program load (Laden eines Programms) | Name des zu ladenden Programms Name der Load Library Aufruftyp
Program start/termination (Starten/Beenden eines Programms) | Programmtyp Programmname Programm-Library-Name Datenbankkennung (ID) der Programm-Library Dateinummer (FNR) der Programm-Library
Database call (Datenbankaufruf) | Datenbanktyp Kommandocode Kommandokennung (ID) Datenbankkennung (ID) Dateinummer (FNR) Zeiger, der Parameteradressen auflistet (nur bei User Exits nützlich) Rückgabecode (nur beim Ereignistyp DA) Fehlersubcode (nur beim Ereignistyp DA) Adabas-Kommandozeit (nur beim Ereignistyp DA)
Terminal I/O (Terminal-Ein-/Ausgabe) | Anzahl der gesendeten Bytes Anzahl der gelesenen Bytes Zugewiesener Gesamt-Session-Speicher Länge des komprimierten Session-Speichers
Non-Natural program call (Aufrufen eines Nicht-Natural-Programms) | Name des aufgerufenen Programms Aufrufmodus, z.B. dynamischer oder statischer Modus Program-Link-Speicherort Parametertyp Parameteradresse Programmeingabeadresse Rückgabecode (nur beim Ereignistyp CA)
Runtime error (Laufzeitfehler) | Natural-Systemfehlermeldungscode Externer Abbruchcode Name des Fehlerbehandlungsprogramms gemäß Angabe im Natural-Profilparameter ETA (siehe Parameter-Referenz-Dokumentation).
Internal trace call (interner Trace-Aufruf) | Bis zu 250 Bytes Informationen zu Natural-Nukleus-Komponenten Die gelieferten Informationen sollen nur für Debugging-Zwecke durch Mitarbeiter der Software AG dienen.
Natural Statement | Bis zu 250 Bytes Informationen zu ausgeführten Natural-Statements
RPC request (RPC-Anforderung) | RPC-spezifische Informationen: Umgebung: C = Client, S = Server RDC Subtyp S: Subprogrammname Adabas-Benutzerkennung (ETID) Status der Konversation Logon-Indikator (Y = Anmeldung erfolgt) Impersonationsanzeige der RPC-Anforderung (Y = Impersonation erfolgt). RDC-Subtypen O, I und W: Transportprotokoll RPC-Funktion Typ der Client-Benutzerkennung Länge der Meldung Rückgabecode der Tansportschicht Externe Konversationskennung Client-Benutzerkennung Serverknoten (outbound message of client only), Servername (nur ausgehende Meldung des Client).
User-defined event (Benutzerdefiniertes Ereignis) | Bis zu 250 Bytes benutzerdefinierte Informationen.

## Natural Data Collector aktivieren und konfigurieren

Der Natural Data Collector wird mit Hilfe des Natural-Profilparameters `RDC` aktiviert und konfiguriert (siehe RDC - Konfiguration des Natural Data Collector in der Parameter-Referenz-Dokumentation).

Die Standardeinstellung ist `RDC=OFF`. Das bedeutet, der Natural Data Collector ist deaktiviert und die Trace Recording-Funktion muss separat aktiviert werden. Um die Einstellungen zu ändern, können Sie im Natural-Parametermodul das Makro NTRDC des Profilparameters `RDC` benutzen (siehe RDC - Konfiguration des Natural Data Collector in der Parameter-Referenz-Dokumentation).

Folgende Werte und Schlüsselwort-Parameter stehen zur Verfügung:

Wert / Schlüsselwort-Subparameter | Beschreibung
--- | ---
`ON` | Die Trace Recording-Funktion wird beim Start der Natural-Session automatisch gestartet.
`OFF` | Der Natural Data Collector ist deaktiviert und die Trace Recording-Funktion muss separat aktiviert werden.
`EVENT` | Zur Angabe von Ereignissen, die aufgezeichnet werden sollen. Wenn Sie `ALL` angeben, werden alle Ereignisse aufgezeichnet. Weitere Informationen siehe EVENT - Natural Data Collector-Ereignisse, die aufgezeichnet werden sollen. Anmerkung Alternativ können Sie das Natural-Statement `CALL 'CMRDC' 'T'` benutzen, siehe Ereignistypen für Trace-Aufzeichnung auswählen.
EXIT | Zur Definition von User Exits, siehe EXIT - User Exits für den Natural Data Collector.
FNAT | Zur Steuerung der Trace-Recording-Funktion, während Programme in der Natural-Systemdatei ausgeführt werden. Weitere Informationen siehe FNAT - Trace Recording in der Natural-Systemdatei.
SIZE | Zur Angabe der Größe des Pufferspeichers für den Natural Data Collector. Zusätzlich zur Steuerung der Trace-Recording-Funktion des Natural Data Collector. Weitere Informationen siehe SIZE - Größe des Natural Data Collector-Puffers. Anmerkung Als Alternative zu diesem Subparameter können Sie den äquivalenten Natural-Profilparameter `RDCSIZE` benutzen.

## Trace Recording-Funktion

Die gesammelten Ereignisdaten werden immer an User Exits geliefert, die, wie an anderer Stelle beschrieben, von externen Monitoring/Accounting-Programmen benutzt werden sollen. Sie können unabhängig von den User Exits die Ereignisdaten der aktuellen Natural Session im Natural Data Collector-Puffer aufzeichnen. Dies kann für Testzwecke nützlich sein. In diesem Abschnitt wird das Aufzeichnen von Daten im Natural Data Collector-Puffer als Trace Recording-Funktion bezeichnet.

Wenn Sie eine Natural Session starten, ist die Trace-Recording-Funktion standardmäßig nicht aktiv. Damit die Trace-Recording-Funktion beim Start einer Session (ohne Trace-Aufzeichnung) aktiviert wird, können Sie den Natural-Profilparameter `RDC` auf `ON` setzen, siehe auch RDC - Konfiguration des Natural Data Collector. Um außerdem die Trace-Aufzeichnung zu aktivieren, müssen Sie den `RDC`-Subparameter `SIZE` auf einen Wert größer als `2` setzen.

Sie können auch eine der folgenden Option nutzen, um die Trace-Aufzeichnung zu starten:

- Systemkommando `RDC ON`

- Terminalkommando `%<RDC+`

- Natural-Statement `CALL 'CMRDC' 'S'`

Anmerkungen:

1. Der Natural Data Collector-Puffer wird im Wrap-Around-Modus gefüllt, d. h. der älteste Datensatz wird überschrieben, wenn der Puffer voll wird. Am Ende der Sitzung wird der Inhalt des Puffers gelöscht.
2. Die Trace-Aufzeichnung umfasst standardmäßig nicht die Systemdatei FNAT. Um auch die Systemdatei FNAT in die Aufzeichnung einzubeziehen, müssen Sie den `RDC`-Subparameter `FNAT=ON` setzen.

Die Trace-Aufzeichnung wird beendet durch:

- Systemkommando `RDC OFF`

- Terminalkommando `%<RDC-`

- Natural-Statement `CALL 'CMRDC' 'P'`

- Beenden einer Session

## User Exits für externes Monitoring/Accounting

Die Ereignisdaten können an externe Monitoring- und Accounting-Programme zur Auswertung der Aktivitäten in Natural Sessions übergeben werden. Dies wird erreicht mit den User Exits und den mitgelieferten Beispielen für User-Exit-Programme. User-Exit-Programme sind in Assembler geschrieben.

Der Natural Data Collector unterstützt eine beliebige Anzahl an User Exits. User Exits können mit dem Natural-Profilparameter RDCEXIT definiert werden (siehe Parameter-Referenz-Dokumentation). Mit jedem User Exit kann ein externes Monitoring- und Accounting-Programm verknüpft werden.

Es sind drei vordefinierte Exit-Namen vorhanden: RDCEX1, RDCEX2 and RDCEX3. Wenn Sie einen dieser Namen als Einstiegspunkt für Ihren Exit (der mit dem Natural-Nukleus verlinkt ist) benutzen, ist der Natural-Profilparameter RDCEXIT nicht erforderlich.

Bei jedem der unter Datenerfassung auslösende Ereignisse aufgelisteten Ereignisse übernehmen die User Exits die Steuerung. Dazu benutzen sie die in der folgenden Tabelle aufgeführten Standard Linkage-Aufrufkonventionen:

Register | Inhalt
--- | ---
1 | Zeigt auf eine Parameteradressliste, die aus zwei Adressen besteht: Die eine Adresse zeigt auf die allgemeinen Daten und die andere auf die ereignisspezifischen Daten. Das Layout dieser beiden Bereiche wird durch den DSECT RDCGDATA bzw. RDCLDATA dargestellt. Beide DSECTs werden in Source-Form im Natural-Makro NAMRDC geliefert.
13 | Zeigt auf einen 72-Byte Standard-Speicherbereich.
14 | Enthält die Rückgabeadresse.
15 | Enthält entweder die Einstiegspunktadresse oder den Rückgabecode des User-Exits.

Anmerkung
Der Aufruf der User Exits erfolgt unabhängig vom CMRDC-Interface.

Ein User-Exit-Programm muss die gleichen Attribute wie Natural haben, d.h., es muss den gleichen Adressierungsmodus haben und muss ablaufinvariant (reentrant) sein. Es muss mit dem Natural-Nukleus gemäß den Konventionen für statisch verlinkte Nicht-Natural-Programme verlinkt sein. Siehe auch Natural-Profilparameter CSTATIC und RCA in der Parameter-Referenz-Dokumentation.

Standardmäßig wird für jeden User Exit ein 400-Byte großer exklusiver Arbeitsbereich (pro Session) zur Verfügung gestellt (das Feld RDCGWRKA). Sollte für einen User Exit ein größerer Arbeitsbereich erforderlich sein, kann er im Natural-Profilparameter RDCEXIT (s. Parameter-Referenz-Dokumentation) nach dem Namen des User Exit angegeben werden. Die Übergabe der Länge des Arbeitsbereichs an die User Exits erfolgt im Feld RDCGWRKL. Sie kann zur Verifizierung genutzt werden. Der Standort dieses Arbeitsbereichs kann sich aufgrund einer Natural-Standortverlagerung ändern, sein Inhalt bleibt jedoch erhalten.

In TP-Monitor-Umgebungen wird die TP-Ankeradresse geliefert (das Feld RDCGANCH), z.B. die CSA-Adresse unter CICS. Sie kann benutzt werden, um Zugang zu Systeminformationen zu erhalten.

Falls während der Ausführung eines User Exit-Programms ein Program Check auftritt, wird die weitere Datenerfassung für den Rest der Session deaktiviert, um rekursive Abbruchsituationen zu vermeiden.

Anschließend werden folgende Themen behandelt:

- Rückgabecodes

- Beispiele für User-Exit-Programme

### Rückgabecodes

Rückgabecodes ungleich Null werden nur für zwei Ereignisse unterstützt:

- Vor einem Datenbankaufruf, bei dem das Register 15 einen Adabas-Antwortcode enthalten kann, der im Steuerblock gespeichert ist. Der Adabas-Aufruf wird nicht ausgeführt.

- Beim Programmstart, wobei Register 15 einen Natural-Fehlermeldungscode enthalten kann. Das Programm wird nicht ausgeführt, sondern es tritt eine Fehlerbedingung mit der angegebenen Nummer auf.

### Beispiele für User-Exit-Programme

Die folgenden Beispiele für User-Exit-Programme werden in den folgenden Natural-Source-Datasets (Dateien) zur Verfügung gestellt:

Programm | Data Set (Datei) | Benutzt für
--- | --- | ---
NAMRDC | NATnnn.SRCE | DSECT Makro für allgemeine und ereignisspezifische Daten
XNATRDC1 | NATnnn.SRCE | Natural TSO Interface und Natural Batch Interface unter dem Betriebssystemen z/OS
XNCFRDC1 | NCFnnn.SRCE | Com-plete
XNCIRDC1 | NCInnn.SRCE | Natural CICS Interface

## Aufruf des CMRDC-Interface

Die Anwendungsprogrammierschnittstelle CMRDC wird verwendet, um die im Natural Data Collector-Puffer aufgezeichneten Trace-Daten abzurufen und zu steuern. Dies kann für Testzwecke von Nutzen sein.

Um das CMRDC Interface aufzurufen:

- Setzen Sie in dem Natural-Programm ein `CALL`-Statement ab.

Die vom CMRDC Interface zur Verfügung gestellten Funktionen und die Syntax, die bei den entsprechenden Natural-`CALL`-Statements gilt, werden im folgenden Abschnitt behandelt.

Zusätzlich enthält die Natural-System-Library SYSRDC Beispielprogramme und den dazu passenden lokalen Datenbereich (LDA) RDCDATA, in dem die Struktur der Trace-Aufzeichnungen definiert ist. Gemäß dieser Definition hat jede Trace-Aufzeichnung zwei Hauptbestandteile: einen für die allgemeinen Daten und einen für ereignisspezifische Daten.

Folgende Themen werden behandelt:

- Trace-Aufzeichnungen abrufen

- Trace-Aufzeichnung stoppen und erneut starten

- Ereignistypen für Trace-Aufzeichnung auswählen

- Benutzerdefinierte Ereignisse

- Trace-Status abfragen

- CMRDC-Rückgabecodes

### Trace-Aufzeichnungen abrufen

Um Daten aus dem Natural Data Collector-Puffer zu lesen, müssen Sie CMRDC mit dem folgenden Natural-Statement aufrufen:

`CALL 'CMRDC'` function event-time gen-data event-data seq.-number

Folgende Parameter werden übergeben:

Parameter | Format/Länge | Erklärung
--- | --- | ---
function | A1 |
F | Ersten Trace-Datensatz holen.
G | Nächsten Trace-Datensatz holen.
N | Datensatz mit angegebener Folgenummer holen.
event-time | N10 oder N12 | Zeitpunkt des Ereignisses: Die Zeit wird in einem der folgenden Formate zurückgegeben:
HHMMSSXXXX | HH = Stunden, MM = Minuten, SS = Sekunden, XXXX = Sekundenbruchteil
HHMMSSXXXXXX | HH = Stunden, MM = Minuten, SS = Sekunden, XXXXXX = Sekundenbruchteil
gen-data | A252 | Allgemeine Daten (Feld `GDATA`)
event-data | A252 | Ereignisspezifische Daten (Feld `LDATA`)
seq.-number | I4 | Folgenummer des Datensatzes Gilt nur bei Funktion N (siehe oben).

Die Abruf-Funktionen stoppen das Aufzeichnen von Daten im Natural Data Collector-Puffer implizit.

### Trace-Aufzeichnung stoppen und erneut starten

Um das Aufzeichnen von Trace-Daten im Natural Data Collector-Puffer zu stoppen und erneut zu starten, müssen Sie CMRDC mit dem folgenden Natural-Statement aufrufen:

`CALL 'CMRDC'` function

Folgende Parameter werden übergeben:

Parameter | Format/Länge | Erklärung
--- | --- | ---
function | A1 |
S | Natural Data Collector-Puffer löschen und Trace-Aufzeichnung neu starten.
P | Trace-Aufzeichnung stoppen.

### Ereignistypen für Trace-Aufzeichnung auswählen

Standardmäßig werden alle Ereignisse für die Trace-Aufzeichnung ausgewählt. Sie können diese Funktion benutzen, wenn nur bestimmte Ereignisse aufgezeichnet werden sollen.

Anmerkungen:

1. Diese Funktion dient nur zum Auswählen von Ereignissen, die im Natural Data Collector-Puffer aufgezeichnet werden sollen. Sie hat keine Auswirkung auf die Daten, die an User Exits übergeben werden, und beeinflusst auch nicht den Status (gestartet/gestoppt) der Trace-Aufzeichnung.
2. Ereignisse können auch mit dem Subparameter `EVENT` des Profilparameters `RDC` angegeben werden, siehe Natural Data Collector aktivieren und steuern.
3. Diese Funktion bewirkt, dass jegliche früher erfolgte Ereignisdefinition ersetzt wird,

Um die aufzuzeichnenden Ereignistypen auszuwählen, müssen Sie CMRDC mit dem folgenden Natural-Statement aufrufen:

`CALL 'CMRDC'` function type `...`

Folgende Parameter werden übergeben:

Parameter | Format/Länge | Erklärung
--- | --- | ---
function | A1 |
T | Ereignisse für Trace-Aufzeichnung auswählen.
type | A1, A2 or A3 | Aus einem oder zwei Buchstaben bestehender Code für den aufzuzeichnenden Ereignistyp, siehe Datenerfassung auslösende Ereignisse. Sie können eine beliebige Anzahl an Parametern für die gewünschten Ereignistypen angeben. Alternativ können Sie einen Bereich von Ereignissen oder kein Ereignis wählen:
ALL | Alle Ereignistypen.
value* | Alle Ereignistypen, die mit value beginnen. Beispiel: P* wählt alle Ereignisse des Typs Programm: PL, PS und PT.
leer | Bei Angabe eines Leerzeichens wird kein Ereignis ausgewählt.

### Benutzerdefinierte Ereignisse

Um ein benutzerdefiniertes Ereignis auszuwählen, müssen Sie CMRDC mit dem folgenden Natural-Statement aufrufen:

`CALL 'CMRDC'` function record

Folgende Parameter werden übergeben:

Parameter | Format/Länge | Erklärung
--- | --- | ---
function | A1 |
U | Benutzerdefiniertes Trace-Ereignis.
record | Annn | Trace-Aufzeichnung mit einer Länge (nnn) von bis zu 250 Bytes.

### Trace-Status abfragen

Um den Trace-Status und den zurzeit gesetzten Ereignistyp abzufragen, müssen Sie CMRDC mit dem folgenden Natural-Statement aufrufen:

`CALL 'CMRDC'` function status types

Folgende Parameter werden übergeben:

Parameter | Format/Länge | Erklärung
--- | --- | ---
function | A1 |
C | Trace-Status abfragen.
status | A1 | Aktueller Trace-Status:
S | Trace aktiv
P | Trace inaktiv
types | Ann | Die aus zwei Buchstaben bestehenden Codes für die zurzeit gesetzten Ereignistypen Siehe Ereignistypen für Trace-Aufzeichnung auswählen. Die Variable types benötigt eine Mindestlänge (nn) an 64 Bytes, um genügend Platz für alle Ereignistypen zur Verfügung zu stellen. Dieser Parameter ist optional.

### CMRDC-Rückgabecodes

Code | Bedeutung
--- | ---
0 | Funktion erfolgreich ausgeführt.
4 | Letzte Trace-Aufzeichnung. Bei Ereignistyp = `0` sind für die Funktion F keine Trace-Daten vorhanden. Gilt nur für die Funktionen F und G (siehe oben).
8 | Zu wenige Parameter für diese Funktion.
12 | Ungültiger Funktionscode.
16 | Natural Data Collector nicht aktive, z.B. wegen `RDCSIZE=0`.
20 | Natural Data Collector nach Fehler deaktiviert.
24 | Kein Pufferplatz für Trace-Aufzeichnung verfügbar (`RDCSIZE=2`).
28 | Ungültiger Parameterwert. Gilt nur für die Funktionen T und N (siehe oben).

## Beispiel-Programme

Die Natural-System-Library SYSRDC enthält folgende Beispiel-Programme:

Programm | Funktion
--- | ---
RDCDISP | Anzeige aller Datensätze im Natural Data Collector-Puffer und der Felder wie im Programm angegeben. Siehe auch Beispiel-Ausgabe des Programms RDCDISP weiter unten.
RDCSTART | Trace-Aufzeichnung neu starten.
RDCSTOP | Trace-Aufzeichnung stoppen.
RDCSET | Ereignisse für Trace-Aufzeichnung auswählen.
RDCUSER | Benutzerdefiniertes Ereignis.
RDCSTAT | Trace-Status abfragen.
RDCDISIO | Anzeige aller Ein-/Ausgabe bezogenen Datensätze im Natural Data Collector-Puffer und der Felder wie im Programm angegeben. Siehe auch Interne Gültigkeitsprüfung und Tracing nach E/A-bezogenen Statements und Beispiel-Ausgabe des Programms RDCDISIO weiter unten.

### Beispiel-Ausgabe des Programms RDCDISP

Der folgende Beispiel-Bildschirm zeigt einen Auszug aus einem Ausgabe-Report, der vom Beispiel-Programm RDCDISP erstellt wurde.

     ETIME1   TY  GCUID   LV   GPGM   T  GCAPL    PRLIB    PRNAM   CO  DB   FN  RC
    --------- -- -------- -- -------- - -------- -------- -------- -- ---- ---- ---

       0.0000 SI SAG                    SYSTEM
       0.0002 DB SAG                    SYSTEM                     OP   10
       0.0002 DA SAG                    SYSTEM                     OP   10
       0.0000 DB SAG                    SYSTEM                     S1   10 1640
       0.0005 DA SAG                    SYSTEM                     S1   10 1640
       0.0001 PL SAG                    SYSTEM   SYSLIB   MAINMENU
       0.0001 PS SAG       1 MAINMENU F SYSTEM   SYSLIB   MAINMENU      10 1640
       0.0001 PL SAG       1 MAINMENU   SYSTEM   SYSLIB   NAT00029
       0.0000 DB SAG       1 MAINMENU   SYSTEM                     S1   10 1640
       0.0002 DA SAG       1 MAINMENU   SYSTEM                     S1   10 1640
       0.0000 PS SAG       2 NAT00029 N SYSTEM   SYSLIBS  NAT00029      10 1640
       0.0000 CB SAG       2 NAT00029   SYSTEM            CMMPP    S
       0.0000 CA SAG       2 NAT00029   SYSTEM            CMMPP    S
       0.0000 PT SAG       2 NAT00029 N SYSTEM   SYSLIBS  NAT00029
       0.0000 PL SAG       1 MAINMENU   SYSTEM   SYSLIB   USR2003P
       0.0000 PS SAG       2 USR2003P N SYSTEM   SYSLIB   USR2003P      10 1640
       0.0001 PT SAG       2 USR2003P N SYSTEM   SYSLIB   USR2003P
       0.0000 CB SAG       1 MAINMENU   SYSTEM            CMUB     S

In der folgenden Tabelle werden die Spaltenüberschriften im Beispiel-Bildschirm und die Variablen erklärt, auf die sie sich beziehen. Bei einigen Ereignissen haben die zu PRLIB angezeigten Daten eine andere Bedeutung. Für weitere Informationen siehe die Kommentare in der Programm-Source und dem lokalen Datenbereich (LDA) RDCDATA. Erläuterungen zu den nachfolgend erwähnten Systemvariablen können Sie der Systemvariablen-Dokumentation entnehmen.

Spalte | Erklärung
--- | ---
ETIME1 | Zeitintervall in Sekunden zwischen der Ausführung des aktuellen und des vorhergegangenen Ereignisses.
TY | Ereignistyp gemäß der Auflistung im Abschnitt Datenerfassung auslösende Ereignisse.
GCUID | Aktuelle Natural-Benutzerkennung gemäß Zuweisung durch die Natural-Systemvariable *USER.
LV | Programmebene.
GPGM | Name des aktuellen Programm gemäß Zuweisung durch die Natural-Systemvariable *PROGRAM.
T | Programmtyp.
GCAPL | Kennung (DBID) der aktuellen Anwendungs-Library gemäß Zuweisung durch die Natural-Systemvariable *APPLIC-ID.
PRLIB | Kennung (DBID) der Library, in der das Programm gespeichert ist. Gilt für Ereignisse des Typs Programm, z.B. Ereignistyp PL.
PRNAM | Name des Programms, das für den Ereignistyp geladen werden soll.
CO | Datenbank-Kommando.
DB | Datenbankkennung (DBID).
FN | Dateinummer der Datenbank (FNR).
RC | Datenbank- oder Programmaufruf-Antwortcode.

### Interne Gültigkeitsprüfung und Tracing nach E/A-bezogenen Statements

Um `NAT1132`-Fehler festzustellen und das Debugging zu erleichtern, können durch Trace Recording Informationen gesammelt werden, die sich auf den Fehlertyp beziehen (z.B. Zeilen- und Feldlängen oder Puffer-Offsets). Nach der Verarbeitung eines Ein-/Ausgabe-Statements (z.B. `WRITE`, `DISPLAY`) wird eine Validierungsroutine ausgeführt, um die Puffer `IOPAGE` und `IOPATTR` auf Gültigkeit und Konsistenz zu prüfen, z.B. hinsichtlich des Vorhandenseins eines Zeilentrennungszeichens. Wenn ein möglicher Fehler entdeckt, wird die Meldung (`NAT1132 condition detected`) sowie Informationen zum Lokalisieren des Fehlers in den Natural Data Collector-Puffer geschrieben und die Trace-Aufzeichnung wird gestoppt, um zu vermeiden, dass dieses Ergebnis durch nachfolgende, irrelevante Daten verborgen wird.

Um das Aufzeichnen des Tracing nach NAT1132 zu aktivieren, geben Sie die folgenden Natural-Profileparameter an:

`ITRACE=ON,RDCSIZE=128,TRACE=IO`

Wenn ein Trace für ein von Ihnen ausgeführtes Programm erstellt wurde, können Sie die I/O-bezogenen Datensätze anzeigen, indem Sie `RDCDISIO` in der Library SYSRDC ausführen.

#### Beispiel-Ausgabe des Programms RDCDISIO

Der folgende Beispiel-Bildschirm zeigt einen Auszug aus einem Ausgabe-Report, der vom Beispiel-Programm RDCDISIO erstellt wurde. In der folgenden Tabelle werden die Spaltenüberschriften im Beispiel-Bildschirm erklärt.

     GCUID   LV   GPGM    GCAPL                       NDATA
    -------- -- -------- -------- ---------------------------------------------
    MK        1 LOGON    SYSTEM   INO2  08 F 005041700618 (R6)
    MK        1 MYDEMO   MK       INO2  00 F 001A00200609 (R6)
    MK        1 MYDEMO   MK       IOIPR    F 001A00200609 50 50 0050 0050
    MK        1 MYDEMO   MK       INO2  04 F 001A00200609 (R6)
    MK        1 MYDEMO   MK       INO2  00 F 001A00200609 (R6)
    MK        1 MYDEMO   MK       IOIPR    F 001A00200609 50 50 0050 0050
    MK        1 MYDEMO   MK       INO2     F 10C000C8C9C5 (R6) BEG OF  IOPRI
    MK        1 MYDEMO   MK       IOEUP    F 000000A0 0F  (PATTRADF/LNG)
    MK        1 MYDEMO   MK       IOEUP    F 000000A0 0F  (PATTRADF/LNG)
    MK        1 MYDEMO   MK       IODRU    F 000000B0 3F  (PATTRADF/LNG)
    MK        1 MYDEMO   MK       INO2     F 000A00301804 (R6) END OF  IOPRI
    MK        2 MYDEMON  MK       INO2  00 N 001801700609 (R6)
    MK        2 MYDEMON  MK       IOIPR    N 001801700609 4F 50 004F 0050
    MK        2 MYDEMON  MK       IOIPR    N LINE SIZE HAS CHANGED
    MK        2 MYDEMON  MK       INO2     N 058000800104 (R6) BEG OF  IOPRI
    MK        2 MYDEMON  MK       IOEUP    N 000000F0 08  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       IOEUP    N 000000F0 08  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       IOEUP    N 000000F9 32  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       IOEUP    N 000000F9 32  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       IOEUP    N 0000012C 12  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       IOEUP    N 0000012C 12  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       IOPRI    N NAT1132 CONDITION DETECTED
    MK        2 MYDEMON  MK       IOEUP    N 0000013F 32  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       IOEUP    N 0000013F 32  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       IOEUP    N 00000172 32  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       IOEUP    N 0000018F 1E  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       IOEUP    N 0000018F 1E  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       IODRU    N 000001AE 30  (PATTRADF/LNG)
    MK        2 MYDEMON  MK       INO2     N 00060180FF08 (R6) END OF  IOPRI
    MK        2 MYDEMON  MK       INO2     N NAT1132 CONDITION 1 DETECTED

GCUID | Aktuelle Natural-Benutzerkennung gemäß Zuweisung durch die Natural-Systemvariable `*USER`.
LV | Programmebene.
GPGM | Name des aktuellen Programms gemäß Zuweisung durch die Natural-Systemvariable `*PROGRAM`.
GCAPL | Kennung der aktuellen Anwendungs-Library gemäß Zuweisung durch die Natural-Systemvariable `*APPLIC-ID`.
NDATA | Bis zu 250 Bytes Informationen zu Natural-Nukleus-Komponenten. Nur für Debugging-Zwecke durch Mitarbeiter der Software AG.

### On this page

- Funktionsbausteine von SYSRDC
- Datenerfassung auslösende Ereignisse
- Gesammelte Daten
- Natural Data Collector aktivieren und konfigurieren
- Trace Recording-Funktion
- User Exits für externes Monitoring/Accounting
- Aufruf des CMRDC-Interface
- Beispiel-Programme