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 Beispiel:
|
|
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
Hinweis:
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 im Download-Bereich der SoftProject-Website (SoftProject | Software X4 BPMS) auf der Registerkarte X4 Add-ons anfragen.
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.
Hinweis:
Wenn Sie das SQL Profiling aktivieren, wird das standardmäßige Profiling im Arbeitsspeicher nicht mehr verwendet.
So installieren Sie das Plugin
-
Entpacken Sie die ZIP-Datei mit dem Plugin.
-
Kopieren Sie die Ordner
deundprivatein den Ordner<Serververzeichnis>\wildfly\modules.
Hinweis:
Die in diesem Verzeichnis vorhandenen Ordner de und private werden durch den Kopiervorgang überschrieben. Das ist das gewünschte Verhalten.
-
Öffnen Sie die Datei
module.xmlim 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.xmlim Ordner<Serververzeichnis>\wildfly\modules\de\softproject\plugins\main. -
Fügen Sie in der Datei
module.xmlinnerhalb des Elements<dependencies>folgende Zeile hinzu:XML<module name="de.softproject.x4.plugins.sql-profiling" export="true" optional="false"/>Die Datei sollte wie folgt aussehen:
-
Starten Sie den X4 Server neu.
Nach dem Neustart des X4 Servers steht Ihnen das Plugin zur Verfügung.
So konfigurieren Sie das SQL Profiling
-
Erstellen Sie im Ordner
<Serververzeichnis>/configurationsdie Dateisql_profiling_config.xml. -
Fügen Sie den folgenden Inhalt ein.
XML<?xml version="1.0"?> <Configuration> <DatabaseConfiguration> <ConnectionString>JDBC-CONNECTION</ConnectionString> <!--OPTIONAL--> <JndiDatasource>java:/X4TEST_DS</JndiDatasource> <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.xmlein.
Konfiguration der Datenbank
Database Configuration
|
Element |
Beschreibung |
Mögliche Werte |
|---|---|---|
|
|
Wrapper für die Datenbankverbindung |
|
|
|
JDBC-Verbindungszeichenfolge zur Verbindung mit der Datenbank Weitere Einzelheiten finden Sie in der offiziellen JDBC-Datenbank-Dokumentation.
|
|
|
|
Name der JNDI-Datasource, die für den Aufbau der Datenbankverbindung verwendet werden soll. Die JNDI-Datasource wird direkt in der Hinweis:
Weitere Informationen zum Einrichten einer JNDI-Datasource finden Sie in der WildFly-Dokumentation. |
|
|
|
Benutzername für die Anmeldung bei der Datenbank |
|
|
|
Passwort für die Anmeldung bei der Datenbank |
|
|
|
Maximale Poolgröße des Verbindungspools. Empfohlener Wert: 15 |
|
|
|
Minimale Poolgröße des Verbindungspools. |
|
|
|
Initiale Größe des Verbindungspools. Empfohlener Wert: 8 |
|
|
|
Zusätzliche Einstellungen für den zugrunde liegenden Verbindungspool.
Weitere Informationen siehe:
|
|
|
|
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:
|
|
|
Legt fest, wie lange Einträge gespeichert werden, bevor diese automatisch bereinigt werden. |
Das Element enthält folgende Elemente:
|
|
|
Legt fest, wie lange Einträge für abgestürzte Prozesse gespeichert werden, bevor diese automatisch bereinigt werden. Abgestürzte Prozesse werden vom Element
|
Das Element enthält folgende Elemente:
|
|
|
Legt fest, in welchen Zyklen die automatische Bereinigung durchgeführt wird. |
Das Element enthält folgende Elemente:
|
|
|
Löscht Protokolle auf schnellere Weise. Wenn dies aktiviert ist, hat die Konfiguration Mögliche Werte:
|
|
|
|
Definiert, welche Prozessschritte geloggt werden. Mögliche Werte:
Mit
|
|
WriteCycleTime
|
Element |
Beschreibung |
Mögliche Werte |
|---|---|---|
|
|
Zeitraum, in dem die zwischengespeicherten Profiling-Daten in die Datenbank geschrieben werden |
|
|
|
Einheit des Zeitraums |
|
KeepLogs
|
Element |
Beschreibung |
Mögliche Werte |
|---|---|---|
|
|
Zeitraum, wie lange die Profiling-Daten in der Datenbank aufbewahrt werden sollen |
|
|
|
Einheit des Zeitraums |
|
KeepCrashedProcessLogs
|
Element |
Beschreibung |
Mögliche Werte |
|---|---|---|
|
|
Zeitraum, wie lange die Profiling-Daten über abgestürzte Prozesse in der Datenbank aufbewahrt werden sollen |
|
|
|
Einheit des Zeitraums |
|
RunCleanUp
|
Element |
Beschreibung |
Mögliche Werte |
|---|---|---|
|
|
Zeitraum, nach dem die automatische Bereinigung die Prozessprotokolle löschen wird |
|
|
|
Einheit des Zeitraums |
|
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.