Konfiguration

Jede Aktion innerhalb des Werkzeugs kann über eine Konfigurationsgruppe aktiviert werden. Ist die Gruppe vorhanden, ist die Aktion und deren Knopf sichtbar. Fehlt die Gruppe wird die Aktion nicht angezeigt.

Die Konfiguration des Servers basiert auf unserem Konfigurationssystem. Im einfachsten Fall schreibst du deine Konfiguration in die Datei configuration.xml welche du im Verzeichnis der Anwendung platzierst. Die genauen Details zum Konfigurationssystem findest du im Kapitel Konfigurationssystem.

Schema der Konfiguration

Das folgende Schema zeigt die Struktur der Konfiguration:

Module

Application

Value

thankYouMessage

Optional

String

Default Value:

You are the best! Thank you for your valuable help!

Value

buttonColumns

Optional

Integer

  • Minimum value: 1

  • Maximum value: 3

Default Value:

3

Value

closeSelectionAfterTask

Optional

Boolean

Default Value:

Yes

Group

jstack

Optional

Value

jstackPath

String

  • Must be an existing file.

  • Must not be empty.

Value

jstackArguments

Optional

StringList

Default Value:

-l -e

Complex list definition

Value

name

String

  • Must not be empty.

  • Maximum length: 64

Default Value:

unknown

Value

taskTitle

Optional

String

  • Must not be empty.

  • Maximum length: 64

Value

processRegExp

String

  • Must not be empty.

  • Must be a valid regular expression.

Value

outputDirectory

String

  • Must not be empty.

  • Must be an existing directory.

Value

outputFilename

Optional

String

  • Must not be empty.

Default Value:

st_{time}_UTC_{application}_{host}_pid_{pid}.txt

Value

outputTimeFormat

Optional

String

  • Must not be empty.

Default Value:

yyyyMMdd_HHmmss

Value

reasonIntro

Optional

String

  • Must not be empty.

  • Maximum length: 120

Default Value:

Please select the reason why you started the stack trace tool:

List

reasons

Optional

Complex list definition

Value

title

String

  • Must not be empty.

  • Maximum length: 120

Value

code

String

  • Must not be empty.

  • Maximum length: 60

Value

noteOnSuccess

Optional

String

Value

noteOnFailure

Optional

String

Value

processListFormat

Optional

String

  • Must be one of this: Disabled, Raw, AsciiFrame, AsciiLines, UnicodeFrame, UnicodeLines

Default Value:

UnicodeFrame

Value

taskTitle

Optional

String

  • Must not be empty.

  • Maximum length: 64

Default Value:

Start JStack Trace

Value

applicationSelectionEnabled

Optional

Boolean

Default Value:

Yes

Value

applicationSelectionIntro

Optional

String

  • Must not be empty.

  • Maximum length: 1000

Default Value:

Please select the affected application:

Die Gruppe jstack

Ist die optionale Gruppe jstack vorhanden, wird die Aktion „Java Stack Trace Erzeugen“ angezeigt. Lässt du die Gruppe weg, ist die Aktion nicht verfügbar.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="processRegExp">^example.exe$</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
</Group>

Der Wert jstackPath

Mit dem Wert jstackPath konfigurierst du den absoluten Pfad zu dem jstack.exe Werkzeug aus dem Java SDK. Wichtig ist dabei, dass du das Werkzeug des selben SDKs wie die zu analysierende Software verwendest.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="processRegExp">^example.exe$</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
</Group>

Der Wert jstackArguments

Mit dem optionalen Wert jstackArguments gibst du zusätzliche Argumente an, welche beim Aufruf an jstack.exe übergeben werden. Lässt du diesen Wert weg, wird der Default -l -e verwendet.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="jstackArguments">-l</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">Example App</Value>
            <Value name="processRegExp">^(?:java|javaw|devenv)\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Die Liste applicationList

