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-Verbindung 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
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