Klasse debuggen

Die Fehlersuche bei komplexen Programmabläufen erfordert die schrittweise Abarbeitung des Programms und die Möglichkeit der Nachverfolgung der Ergebnisse einzelner Aufrufe. Java bietet die Möglichkeit, die Java Virtual Machine so zu betreiben, dass ein Debugging-Programm sich über eine Netzwerk-Ver­bind­ung ankoppelt und die Steuerung der Java Virtual Machine übernimmt. Dieses Vorgehen bietet den bestmöglichen Einblick in den Programmablauf, hat jedoch eine Nachteile:

  • Die Java Virtual Machine muss in einem speziellen Modus betrieben werden, was die allgemeine Performance beeinträchtigen kann.
  • Das Debugging-Programm benötigt eine schnelle Netzwerkverbindung zur Java Virtual Machine.
  • Die Schritte, die nach verfolgt werden können, sind sehr klein und die Analyse komplexer Abläufe erfordert viele manuelle Einzelschritte.
  • Die Fehleranalyse muss direkt durch einen Entwickler erfolgen, der ein Verständnis für das untersuchte Programm und das Debugging-Programm besitzt.

Um diesen Punkte zu begegnen, existiert in Comarch ERP Enterprise eine spezielle Debugging-Möglichkeit:

  • Instrumentierung ausgezeichneter Klassen für die Nutzung des Debugging-Mechanismus (Verwendung der Klasse cisag.pgm.util.Debug) durch den Anwendungsentwickler zur Entwicklungszeit.
  • Definition der Zeitpunkte, zu denen wesentliche Schritte komplexer Abläufe stattfinden und die Debugging-Meldung, die den Schritt und seine Parameter beschreibt durch den Anwendungsentwickler zur Entwicklungszeit.
  • Mechanismus, um die Protokollierung der Debugging-Meldungen einer Klasse oder eine Menge von Klassen während des Betriebs des Application-Servers ganz oder teilweise zu aktivieren bzw. zu deaktivieren.

Das Tool dient „dbgcls“ (debug class) zum Setzen der Debugging-Stufe einer Java-Klasse oder eines Namensraumes auf einem Application-Server. Durch das Setzen der Debugging-Stufe werden alle Debugging-Meldungen der Klasse, die maximal diese Stufe besitzen, auf der Konsole bzw. in der Log-Datei des Application-Servers protokolliert.

Beim der Setzen der Debugging-Stufe wird die Version der Klasse ausgegeben, die im Klassenpfad aktiv ist. Genauere Information zu den aktiven Klassen erhalten sie mit Hilfe des Tools „dspcls“ (display class).

Neben der Debugging-Meldungen besteht auch die Möglichkeit alle normalen Meldung zur Protokollieren. Eine detaillierte Beschreibung finden Sie in der Dokumentation  Message Manager debuggen „dbgmsgmgr“ (debug message manager).

1                  Zielgruppe

  • System-Administratoren
  • Technische Berater

2                  Begriffsbestimmung

ERP-System-Application-Server

Der ERP-System-Application-Server ist eine laufende Java Virtual Machine, welche die System-Engine ausführt. Die Definition der zum Start notwendigen Parameter (Name, Datenbankverbindungen, Basis-URL) erfolgt in der Systemkonfigurations-Datenbank.

3                  Beschreibung

Das Tool dient zum Setzen der Debugging-Stufe einer Java-Klasse oder eines Namensraumes auf einem Application-Server. Durch das Setzen der Debugging-Stufe werden alle Debugging-Meldungen der Klasse, die maximal diese Stufe besitzen, auf der Konsole bzw. in der Log-Datei des Application-Servers protokolliert. Für die Klassen wird beim Setzen auch die Version der Klasse ausgegeben, die im Klassenpfad aktiv ist.

3.1             Befehl

Nachfolgend finden Sie den Befehl inklusive aller möglichen Parameter.

dbgcls [-class:<text>] [-prefix:<str>] [-level:<vs>]

[-listLevels]

3.2             Parameter

Die Parameter des Befehls werden in der folgenden Tabelle erläutert. Die in eckigen Klammern gesetzten Parameter sind optional, die anderen hingegen sind Pflichtparameter. Für einige Parameter kann ein Stern (*) als Platzhalter angegeben werden, um damit alle möglichen Werte ausgeben zu können. Nicht alle Parameter können mehrfach genannt werden, nur die, die folgenden Zusatz an den Parametervariablen aufweisen, sind für die Mehrfachnennung zugelassen: „<str-1> … <str–n>“.

Parameter Erläuterung
[-class:<text>] Klasse, für die die Debugging-Stufe gesetzt werden soll.
[-prefix:<str>] Namensraum, für dessen Klassen und Unternamenräume die Debugging-Stufe gesetzt werden soll.
[-level:<vs>] Debugging-Stufe, die für die ausgewählte Klasse oder die ausgewählten Namensräume gesetzt werden. Der Standardwert ist 100 (Alle Debugging-Meldungen protokollieren).
[-listLevels] Alle Klassen und Namensräume auflisten, für eine Debug-Stufe gesetzt ist.

3.3             Berechtigungen

Das Berechtigungskonzept sowie die generellen anwendungsbezogenen und Entity-bezogenen Berechtigungen können Sie in der Technischen Dokumentation im Dokument Berechtigungen nachlesen.

Für dieses Tool existieren keine speziellen Berechtigungen.

3.4             Vorgehensweisen

3.4.1         Debugging für eine Klasse einschalten

dbgcls: –class:com.cisag.xyz.app.Class

3.4.2         Debugging für eine Klasse ausschalten

dbgcls: –class:com.cisag.xyz.app.Class –level:1

3.4.3         Alle Klassen mit aktivem Debugging auflisten

dbgcls: –listLevels

Czy ten artykuł był pomocny?