In der Liste applicationList definierst du eine oder mehrere Anwendungen für welche ein Stack Trace geschrieben werden soll. Für jede Anwendung wird ein neuer Startknopf im Startfenster erstellt.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="jstackArguments">-l</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">First</Value>
            <Value name="processRegExp">^(?:app1|app1-helper)\.exe$</Value>
        </ListEntry>
        <ListEntry>
            <Value name="name">Second</Value>
            <Value name="processRegExp">^second-app\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Der Wert name

Mit dem Wert name gibst du der Anwendung einen eindeutigen Namen. Dieser Name wird sowohl in der Ausgabedatei verwendet, im Titel der Fenster und du kannst ihn als Platzhalter für den Dateinamen verwenden.

Wähle hier einen kurzen prägnanten Namen, am besten ohne Leerzeichen. Jeder Eintrag in der Liste muss einen eindeutigen Namen haben.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="jstackArguments">-l</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">First</Value>
            <Value name="processRegExp">^(?:app1|app1-helper)\.exe$</Value>
        </ListEntry>
        <ListEntry>
            <Value name="name">Second</Value>
            <Value name="processRegExp">^second-app\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Der Wert taskTitle

Mit dem optionalen Wert taskTitle änderst du den Titel der auf den Startknöpfen und im Fenster für diese Anwendung angezeigt wird. Verwende hier einen möglichst kurzen Text und verzichte auf Sonderzeichen und Zeilenumbrüche.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="jstackArguments">-l</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">First</Value>
            <Value name="taskTitle">Create Stack Trace for First</Value>
            <Value name="processRegExp">^(?:app1|app1-helper)\.exe$</Value>
        </ListEntry>
        <ListEntry>
            <Value name="name">Second</Value>
            <Value name="processRegExp">^second-app\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Der Wert processRegExp

Mit dem Wert processRegExp konfigurierst du einen Regulären Ausdruck der die gewünschten Prozessnamen erkennt, welche erfasst werden sollen.

Wichtig ist hier, dass du den Ausdruck mit ^ und $ einschliesst falls er komplett erkannt werden soll. Ansonsten passen bereits Teilausdrücke auf den Dateinamen des Prozesses.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="jstackArguments">-l</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">First</Value>
            <Value name="processRegExp">^(?:app1|app1-helper)\.exe$</Value>
        </ListEntry>
        <ListEntry>
            <Value name="name">Second</Value>
            <Value name="processRegExp">^second-app\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Um einen einzelnen Prozessnamen zu erkennen, verwende beispielsweise ^example\.exe$. Dabei markiert das ^ Zeichen den Anfang und $ Zeichen das Ende des Textes. Damit muss example.exe zwischen dem Anfang und Ende des Textes liegen und nicht einfach ein Teil des Namens sein.

Der Punkt . hat eine spezielle Bedeutung und passt auf alle Zeichen. Markiere ihn daher mit einem Backslash (\.) damit an dieser Stelle auch wirklich ein Punkt erwartet wird.

Um mehrere verschiedene Prozessnamen zu erkennen, schliesst du diese in einen Auswahlblock ein: ^(?:first|second|last)\.exe$. Dieser Ausdruck funktioniert mit den Namen first.exe, second.exe und last.exe.

Der Wert outputDirectory

Mit dem Wert outputDirectory setzt den den absoluten Pfad zu dem Ausgabeverzeichnis in welches die Stack-Traces geschrieben werden sollen. Dieses Verzeichnis muss vor dem Start des Werkzeugs existieren.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">Example App</Value>
            <Value name="processRegExp">^(?:java|javaw|devenv)\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Der Wert outputFilename

Mit dem optionalen Wert outputFilename kannst du den Dateinamen ändern, welcher für die Stack-Traces verwendet wird. Dabei kannst du folgende Platzhalter verwenden:

  • {pid} fügt den Prozess Identifier ein.

  • {host} fügt den Computername ein, auf dem der Prozess läuft.

  • {time} fügt den Zeitstempel ein.

