Profiling
Standardmäßig werden alle Ausführungsinformationen der Prozesse über ein Profiling protokolliert. Wenn Sie nicht möchten, dass diese Protokollierung standardmäßig erfolgt, können Sie in Ihrem Projekt eine Profiling-Datei (.profiling
) hinzufügen, in der Sie das Profiling konfigurieren. Sie können z. B. bestimmte Prozesse aus dem Profiling ausschließen.
Weitere Informationen zum Anlegen und Konfigurieren einer Profiling-Datei im X4 Designer finden Sie unter Prozessmonitoring.
Es gibt zwei Methoden zum Ablegen von Profiling-Informationen:
Profiling mit In-Memory-Persistenz
Bei dieser Profiling-Methode werden die Profiling-Informationen mit einer In-Memory-Persistenz vorgehalten. Das heißt, dass mit dem Herunterfahren des X4 Servers alle Informationen verloren gehen. Wenn kein Speicherplatz mehr verfügbar ist, werden die ältesten Einträge automatisch gelöscht.
Wenn Sie sich für diese Profiling-Methode entscheiden, werden alle Profiling-Informationen in Log-Dateien abgelegt. Es gibt folgende Arten von Log-Dateien:Log-Datei Beschreibung X4 Server Log Diese Log-Datei befindet sich standardmäßig in der Serverkonsole.
Der Substring mit
debug mode <false|true>
muss für jede Prozessausführung angezeigt werden.Beispiel:
11:41:46,796 INFO [X4-Profiling] (pool-43-thread-1) Process "1/ProfilerAdapterSprintReview/Processes/ProcessInformation.wrf" with PID 3cb216e3-0b44-4e1f-92c4-b0431755ed82 finished, with debug mode 1, with status false after 5011ms
X4-Profiling-Log-Datei auf dem Dateisystem Diese Log-Datei befindet sich im Dateisystem im Ordner wildfly\standalone\log\profiling.log und kann als Fallback verwendet werden, falls das Server Log ausfällt.
Um diese Log-Datei zu aktivieren, müssen Sie den Konfigurationsblock in den Zeilen 90 bis 136 in der Datei standalone.xml im Ordner wildfly\standalone\configuration\ auskommentieren.
Bei einem Neustart des Servers werden die neuesten Informationen aus den Log-Dateien wieder in den Speicher geladen, das In-Memory-Profiling der neuesten Prozesse ist somit immer vorhanden und zugänglich.
Profiling mit dem SQL Profiling-Plugin
In Verbindung mit der App Process Monitor ist das Profiling über das SQL Profiling-Plugin die empfohlene Profiling-Methode für Anwendungsfälle mit einer großen Anzahl an Prozessen, d. h. einer hohen Serverauslastung.
Hinweis:
Sie können das SQL Profiling-Plugin auf der SoftProject-Website unter Ressourcen > Ressourcen > Software X4 BPMS bei unserem Support-Team anfragen. Gehen Sie zu X4 BPMS 7.4.1, und wählen Sie auf der Registerkarte X4 Plugins die Schaltfläche Anfragen neben der Plugin-Beschreibung aus.
Das SQL Profiling-Plugin wird verwendet, um Profiling-Daten in eine relationale SQL-Datenbank zu speichern. Dazu müssen Sie das SQL Profiling-Plugin mit einer relationalen SQL-Datenbank verbinden. Das Plugin muss in der Datei
module.xml
im Ordner<Serververzeichnis>\wildfly\modules\de\softproject\plugins\main
aktiviert werden.Der erste Start des Profilings muss von einem Datenbankbenutzer ausgeführt werden, der über die Berechtigung zum Erstellen von Datenbanktabellen verfügt. Wenn alle erforderlichen Tabellen erstellt wurden, kann auf einen Benutzer mit weniger Berechtigungen umgestellt werden.
Wenn Sie das SQL Profiling aktivieren, wird das standardmäßige Profiling im Arbeitsspeicher nicht mehr verwendet.
So konfigurieren Sie das SQL Profiling
Erstellen Sie im Ordner
<Serververzeichnis>/configurations
die Dateisql_profiling_config.xml
.Fügen Sie den folgenden Inhalt ein.
XML<?xml version="1.0"?> <Configuration> <DatabaseConfiguration> <ConnectionString>JDBC-CONNECTION</ConnectionString> <UserName>USERNAME</UserName> <Password>PASSWORD</Password> <MaxPoolSize>36</MaxPoolSize> <MinPoolSize>8</MinPoolSize> <InitialPoolSize>24</InitialPoolSize> <!--OPTIONAL--> <AdditionalConnectionPoolConfig> <CheckoutTimeout>20000</CheckoutTimeout> </AdditionalConnectionPoolConfig> </DatabaseConfiguration> <WriteCycleTime> <Duration>10</Duration> <TimeUnit>SECONDS</TimeUnit> </WriteCycleTime> <KeepLogs> <Duration>100</Duration> <TimeUnit>DAYS</TimeUnit> </KeepLogs> <KeepCrashedProcessLogs> <Duration>100</Duration> <TimeUnit>DAYS</TimeUnit> </KeepCrashedProcessLogs> <RunCleanUp> <Duration>240</Duration> <TimeUnit>MINUTES</TimeUnit> </RunCleanUp> <FastDeleteEnabled>true</FastDeleteEnabled> <GlobalStepLogging>ALL</GlobalStepLogging> </Configuration>
Tragen Sie die benötigten Werte in die Datei
sql_profiling_config.xml
ein.
Konfiguration der Datenbank
Database Configuration
Element
Beschreibung
Mögliche Werte
DatabaseConfiguration
Wrapper für die Datenbankverbindung
ConnectionString
JDBC-Verbindungszeichenfolge zur Verbindung mit der Datenbank
Weitere Einzelheiten finden Sie in der offiziellen JDBC-Datenbank-Dokumentation.
Verbindungs-URL für die JDBC-Datenbank
UserName
Benutzername für die Anmeldung bei der Datenbank
Beliebiger String
Password
Passwort für die Anmeldung bei der Datenbank
Beliebiger String
MaxPoolSize
Maximale Poolgröße des Verbindungspools.
Empfohlener Wert: 15
Ganzzahl
MinPoolSize
Minimale Poolgröße des Verbindungspools.
Ganzzahl
InitialPoolSize
Initiale Größe des Verbindungspools.
Empfohlener Wert: 8
Ganzzahl
AdditionalConnectionPoolConfig
Zusätzliche Einstellungen für den zugrunde liegenden Verbindungspool.
Das ElementCheckoutTimeout
begrenzt, wie lange ein Client auf eine Verbindung wartet, in Millisekunden.0
ist die Standardeinstellung und bedeutet, dass der Client unendlich lange auf eine Verbindung wartet.Weitere Informationen siehe: https://
https://www.mchange.com/projects/c3p0/#configurationGanzzahl
WriteCycleTime
Legt fest, in welchen Zyklen die Daten in die SQL-Datenbank geschrieben werden.
Daten werden nur zum gewählten Schreibzyklus (WriteCycle) in die Datenbank geschrieben. Stürzt der Server innerhalb des Zyklus ab, sind die ungeschriebenen Daten verloren.
Das Element enthält folgende Elemente:
Duration
TimeUnit
KeepLogs
Legt fest, wie lange Einträge gespeichert werden, bevor diese automatisch bereinigt werden.
Das Element enthält folgende Elemente:
Duration
TimeUnit
KeepCrashedProcessLogs
Legt fest, wie lange Einträge für abgestürzte Prozesse gespeichert werden, bevor diese automatisch bereinigt werden.
Abgestürzte Prozesse werden vom Element
KeepLogs
nicht erfasst.Das Element enthält folgende Elemente:
Duration
TimeUnit
RunCleanUp
Legt fest, in welchen Zyklen die automatische Bereinigung durchgeführt wird.
Das Element enthält folgende Elemente:
Duration
TimeUnit
FastDeleteEnabled
Löscht Protokolle auf schnellere Weise.
Wenn dies aktiviert ist, hat die Konfiguration
KeepCrashedProcessLogs
keine Wirkung. Jedes Prozessprotokoll, das älter als der inKeepLogs
definierte Zeitraum ist, wird gelöscht, unabhängig davon, ob der Prozess abgestürzt ist oder nicht.Mögliche Werte:
true
(Standard)false
GlobalStepLogging
Definiert, welche Prozessschritte geloggt werden.
Mögliche Werte:
ALL
: Alle Prozessschritte werden protokolliert.NONE
: Keine Prozessschritte werden protokolliert.ERROR_ONLY
: Protokolliert Prozessschritte, die mit einem Fehlerstatus beendet wurden.
Mit
ERROR_ONLY
, werden auch Schritte protokolliert, die mit negativen Statuswert beendet wurden.WriteCycleTime
Element
Beschreibung
Mögliche Werte
Duration
Zeitraum, in dem die zwischengespeicherten Profiling-Daten in die Datenbank geschrieben werden
Ganzzahl
TimeUnit
Einheit des Zeitraums
SECONDS
MINUTES
HOURS
DAYS
KeepLogs
Element
Beschreibung
Mögliche Werte
Duration
Zeitraum, wie lange die Profiling-Daten in der Datenbank aufbewahrt werden sollen
Ganzzahl
TimeUnit
Einheit des Zeitraums
SECONDS
MINUTES
HOURS
DAYS
KeepCrashedProcessLogs
Element
Beschreibung
Mögliche Werte
Duration
Zeitraum, wie lange die Profiling-Daten über abgestürzte Prozesse in der Datenbank aufbewahrt werden sollen
Ganzzahl
TimeUnit
Einheit des Zeitraums
SECONDS
MINUTES
HOURS
DAYS
RunCleanUp
Element
Beschreibung
Mögliche Werte
Duration
Zeitraum, nach dem die automatische Bereinigung die Prozessprotokolle löschen wird
Ganzzahl
TimeUnit
Einheit des Zeitraums
SECONDS
MINUTES
HOURS
DAYS
So installieren Sie das Plugin
Entpacken Sie die ZIP-Datei mit dem Plugin.
Kopieren Sie den Ordner
sql-profiling
in den Ordnerde\softproject\x4\plugins\
.Öffnen Sie die Datei
module.xml
im Ordner<Serververzeichnis>\wildfly\modules\de\softproject\x4\plugins\sql-profiling\main
.Kopieren Sie den in Zeile 2 angegebenen Plugin-Namen:
Öffnen Sie die Datei
module.xml
im Ordner<Serververzeichnis>\wildfly\modules\de\softproject\extensions\main
.Fügen Sie in der Datei
module.xml
folgende Zeile hinzu:<module name="de.softproject.x4.plugins.sql-profiling" export="true"/>
Die Datei sollte folgendermaßen aufgebaut sein:
Starten Sie den X4 Server neu.
Nach dem Neustart des X4 Servers steht Ihnen das Plugin zur Verfügung.
Hinweis:
Der Zugriff auf die in der Process Monitor App angezeigten Profiling-Informationen kann auch über eine API erfolgen.
Dazu können Sie den Adapter Process Profiler für einen Prozess verwenden, um alle Laufzeitinformationen für einen Prozess oder eine Prozessinstanz abzurufen und in eigene Anwendungen einzubinden.
Alternativ können Sie das X4 API über localhost:8080 aufrufen und im Abschnitt Profiling Management die Profiling-Informationen zur Laufzeit verwalten.
Das heißt: Sie können das Profiling zur Laufzeit aktivieren, ohne auf das X4 BPMS-Projekt selbst zuzugreifen. Das ist z. B. hilfreich, wenn ein Prozess vorhanden ist, für den das Profiling ausgeschaltet ist und Sie Informationen über diesen Prozess benötigen.