Skip to main content
Skip table of contents

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:

  1. 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-DateiBeschreibung
    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. 




  2. 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

    1. Erstellen Sie im Ordner <Serververzeichnis>/configurations die Datei sql_profiling_config.xml.

    2. 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>

    3. 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 Element CheckoutTimeout 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/#configuration

    • Ganzzahl

    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 in KeepLogs 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

    1. Entpacken Sie die ZIP-Datei mit dem Plugin.

    2. Kopieren Sie den Ordner sql-profiling in den Ordner de\softproject\x4\plugins\.

    3. Öffnen Sie die Datei module.xml im Ordner <Serververzeichnis>\wildfly\modules\de\softproject\x4\plugins\sql-profiling\main.

    4. Kopieren Sie den in Zeile 2 angegebenen Plugin-Namen:

      image-20240606-132424.png

    5. Öffnen Sie die Datei module.xml im Ordner <Serververzeichnis>\wildfly\modules\de\softproject\extensions\main.

    6. 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:

      image-20240606-132715.png

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













JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.