Lässt du den Wert weg, wird der Default st_{time}_UTC_{host}_pid_{pid}.txt verwendet. Allfällige Sonderzeichen im Dateinamen, wie /:*?<>, werden durch Unterstriche ersetzt.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <Value name="outputFilename">example_{host}_{pid}_{time}.txt</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">Example App</Value>
            <Value name="processRegExp">^(?:java|javaw|devenv)\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Der Wert outputTimeFormat

Mit dem optionalen Wert outputTimeFormat änderst du das Zeitformat welches mit dem Platzhalter {time} eingefügt wird. Lässt du diesen Wert weg, wird der Default yyyyMMdd_HHmmss verwendet.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <Value name="outputFilename">example_{host}_{pid}_{time}.txt</Value>
    <Value name="outputTimeFormat">yyyy-MM-dd_HH-mm-ss</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">Example App</Value>
            <Value name="processRegExp">^(?:java|javaw|devenv)\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Der Zeitstempel wird immer in UTC geschrieben. Für das Zeitformat kannst du folgende Platzhalter verwenden:

Ausdruck

Bedeutung

d

Der Tag als Zahl ohne führende Null (1-31).

dd

Der Tag als Zahl mit führendem Null (01-31).

ddd

Der abgekürzte übersetzte Tagesname (Beispielsweise „Mon“ bis „Sun“).

dddd

Der übersetzte Tagesname (Beispielsweise „Monday“ bis „Sunday“).

M

Der Monat als Zahl ohne führende Null (1-12).

MM

Der Monat als Zahl mit führender Null (01-12).

MMM

Der abgekürzte übersetzte Monatsname (Beispielsweise „Jan“ bis „Dec“).

MMMM

Der übersetzte Monatsname (Beispielsweise „January“ bis „December“).

yy

Das Jahr mit zwei Ziffern (00-99).

yyyy

Das Jahr mit vier Ziffern (0000-9999).

h

Die Stunde ohne führende Null (0-23 oder 1-12 bei der AM/PM Anzeige).

hh

Die Stunde mit einer führenden Null (00-23 oder 01-12 bei der AM/PM Anzeige).

H

Die Stunden ohne führende Null (0-23, auch bei der AM/PM Anzeige).

HH

Die Stunde mit einer führenden Null (00-23, auch bei der AM/PM Anzeige).

m

Die Minute ohne führende Null (0-59).

mm

Die Minute mit führender Null (00-59).

s

Die Sekunde ohne führende Null (0-59).

ss

Die Sekunde mit führender Null (00-59).

z

Die anzahl Millisekunden ohne führende Nulls (0-999).

zzz

Die anzahl Millisekunden mit führenden Nulls (000-999).

AP oder A

Die AM/PM Anzeige mit Grossbuchstaben, stellt das Format von h und hh um.

ap oder a

Die am/pm Anzeige mit Kleinbuchstaben, stellt das Format von h und hh um.

Der Wert reasonIntro

Mit dem optionalen Wert reasonIntro änderst du den Text, der vor der Auswahl von den Gründen für den Aufruf des Werkzeugs angezeigt wird. Halte diesen Text kurz.

Lässt du diesen Wert weg, wird der Default „Please select the reason why you started the stack trace tool:“ verwendet.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <Value name="reasonIntro">Please select the reason:</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">Example App</Value>
            <Value name="processRegExp">^(?:java|javaw|devenv)\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Die Liste reasons

Mit der optionalen Liste reasons aktivierst du ein Auswahlfenster, welches den Benutzer nach dem Grund für den Aufruf des Werkzeugs fragt. Dabei kann er eine der Optionen in dieser Liste auswählen. Bricht er die Auswahl ab, wird auch kein Stack Trace erstellt. Der gewählte code und text wird zusammen mit dem Stack Trace in die Textdatei geschrieben.

