INUBIT in der Datei ibis.xml konfigurieren
Konfigurationsdatei
<inubit-installdir>/inubit/server/ibis_root/conf/ibis.xml
<Properties version="4.1">
<Property name="LocalMaintenanceMode" type="Boolean">false</Property>
<Property name="Database" type="Map">
<Property name="driverClass">org.h2.Driver</Property>
<Property name="jdbcUrl">jdbc:h2:${ibis.root.directory}/ibis_data/database/ibis;MVCC=TRUE</Property>
<!-- Encrypted password and/or user name
To get your encrypted password and/or user name use the CLI client.
Example:
cd path/to/inubit_installation/server/process_engine/bin
./startcli.sh -\-encryptString myPassword
Insert the encrypted password and/or user name as values into the corresponding property tags and set the
attribute encrypted="false" to encrypted="true".
Example:
<Property name="user" type="EncryptedString" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
<Property name="password" type="Password" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
-->
<Property name="user" type="EncryptedString" encrypted="false">sa</Property>
<Property name="password" type="Password" encrypted="false"></Property>
<Property name="socketTimeoutInMillisecs" type="Long">180000</Property>
<Property name="checkoutTimeoutInMillisecs" type="Long">120000</Property>
<Property name="driverProperties" type="Map"/>
<Property name="minPoolSize" type="Integer">5</Property>
<Property name="maxPoolSize" type="Integer">30</Property>
</Property>
<Property name="DataSourceLocation">java:/comp/env/jdbc/IBISDB</Property>
<Property name="RuntimeDataBackupStore">FILE</Property>
<Property name="RuntimeDataCacheXMXPercentage" type="Integer">25</Property>
<!-- Retry happens based on number of retries configured below -->
<Property name="noOfRetries" type="Integer">3</Property>
<!-- Retry interval value should be given in milliseconds-->
<Property name="retryInterval" type="Long">2000</Property>
<Property name="MaxEntriesInMemoryLimit" type="Map">
<Property name="Workflow_Data_Version" type="Integer">-1</Property>
<Property name="Module_Data_Version" type="Integer">-1</Property>
</Property>
<Property name="indexEnabled" type="Boolean">false</Property>
</Properties>
Datenbank in der Datei ibis.xml konfigurieren
Verwendung
Setzen der Parameter für den Datenbankzugriff
Properties
Property-Typ
type=Map
Mögliche Werte
-
Map
Zeigt an, dass diese Property als Struktur weitere Unterpropertys enthalten kann
Datenbanktreiber
driverClass=oracle.jdbc.OracleDriver
Mögliche Werte
-
Oracle-Treiber
-
MS SQL-Treiber
-
MySQL-Treiber
JDBC-URL
jdbcUrl=jdbc:oracle:thin:@oracle:1521:InubitDB
Mögliche Werte
-
Oracle-JDBC-URL
-
MS SQL-JDBC-URL
-
MySQL-JDBC-URL
Für MySQL vor der Version 5.7 ist es nur möglich, über TLS 1.2 zu kommunizieren, wenn Sie die Property
enabledTLSProtocols=TLSv1.2
der Datenbank-URL hinzufügen.
Benutzername
User=<Benutzername>
encrypted="{true|false}"
true
: Der angegebene Benutzername ist verschlüsselt.
false
: Der angegebene Benutzername ist nicht verschlüsselt und wird beim ersten Serverstart durch den verschlüsselten Benutzernamen ersetzt.
Das Attribut encrypted="true"
wird automatisch gesetzt.
Passwort
password=<Passwort>
encrypted="{true|false}"
true
: Das angegebene Passwort ist verschlüsselt.
false
: Das angegebene Passwort ist nicht verschlüsselt und wird beim ersten Serverstart durch das verschlüsselte Passwort ersetzt.
Das Attribut encrypted="true"
wird automatisch gesetzt.
Socket-Timeout
socketTimeoutInMillisecs=180000
Zum Konfigurieren der Timeouts für die Socket-Verbindung zwischen JDBC-Treiber und Datenbank. Der Wert bestimmt sowohl Connect-Timeout als auch Read-Timeout. Standardwert ist 180'000 ms (3 Minuten).
Verbindungs-Timeout für das Connection-Pooling
checkoutTimeoutInMillisecs=120000
Zum Konfigurieren des Timeouts für das Warten auf die Bereitstellung einer Datenbankverbindung für den Datenbank-Connection-Pool. Standardwert ist 120'000 ms (2 Minuten).
Anzahl der Datenbankverbindungen
minPoolSize=5
maxPoolSize=30
Diese beiden Parameter legen fest, wie viele Datenbankverbindungen mindestens und höchstens gleichzeitig verwendet werden dürfen.
Vorgabewerte sind 5
bzw. 30
.
Unbenutzte Datenbankverbindungen entfernen
removeAbandoned={true|false}
-
true
Eine Datenbankverbindung wird entfernt, wenn die in der Property
removeAbandonedTimeout
gesetzte Zeitspanne überschritten ist. -
false
(Standard)Datenbankverbindungen werden nicht entfernt, auch wenn sie längere Zeit nicht benutzt wurden.
Zeitspanne, nach der unbenutzte Datenbankverbindungen entfernt werden
removeAbandonedTimeout=21600
Wenn die Property removeAbandoned
auf true
gesetzt ist, wird eine Datenbankverbindung entfernt, sobald die in der Property removeAbandonedTimeout
gesetzte Zeitpanne in Sekunden überschritten ist.
Standardmäßig ist die Property removeAbandonedTimeout
auf 21'600 Sekunden (6 Stunden) gesetzt.
Der Wert sollte auf die Zeitspanne gesetzt werden, die die am längsten dauernde Anfrage benötigt. |
Prüfen auf gültige Verbindung
CheckValidConnection={true|false}
true
: Wenn eine Verbindung ungültig ist, wird automatisch die nächste Verbindung aus dem Pool ausgewählt.
Diese Property ist standardmäßig auf true
gesetzt.
Um die Property zu deaktivieren, muss sie auf false
gesetzt werden.
Wenn die Property aktiviert ist, kann die Performance dadurch leicht beeinflusst werden. |
Wiederholung und Wiederholungsverzögerung für Datenbankabfragen
noOfRetries=3
retryInterval=2000
Im Falle von Datenbankfehlern kann die Datenbankabfrage mehrmals wiederholt werden, wie in noOfRetries
definiert.
Jeder Wiederholungsversuch erfolgt nach einer in retryInterval
(in Millisekunden) angegebenen Zeitverzögerung.
Für MSSQL-Deadlocks gilt Folgendes:
Im Falle häufiger Deadlocks in der MSSQL-Datenbank können Sie versuchen, die Anzahl der Wiederholungen und die Wiederholungsverzögerung von Datenbankabfragen zu erhöhen.
Die Standardwerte für diese Properties für MSSQL sind 3 Wiederholungen und 2000 Millisekunden Wiederholungsintervall.
Um das Herunterfahren der INUBIT Process Engine wegen kurzzeitiger Probleme mit der Datenbankverbindung zu vermeiden, können Sie einen sogenannten Leaky-Bucket-Algorithmus konfigurieren, siehe Toleranz gegenüber einer Unterbrechung der Datenbankverbindung konfigurieren. |
Mehr als ein Schema zulassen (nur für MySQL 8, nicht empfohlen)
nullCatalogMeansCurrent={true|false}
Wenn ein Datenbankbenutzer Zugriff auf mehrere Schemas hat: Fügen Sie den zusätzlichen Parameter nullCatalogMeansCurrent=true
der Datenbank-URL hinzu.
Größe des Laufzeitdaten-Cache begrenzen
Verwendung
Maximal zulässiger prozentualer Anteil der Laufzeitdaten am Java-Speicher
Property
RuntimeDataCacheXMXPercentage=25
Speichermodus für Laufzeitdaten
Verwendung
Legt fest, wie die Laufzeitdaten gespeichert werden sollen
Property
RuntimeDataBackupStore={FILE|DB|NONE}
Mögliche Werte
-
FILE
(Standard)
Laufzeitdaten werden im Dateisystem gespeichert. -
DB
Laufzeitdaten werden in der Datenbank gespeichert. -
NONE
Laufzeitdaten werden nicht gespeichert.
Wiederholung und Wiederholungsverzögerung für die Cache-Datenbank konfigurieren
Verwendung
Setzen der Parameter für den Cache-Datenbankzugriff
Property
noOfRetries=3
retryInterval=2000
Im Falle von Cache-Datenbankfehlern kann die Datenbankabfrage für die in noOfRetries
festgelegte Anzahl an Wiederholungen erneut versucht werden.
Jeder erneute Versuch erfolgt nach der in retryInterval
festgelegten Verzögerungszeit (in Millisekunden).
Die Standardwerte sind 3 Wiederholungen und 2000 Millisekunden Verzögerung.
Um das Herunterfahren der INUBIT Process Engine wegen kurzzeitiger Probleme mit der Datenbankverbindung zu vermeiden, können Sie einen sogenannten Leaky-Bucket-Algorithmus konfigurieren, siehe Toleranz gegenüber einer Unterbrechung der Datenbankverbindung konfigurieren. |
Lokalen Wartungsmodus konfigurieren
Verwendung
Lokalen Wartungsmodus konfigurieren
Property
LocalMaintenanceMode=true | false
Mögliche Werte
-
true
Der lokale Wartungsmodus wird aktiviert.
-
false
Der lokale Wartungsmodus wird deaktiviert.
Speicher für Versionsdaten konfigurieren
Verwendung
Diese Konfiguration dient der Optimierung der Auslastung des verfügbaren Arbeitsspeichers durch den INUBIT.
Solange die genutzte INUBIT Process Engine ohne Speicherprobleme arbeitet, belassen sie die Einstellung auf dem Standardwert ( |
Zeigt die INUBIT Process Engine Speicherprobleme (z.B. OutOfMemoryException
) bei der Ausführung bzw.
Verarbeitung von Technischen Workflows und deren Modulen, kann eine Anpassung dieses Wertes helfen.
Property
Sie konfigurieren hier die maximale Anzahl aller Versionen, die im Speicher (Cache) der Process Engine vorgehalten werden (über alle Nutzer und Gruppen hinweg). Ist der Versions-Cache voll, werden weiterhin fehlende Versionen nachgeladen. Diese ersetzen dann aber bestehende Einträge (cache swapping).
-
Anzahl aller Workflowversionen:
Workflow_Data_Version=[1..n|-1]
-
Anzahl aller Modulversionen:
Module_Data_Version=[1..n|-1]
Mögliche Werte
-1
– unbegrenzt (Standardwert) – Anzahl der Versionen ist unbegrenzt.
Es werden so viele Versionen vorgehalten, wie in den der Process Engine zur Verfügung stehenden Speicher hineinpassen.
1..n
– Anzahl der Versionen ist auf diesen Wert begrenzt.
Ist die maximale Anzahl von Versionen in den Speicher geladen.
Kommt es auch nach der Angabe eines Wertes zu Speicherproblemen, verringern Sie diesen Wert.
Läuft ihr System wieder stabil, aber langsam, erhöhen Sie den Wert.
Zeitstempel-Indexierung auf Infinispan
Verwendung
Kontrolliert das Indexierungsverhalten für die Zeitstempelspalten in den Infinispan-Tabellen.
Property
indexEnabled={true|false}
true
: Aktiviert die Indexierung von Infinispan-Tabellen.
false
: Deaktiviert die Indexierung von Infinispan-Tabellen.
Standardmäßig ist diese Eigenschaft auf false
gesetzt.
Damit ist ein bestehendes INUBIT-System abwärtskompatibel.
Die Indexierung muss so explizit eingeschaltet und das System kann dabei überwacht werden.
Wenn der Parameter nach der Indexierung auf |
Wenn Sie den Index aus bestehenden Infinispan-Tabellen löschen möchten, gehen Sie folgendermaßen vor:
-
Setzen Sie die Eigenschaft auf
false
inibis.xml
nach Abschalten des Process Engine:
<Property name="indexEnabled" type="Boolean">false</Property>
-
Führen Sie die entsprechenden SQL-Queries aus, um den Zeitstempel-Index basierend auf Ihrem Datenbanktyp aus allen ISPN-Tabellen zu löschen:
-
MariaDB/MySQL
ALTER TABLE <Database Name>
DROP INDEX <Database Name>_timestamp_index;
-
PostgreSQL
DROP INDEX <Database Name>_timestamp_index;
-
Microsoft SQL
DROP INDEX <Database Name>_timestamp_index ON <Database Name>;
-
Oracle
DROP INDEX IDX_<Database Name>;
Beispiel: Für eine Tabelle namens
ISPN_EDI_RULES
in MySQL/MariaDB:
ALTER TABLE ISPN_EDI_RULES
DROP INDEX ISPN_EDI_RULES_timestamp_index;
Diese Queries müssen auf allen Tabellen mit der Präfix ISPN_ ausgeführt werden.
-