Für den Administrator

DebugOptions des CONZEPT 16-Servers

Im Normalfall laufen die Anwendungen bei den Anwendern ohne größere Störungen. Dennoch können Situation auftreten, die dazu führen, dass Verarbeitungen in der Anwendung länger als gewöhnlich benötigen oder die Datenbank-Benutzer häufiger eine Meldung mit dem Hinweis “Wartezustand” erhalten.


Um die möglichen Ursachen herauszufinden ist die Systemumgebung näher zu beleuchten. Für die Analyse eines Systems gibt es entsprechende Monitoring-Werkzeuge, wie zum Beispiel der Performance Monitor unter Windows.

Auch CONZEPT 16 bietet die Möglichkeit, etwaige Engpässe im System- oder Applikationsumfeld erkennen zu können. Dazu stellt der CONZEPT 16-Server eine erweiterte Protokollierungsfunktion zur Verfügung.
Bei den erweiterten Protokolleinträgen handelt es sich um sogenannte Debug-Einträge, die bei Bedarf aktiviert werden können. Dazu wird der Parameter DebugOptions in der Datenraumtabelle (c16_serv.ars) des CONZEPT 16-Servers auf einen bestimmten Wert gesetzt.
Beispiel:

[AreaTable]
<Password=’eef8d60d4c611adf4b4691b4f27785abd334bde8e11dc221ae07′>

<ProtocolCRC=0>
<DebugOptions=120>

Der Wert des Parameters entspricht der Addition der gewünschten Debug-Einträge. Bei den Werten handelt es sich um Hexadezimalzahlen. Das Setzen der DebugOptions ist derzeit nur über ein direktes Editieren der Datenraumtabelle möglich. Es ist zu beachten, dass vor dem Ändern dieser Datei der CONZEPT 16-Server gestoppt sein muss.
Über die DebugOptions lassen sich nachfolgende “Ereignisse” in der Protokolldatei festhalten:

0x01 – Wartezustände eines Benutzers, die länger als 2 Sekunden betragen

Bei einer Anfrage ist ein Wartezustand von mehr als 2 Sekunden Dauer eingetreten. Es wird die ID des Benutzer ausgegeben, der das Datenbank-Segment gesperrt hält.
Zusätzlich wird die Nummer des Baums angezeigt, zu dem das gesperrte Segment gehört. Die Einträge dienen zur Überprüfung der eigenen Programmierung im Bereich Transaktionen.

Eintrag in der Protokollatei:
User wait on ID … tree … seg …

0x02 – Anfragen, die länger als 3 Sekunden benötigen

Eine Anfrage benötigt länger als drei Sekunden zur Verarbeitung. Es wird der sogenannte Operationscode und die Dauer der Verarbeitung in Sekunden ausgegeben.
Der Operationscode repräsentiert die zu Grunde liegende Datenbankoperation. Am Ende des Blog-Eintrags steht der gesamte Artikel, inklusive einer Aufstellung der wichtigsten Codes, zum Download zur Verfügung.

Eintrag in der Protokollatei:
User long request OP … time …

0x10 – Auftreten von Deadlocks

Das Auftreten von Verklemmungen (Deadlocks) wird festgehalten. Der Operationscode und der Baum, zu dem das gesperrte Segment gehört, wird in im Protokoll ausgegeben.

Eintrag in der Protokollatei:
User deadlock detected [OP … Tree … User …]

0x20 – Ausführen einer Prozedur auf dem CONZEPT 16-Server

Start- und Endezeitpunkt sowie Name der Prozedur wird protokolliert.

Eintrag in der Protokollatei:
Procedure start/end […]

0x100 – Größe des Datenvolumens und Dauer des Updates

Abgeschlossene Transaktionen werden alle 30 Sekunden in die Datenbank übertragen. Das Volumen und die Dauer, die für das Schreiben des Updates benötigt wurde, wird ausgegeben. Die Dauer lässt Rückschlüsse auf die I/O-Leistung des Systems zu.

Eintrag in der Protokollatei:
Database update time … seconds … MB

0x200 – Selektionen auf dem Server

Beim Ausführen einer Selektion auf dem Server wird der Startzeitpunkt und das Ende festgehalten. Zusätzlich wird der Name der Selektion, die dazugehörige Tabelle und das Resultat der Funktion SelRun() protokolliert.

Eintrag in der Protokollatei:
Selection start/end […/… result …]

Die Einträge erfolgen in der Protokolldatei der Datenbank und werden mit dem Debug-Symbol gekennzeichnet.

Download

Artikel mit Operationscodes DebugOptions.zip (6.97 KB)
Sie müssen angemeldet sein, um die Datei herunterladen zu können.
2 Kommentare

2 Kommentare “DebugOptions des CONZEPT 16-Servers”

Kommentar abgeben