Die Optionen werden genau in der Reihenfolge im Fenster angezeigt, wie du diese Konfigurierst. Lässt du diese Liste weg, oder ist sie leer, wird das Fenster mit der Auswahl nicht angezeigt.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">Example App</Value>
            <Value name="processRegExp">^(?:java|javaw|devenv)\.exe$</Value>
        </ListEntry>
    </List>
    <List name="reasons">
        <ListEntry>
            <Value name="title">Application is unresponsive</Value>
            <Value name="code">unresponsive</Value>
        </ListEntry>
        <ListEntry>
            <Value name="title">Application is slow</Value>
            <Value name="code">slow</Value>
        </ListEntry>
        <ListEntry>
            <Value name="title">Application does not react on input</Value>
            <Value name="code">no-input-possible</Value>
        </ListEntry>
        <ListEntry>
            <Value name="title">Application display is not updated</Value>
            <Value name="code">ui-not-updated</Value>
        </ListEntry>
        <ListEntry>
            <Value name="title">A function or action does not work as expected</Value>
            <Value name="code">unexpected-behaviour</Value>
        </ListEntry>
        <ListEntry>
            <Value name="title">Something else</Value>
            <Value name="code">something-else</Value>
        </ListEntry>
    </List>
</Group>

Der Wert title

Mit dem Wert title konfigurierst du den Text, der dem Benutzer zur Auswahl angezeigt wird. Halte diesen Text kurz.

Der Wert code

Mit dem Wert code konfigurierst du einen Maschinenlesbaren Code für die Auswahl des Benutzers. Dieser Code wird zusammen mit dem ausgewählten Text in die Datei mit dem Stack Trace geschrieben. Du kannst den selben Code auch mehrfach für verschiedene Optionen verwenden.

Der Wert noteOnSuccess

Mit dem optionalen Wert noteOnSuccess zeigst du dem Benutzer eine Notiz an, falls der Stack Trace erfolgreich geschrieben wurde. Diese Notiz wird farblich hervorgehoben und kann ein limitiertes Set von HTML Tags enthalten. Lässt du diesen Wert weg, wird keine Notiz angezeigt.

