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 Protokolldatei:
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 Protokolldatei:
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 Protokolldatei:
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 Protokolldatei:
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 Protokolldatei:
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 Protokolldatei:
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 Antworten

  1. @Th.Eichele
    Alle Optionen werden hexadezimal angegeben und zur Kombination auch hexadezimal addiert. Der Datenbankserver erwartet in der Datenraumtabelle ebenfalls einen hexadezimalen Wert.

  2. Ist der Eintrag in DebugOptions ebenfalls als Hex-Wert einzutragen oder in Dezimal umzurechnen ?
    (und wenn Dezimal, was bedeuten im Beispiel 120=0x78 die Werte 0x08 und 0x40 ?)

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Leave the field below empty!

Get your Trial Version now!

Test yeet free of charge

Deine Trial Version - jetzt anfordern!

Teste yeet - unverbindlich und kostenfrei

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

Anrede*
     
Zustimmung zur Datenverarbeitung gem. DSGVO*



WordPress Cookie-Hinweis von Real Cookie Banner