Um HTML Tags in dem Text zu verwenden, solltest du den Inhalt des Werts mit <![CDATA[ und >\\> Klammern einschliessen. Sonst werden die HTML Tags als Teil des XML Dokuments interpretiert. Verwendest du kein HTML, solltest du trotzdem die Zeichen <>& als &lt;, &gt; und &amp; schreiben.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <Value name="noteOnSuccess"><![CDATA[
        ☞ Please enter the problem into the following Excel sheet: <a href="file://server/share/file.xls">Open Excel Sheet</a>.
    ]]></Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">Example App</Value>
            <Value name="processRegExp">^(?:java|javaw|devenv)\.exe$</Value>
        </ListEntry>
    </List>
</Group>

HTML Tags

Du findest alle unterstützten HTML Tags in der folgenden Liste, die Darstellung entspricht jedoch nicht der Komplexität einer HTML Seite. Denke auch daran, dass die Notiz nicht zu gross werden darf.

Tag

Beschreibung

Details

a

Link

Unterstützt das href und name Attribut.

address

Adresse

b/strong

Fetter Text

big

Grösserer Text

blockquote

Eingerückter Abschnitt

br

Zeilenumbruch

center

Zentrierter Abschnitt

div

Dokument Block

Definiert einen Block im Dokument. Akzeptiert die typischen Blockattribute.

dl/dt/dd

Definitionsliste

font

Definiert den Font

Unterstützt die Attribute: size, face, und color.

h1-h6

Überschrift

hr

Horizontale Linie

Unterstützt das width Attribut.

i/em
cite
var/dfn

Kursive Schrift

kbd

Benutzereingabe

nobr

Text ohne Zeilenumbruch

ol/li

Nummerierte Liste

p

Abschnitt

pre

Formatierter Text

s

Durchgestrichener Text

small

Kleinere Schrift

span

Formatierter Bereich

sub

Subscript

sup

Superscript

table
tr/td/th
tbody/thead
tfoot

Tabelle

Unterstützt die folgenden Attribute: border, bgcolor, cellspacing, cellpadding, width, und height.

tt/code
samp

Blockschrift

u

Unterstrichener Text

ul

Unsortierte Liste

Der Wert noteOnFailure

Mit dem optionalen Wert noteOnFailure zeigst du dem Benutzer eine Notiz an, falls Probleme beim Erstellen des Stack Traces aufgetreten sind. Ansonsten verhält sich dieser Wert wie noteOnSuccess.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <Value name="noteOnFailure"><![CDATA[
        Please report this error to the support team!
    ]]></Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">Example App</Value>
            <Value name="processRegExp">^(?:java|javaw|devenv)\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Der Wert processListFormat

Mit dem optionalen Wert steuerst du, wie die Prozessliste in die Ausgabedatei geschrieben wird. Lässt du den Wert weg, wird das Format UnicodeFrame verwendet.

Mögliche Werte sind:

Wert

Bedeutung

Disabled

Deaktiviert die Ausgabe der Prozessliste

Raw

Gibt die Rohdaten in einem Semikolon getrennten Format aus. Dabei sind die CPU-Zeiten in Millisekunden und die Speicherwerte in Bytes.

AsciiFrame

Gibt die Daten in einer ASCII kompatiblen Tabelle aus.

AsciiLines

Gibt die Daten in einer ASCII kompatiblen Tabelle aus.

UnicodeFrame

Gibt die Daten in einer Unicode kompatiblen Tabelle aus.

UnicodeLines

Gibt die Daten in einer Unicode kompatiblen Tabelle aus.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <Value name="processListFormat">UnicodeFrame</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">Example App</Value>
            <Value name="processRegExp">^(?:java|javaw|devenv)\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Der Wert taskTitle

Mit dem optionalen Wert taskTitle änderst du den Titel des Tasks, falls die Option applicationSelectionEnabled aktiviert ist. Der Titel wird auf dem Startknopf sowie im Fenstertitel angezeigt.

Lässt du den Wert weg, wird der Default Start JStack Trace verwendet.

Siehe auch Alternative Startoptionen für mehrere Anwendungen.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <Value name="taskTitle">Java Stack Trace</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">Example App</Value>
            <Value name="processRegExp">^(?:java|javaw|devenv)\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Der Wert applicationSelectionEnabled

Mit dem optionalen Wert applicationSelectionEnabled konfigurierst du, wie mehrere Anwendungen ausgewählt werden. Lässt du den Wert weg oder setzt ihn auf Yes, wird beim Start in einem Fenster nach der betroffenen Anwendung gefragt. Setzt du diesen Wert auf No wird ein Startknopf für jede Anwendung erstellt.

Siehe auch Alternative Startoptionen für mehrere Anwendungen.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <Value name="applicationSelectionEnabled">No</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">First App</Value>
            <Value name="processRegExp">^example\.exe$</Value>
        </ListEntry>
        <ListEntry>
            <Value name="name">Second App</Value>
            <Value name="processRegExp">^foo\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Der Wert applicationSelectionIntro

Mit dem optionalen Wert applicationSelectionIntro änderst du den Text, der vor der Auswahl der Anwendung angezeigt wird. Dieser text ist nur sichtbar wenn der Wert applicationSelectionEnabled auf Yes gesetzt ist. Lässt du diesen Wert weg, wird der Default „Please select the affected application“ verwendet.

Siehe auch Alternative Startoptionen für mehrere Anwendungen.

<Group name="jstack">
    <Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
    <Value name="outputDirectory">E:\Test\StackTraces</Value>
    <Value name="applicationSelectionEnabled">Yes</Value>
    <Value name="applicationSelectionIntro">Select the application which caused the issue:</Value>
    <List name="applicationList">
        <ListEntry>
            <Value name="name">First App</Value>
            <Value name="processRegExp">^example\.exe$</Value>
        </ListEntry>
        <ListEntry>
            <Value name="name">Second App</Value>
            <Value name="processRegExp">^foo\.exe$</Value>
        </ListEntry>
    </List>
</Group>

Der Wert thankYouMessage

Mit dem optionalen Wert thankYouMessage passt du die Nachricht an, welche dem Benutzer angezeigt wird um sich bei ihm für seine Mithilfe zu bedanken. Konfigurierst du diesen Wert, aber ohne Inhalt, wird die Nachricht deaktiviert.

Lässt du den Wert weg, wird der Default „You are the best! Thank you for your valuable help!“ verwendet.

Der Wert buttonColumns

Mit dem optionalen Wert buttonColumns änderst du in wie vielen Spalten die Knöpfe im Startfenster angezeigt werden. Lässt du den Wert weg, wird der Default von drei Spalten verwendet.

Der Wert closeSelectionAfterTask

Mit dem optionalen Wert closeSelectionAfterTask konfigurierst du, ob das Hauptfenster geschlossen werden soll, nachdem der Benutzer ein Task gestartet hat.

Lässt du diesen Wert weg oder setzt ihn auf Yes, wird das Fenster nach dem Start des Tasks geschlossen. Setzt du diesen Wert aug No bleibt das Fenster mit den Task-Knöpfen offen.

Beispielkonfiguration

Die folgende Beispielkonfiguration aktiviert und konfiguriert die Aktion jstack und schreibt eine Logdatei jeder gemachten Aktion.

<?xml version="1.0" encoding="UTF-8" ?>
<Configuration
	version="1"
	xmlns="http://educateit.ch/software/BlueStone/Configuration/1"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

	<Module name="Application">
		<Group name="jstack">
			<Value name="jstackPath">c:\Program Files\Java\jdk-17.0.2\bin\jstack.exe</Value>
			<Value name="processRegExp">^example.exe$</Value>
			<Value name="outputDirectory">E:\Test\StackTraces</Value>
			<List name="applicationList">
				<ListEntry>
					<Value name="name">Example App</Value>
					<Value name="processRegExp">^(?:java|javaw|devenv)\.exe$</Value>
				</ListEntry>
			</List>
			<List name="reasons">
				<ListEntry>
					<Value name="title">Application is unresponsive</Value>
					<Value name="code">unresponsive</Value>
				</ListEntry>
				<ListEntry>
					<Value name="title">Application is slow</Value>
					<Value name="code">slow</Value>
				</ListEntry>
				<ListEntry>
					<Value name="title">Application does not react on input</Value>
					<Value name="code">no-input-possible</Value>
				</ListEntry>
				<ListEntry>
					<Value name="title">Application display is not updated</Value>
					<Value name="code">ui-not-updated</Value>
				</ListEntry>
				<ListEntry>
					<Value name="title">A function or action does not work as expected</Value>
					<Value name="code">unexpected-behaviour</Value>
				</ListEntry>
				<ListEntry>
					<Value name="title">Something else</Value>
					<Value name="code">something-else</Value>
				</ListEntry>
			</List>
			<Value name="noteOnSuccess"><![CDATA[
				☞ Please enter the problem into the following Excel sheet: <a href="file://server/share/file.xls">Open Excel Sheet</a>.
			]]></Value>
		</Group>
	</Module>

	<Module name="Log">
		<List name="FileWriter">
			<ListEntry>
				<Value name="LogFilePath">E:\Test\Logs\QuickUserTasks.log</Value>
				<Value name="Rotation">Daily</Value>
			</ListEntry>
		</List>
	</Module>

</Configuration>