Basiskonfiguration - ibis.xml
Die Datei <SUITE-INSTALL-DIR>/inubit/server/ibis_root/conf/ibis.xml enthält die Basiskonfiguration, die benötigt, um die INUBIT Process Engine erfolgreich starten zu können, insbesondere:
-
Datenbank
-
Identity Provider
Konfigurationsdatei
-
H2
-
DB2
-
MariaDB
-
MySQL
-
Oracle
-
Postgres
<?xml version='1.0' encoding='UTF-8'?>
<!-- INUBIT Process Engine configuration (ibis.xml).
The Process Engine reads this file during startup. It defines the connection to the INUBIT system
database (IBISDB), the identity provider and a number of global runtime settings.
Template usage:
This file is the template for H2. Copy it to "ibis.xml" into the same conf directory and adjust
at least the Database settings and initialRootUserPassword before the first start.
File format:
Properties/@version Version of the configuration format. Do not change.
Property/@name Name of the property. Names are case sensitive.
Property/@type Type of the value: Boolean, Integer, Long, Password, EncryptedString or Map.
Without this attribute the value is treated as a string.
Property/@encrypted Only for Password and EncryptedString: "true" if the value is stored encrypted.
Properties of type Map contain nested Property elements.
Properties that are missing from this file fall back to their built-in default values
(see com.inubit.ibis.server.cluster.NodeConfiguration). Most properties are evaluated during startup
only. LocalMaintenanceMode can also be changed at runtime and is then written back to this file;
after a successful startup the server keeps a copy of the file as ibis.xml.bak.1. -->
<Properties version="4.1">
<!-- Puts this node into local maintenance mode.
While maintenance mode is active the node stops processing new incoming messages of its listeners and
connectors, and the cluster event manager is notified so that backup nodes can take over. The property
can also be switched at runtime (for example with the maintenance command of the CLI client) and takes
effect without a restart.
Type: Boolean. Default: false -->
<Property name="LocalMaintenanceMode" type="Boolean">false</Property>
<!-- Enables verbose logging during server startup.
If true, the INUBIT, Infinispan and JGroups loggers are set to DEBUG until the log level of the server
configuration is applied; if false they start at ERROR. This switch is independent of the debug setting
in Workbench > Server Configuration.
Type: Boolean. Default: false -->
<Property name="ClusterDebug" type="Boolean">false</Property>
<!-- Identity provider used for authentication and user management.
inubit Users are managed by the INUBIT Process Engine itself.
keycloak Users are managed by an external Keycloak server; the connection details are read from the
file configured in IdentityProviderConfiguration.
The value is compared case-insensitively; any other or empty value falls back to "inubit".
Type: String. Default: inubit -->
<Property name="IdentityProvider">inubit</Property>
<!-- Name of the file that holds the connection details of the external identity provider.
Only evaluated for IdentityProvider=keycloak. The name is resolved relative to the conf directory of the
installation, so a plain file name such as "keycloak.json" is sufficient.
Type: String. Default: keycloak.json -->
<Property name="IdentityProviderConfiguration">keycloak.json</Property>
<!-- Initial password of the built-in administrator "root".
The value is used only while the default users are created, that is when the root user does not yet
exist in the user store. It must not be empty, otherwise the startup fails with "INITIAL PASSWORD IS
MISSING". Changing the value later has no effect on an already existing root user.
The installer replaces PLACEHOLDER during installation routine.
Change the password afterwards through the Workbench.
Type: String. No default. -->
<Property name="initialRootUserPassword">PLACEHOLDER</Property>
<!-- Connection settings of the INUBIT system database (IBISDB).
These settings are used to build the internal Tomcat JDBC connection pool for the DataSource that is
bound under DataSourceLocation. This template is for H2.
Type: Map -->
<Property name="Database" type="Map">
<!-- Fully qualified name of the JDBC driver class.
The JDBC JAR must be placed inside the <inubit-installdir>/inubit/server/process_engine/webapps/ibis/WEB-INF/lib.
Otherwise the startup fails.
Type: String. Required. -->
<Property name="driverClass">org.h2.Driver</Property>
<!-- JDBC URL of the system database.
The database flavour is derived from the URL prefix (here: "jdbc:h2:").
The placeholder ${ibis.root.directory} is replaced by the INUBIT root directory at runtime, so the
default points to an embedded H2 database inside the installation. DB_CLOSE_ON_EXIT=FALSE keeps the
database open until the server shuts it down itself.
Type: String. Required. -->
<Property name="jdbcUrl">jdbc:h2:${ibis.root.directory}/ibis_data/database/ibis;DB_CLOSE_ON_EXIT=FALSE</Property>
<!-- Set database access credentials, username and password
Example:
<Property name="user">inubit-database-user</Property>
<Property name="password" type="Password">secret</Property>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<Property name="user" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
<Property name="password" type="Password" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
-->
<!-- Set the database user that owns the INUBIT schema.
"sa" is the default user of the embedded H2 database.
The user needs write access to the database. -->
<Property name="user">sa</Property>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<Property name="password" type="Password" encrypted="false"></Property>
<!-- Connect and read timeout of the database connection in milliseconds.
Must be greater than or equal to 0.
Type: Long. Default: 180000 (3 minutes) -->
<Property name="socketTimeoutInMillisecs" type="Long">180000</Property>
<!-- Maximum time in milliseconds a thread waits for a free connection from the pool before the request
fails (maxWait of the connection pool).
Type: Long. Default: 120000 (2 minutes) -->
<Property name="checkoutTimeoutInMillisecs" type="Long">120000</Property>
<!-- Additional connection properties that are passed to the JDBC driver.
Every entry is a nested Property element whose name is the driver property, for example:
<Property name="driverProperties" type="Map">
<Property name="ssl">true</Property>
</Property>
Type: Map. Default: empty -->
<Property name="driverProperties" type="Map"/>
<!-- Initial size of the connection pool and minimum number of connections kept idle.
Must be greater than or equal to 0.
Type: Integer. Default: 5 -->
<Property name="minPoolSize" type="Integer">5</Property>
<!-- Maximum number of connections the pool hands out at the same time, and maximum number of idle
connections.
Must be greater than or equal to minPoolSize.
The database server has to allow at least this number of sessions.
Type: Integer. Default: 30 -->
<Property name="maxPoolSize" type="Integer">30</Property>
<!-- If true, a connection that has been in use longer than removeAbandonedTimeout is regarded as abandoned
and is reclaimed by the pool. Useful to recover from connection leaks, but a connection of a long
running query may be closed while it is still needed.
Type: Boolean. Default: false -->
<Property name="removeAbandoned" type="Boolean">false</Property>
<!-- Time in seconds after which a connection that is in use is regarded as abandoned.
Only effective if removeAbandoned is true. The value should be at least as long as the longest running
query of the installation.
Type: Integer. Default: 21600 (6 hours) -->
<Property name="removeAbandonedTimeout" type="Integer">21600</Property>
</Property>
<!-- JNDI name under which the DataSource of the system database is looked up during startup.
In the standard installation an INUBIT DataSource is bound under this name and is configured with the
Database settings above.
If nothing usable is bound, the startup fails.
Type: String. Default: java:/comp/env/jdbc/IBISDB -->
<Property name="DataSourceLocation">java:/comp/env/jdbc/IBISDB</Property>
<!-- Storage location for the backup copies of the runtime data (execution data of running processes).
FILE The backups are written to the file-based cache store below <inubit-installdir>/inubit/server/ibis_root/ibis_data/cachestore.
DB The backups are written into the system database.
An unknown value falls back to FILE.
Type: String. Default: FILE -->
<Property name="RuntimeDataBackupStore">FILE</Property>
<!-- Share of the maximum JVM heap (-Xmx) in percent that the runtime data caches may occupy in memory.
The resulting size must be greater than 0, otherwise the cache manager refuses to start.
Type: Integer. Default: 25 -->
<Property name="RuntimeDataCacheXMXPercentage" type="Integer">25</Property>
<!-- If true, every connection taken from the pool is additionally checked for validity before it is used,
and is re-established if the check fails. Setting it to false saves the check but leaves the handling
of stale connections to the JDBC driver.
Type: Boolean. Default: true -->
<Property name="CheckValidConnection" type="Boolean">true</Property>
<!-- Number of retries when a connection to the system database cannot be obtained or a statement fails with
a recoverable error. After the last unsuccessful retry the error is reported to the caller.
Type: Integer. Default: 3 -->
<Property name="noOfRetries" type="Integer">3</Property>
<!-- Waiting time in milliseconds between two retries, see noOfRetries.
Type: Long. Default: 2000 -->
<Property name="retryInterval" type="Long">2000</Property>
<!-- Limits for the number of version entries that are kept in memory before older entries are evicted from
the cache. A value less than or equal to 0 means no limit; in that case a warning is written to the log
during startup because large repositories can then cause OutOfMemory errors.
Type: Map -->
<Property name="MaxEntriesInMemoryLimit" type="Map">
<!-- Maximum number of workflow version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Workflow_Data_Version" type="Integer">-1</Property>
<!-- Maximum number of module version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Module_Data_Version" type="Integer">-1</Property>
</Property>
<!-- Number of PBKDF2 iterations used to hash user passwords.
A higher value increases the effort of a brute force attack and the effort of every password check.
Existing password hashes are not changed when the value is modified.
Type: Integer. Default: 20000 -->
<Property name="iterationCount" type="Integer">20000</Property>
<!-- Activates the Virtimo Cluster Manager. With the cluster manager enabled several INUBIT instances can form
a cluster and instances can be added or removed at runtime.
Requires a corresponding license and the configuration in <inubit-installdir>/inubit/server/ibis_root/conf/clustermanager/clusterManagerConfig.xml;
without a valid license the cluster manager is skipped with a warning in the log.
Type: Boolean. Default: false -->
<Property name="ActivateClusterManager" type="Boolean">false</Property>
</Properties>
<?xml version='1.0' encoding='UTF-8'?>
<!-- INUBIT Process Engine configuration (ibis.xml).
The Process Engine reads this file during startup. It defines the connection to the INUBIT system
database (IBISDB), the identity provider and a number of global runtime settings.
Template usage:
This file is the template for IBM DB2. Copy it to "ibis.xml" into the same conf directory and adjust
at least the Database settings and initialRootUserPassword before the first start.
File format:
Properties/@version Version of the configuration format. Do not change.
Property/@name Name of the property. Names are case sensitive.
Property/@type Type of the value: Boolean, Integer, Long, Password, EncryptedString or Map.
Without this attribute the value is treated as a string.
Property/@encrypted Only for Password and EncryptedString: "true" if the value is stored encrypted.
Properties of type Map contain nested Property elements.
Properties that are missing from this file fall back to their built-in default values
(see com.inubit.ibis.server.cluster.NodeConfiguration). Most properties are evaluated during startup
only. LocalMaintenanceMode can also be changed at runtime and is then written back to this file;
after a successful startup the server keeps a copy of the file as ibis.xml.bak.1. -->
<Properties version="4.1">
<!-- Puts this node into local maintenance mode.
While maintenance mode is active the node stops processing new incoming messages of its listeners and
connectors, and the cluster event manager is notified so that backup nodes can take over. The property
can also be switched at runtime (for example with the maintenance command of the CLI client) and takes
effect without a restart.
Type: Boolean. Default: false -->
<Property name="LocalMaintenanceMode" type="Boolean">false</Property>
<!-- Enables verbose logging during server startup.
If true, the INUBIT, Infinispan and JGroups loggers are set to DEBUG until the log level of the server
configuration is applied; if false they start at ERROR. This switch is independent of the debug setting
in Workbench > Server Configuration.
Type: Boolean. Default: false -->
<Property name="ClusterDebug" type="Boolean">false</Property>
<!-- Identity provider used for authentication and user management.
inubit Users are managed by the INUBIT Process Engine itself.
keycloak Users are managed by an external Keycloak server; the connection details are read from the
file configured in IdentityProviderConfiguration.
The value is compared case-insensitively; any other or empty value falls back to "inubit".
Type: String. Default: inubit -->
<Property name="IdentityProvider">inubit</Property>
<!-- Name of the file that holds the connection details of the external identity provider.
Only evaluated for IdentityProvider=keycloak. The name is resolved relative to the conf directory of the
installation, so a plain file name such as "keycloak.json" is sufficient.
Type: String. Default: keycloak.json -->
<Property name="IdentityProviderConfiguration">keycloak.json</Property>
<!-- Initial password of the built-in administrator "root".
The value is used only while the default users are created, that is when the root user does not yet
exist in the user store. It must not be empty, otherwise the startup fails with "INITIAL PASSWORD IS
MISSING". Changing the value later has no effect on an already existing root user.
The installer replaces PLACEHOLDER during installation routine.
Change the password afterwards through the Workbench.
Type: String. No default. -->
<Property name="initialRootUserPassword">PLACEHOLDER</Property>
<!-- Connection settings of the INUBIT system database (IBISDB).
These settings are used to build the internal Tomcat JDBC connection pool for the DataSource that is
bound under DataSourceLocation. This template is for IBM DB2.
Type: Map -->
<Property name="Database" type="Map">
<!-- Fully qualified name of the JDBC driver class.
The JDBC JAR must be placed inside the <inubit-installdir>/inubit/server/process_engine/webapps/ibis/WEB-INF/lib.
Otherwise the startup fails.
Type: String. Required. -->
<Property name="driverClass">com.ibm.db2.jcc.DB2Driver</Property>
<!-- JDBC URL of the system database.
The database flavour is derived from the URL prefix (here: "jdbc:db2:").
Replace [host] with the host name of the database server and [database] with the database name;
50000 is the default port.
Type: String. Required. -->
<Property name="jdbcUrl">jdbc:db2://[host]:50000/[database]</Property>
<!-- Set database access credentials, username and password
Example:
<Property name="user">inubit-database-user</Property>
<Property name="password" type="Password">secret</Property>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<Property name="user" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
<Property name="password" type="Password" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
-->
<!-- Set the database user that owns the INUBIT schema.
Must be set before the first start.
The user needs write access to the database. -->
<Property name="user"></Property>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<Property name="password" type="Password" encrypted="false"></Property>
<!-- Connect and read timeout of the database connection in milliseconds.
Must be greater than or equal to 0.
Type: Long. Default: 180000 (3 minutes) -->
<Property name="socketTimeoutInMillisecs" type="Long">180000</Property>
<!-- Maximum time in milliseconds a thread waits for a free connection from the pool before the request
fails (maxWait of the connection pool).
Type: Long. Default: 120000 (2 minutes) -->
<Property name="checkoutTimeoutInMillisecs" type="Long">120000</Property>
<!-- Additional connection properties that are passed to the JDBC driver.
Every entry is a nested Property element whose name is the driver property, for example:
<Property name="driverProperties" type="Map">
<Property name="ssl">true</Property>
</Property>
Type: Map. Default: empty -->
<Property name="driverProperties" type="Map"/>
<!-- Initial size of the connection pool and minimum number of connections kept idle.
Must be greater than or equal to 0.
Type: Integer. Default: 5 -->
<Property name="minPoolSize" type="Integer">5</Property>
<!-- Maximum number of connections the pool hands out at the same time, and maximum number of idle
connections.
Must be greater than or equal to minPoolSize.
The database server has to allow at least this number of sessions.
Type: Integer. Default: 30 -->
<Property name="maxPoolSize" type="Integer">30</Property>
<!-- If true, a connection that has been in use longer than removeAbandonedTimeout is regarded as abandoned
and is reclaimed by the pool. Useful to recover from connection leaks, but a connection of a long
running query may be closed while it is still needed.
Type: Boolean. Default: false -->
<Property name="removeAbandoned" type="Boolean">false</Property>
<!-- Time in seconds after which a connection that is in use is regarded as abandoned.
Only effective if removeAbandoned is true. The value should be at least as long as the longest running
query of the installation.
Type: Integer. Default: 21600 (6 hours) -->
<Property name="removeAbandonedTimeout" type="Integer">21600</Property>
</Property>
<!-- JNDI name under which the DataSource of the system database is looked up during startup.
In the standard installation an INUBIT DataSource is bound under this name and is configured with the
Database settings above.
If nothing usable is bound, the startup fails.
Type: String. Default: java:/comp/env/jdbc/IBISDB -->
<Property name="DataSourceLocation">java:/comp/env/jdbc/IBISDB</Property>
<!-- Storage location for the backup copies of the runtime data (execution data of running processes).
FILE The backups are written to the file-based cache store below <inubit-installdir>/inubit/server/ibis_root/ibis_data/cachestore.
DB The backups are written into the system database.
An unknown value falls back to FILE.
Type: String. Default: FILE -->
<Property name="RuntimeDataBackupStore">FILE</Property>
<!-- Share of the maximum JVM heap (-Xmx) in percent that the runtime data caches may occupy in memory.
The resulting size must be greater than 0, otherwise the cache manager refuses to start.
Type: Integer. Default: 25 -->
<Property name="RuntimeDataCacheXMXPercentage" type="Integer">25</Property>
<!-- If true, every connection taken from the pool is additionally checked for validity before it is used,
and is re-established if the check fails. Setting it to false saves the check but leaves the handling
of stale connections to the JDBC driver.
Type: Boolean. Default: true -->
<Property name="CheckValidConnection" type="Boolean">true</Property>
<!-- Number of retries when a connection to the system database cannot be obtained or a statement fails with
a recoverable error. After the last unsuccessful retry the error is reported to the caller.
Type: Integer. Default: 3 -->
<Property name="noOfRetries" type="Integer">3</Property>
<!-- Waiting time in milliseconds between two retries, see noOfRetries.
Type: Long. Default: 2000 -->
<Property name="retryInterval" type="Long">2000</Property>
<!-- Limits for the number of version entries that are kept in memory before older entries are evicted from
the cache. A value less than or equal to 0 means no limit; in that case a warning is written to the log
during startup because large repositories can then cause OutOfMemory errors.
Type: Map -->
<Property name="MaxEntriesInMemoryLimit" type="Map">
<!-- Maximum number of workflow version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Workflow_Data_Version" type="Integer">-1</Property>
<!-- Maximum number of module version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Module_Data_Version" type="Integer">-1</Property>
</Property>
<!-- Number of PBKDF2 iterations used to hash user passwords.
A higher value increases the effort of a brute force attack and the effort of every password check.
Existing password hashes are not changed when the value is modified.
Type: Integer. Default: 20000 -->
<Property name="iterationCount" type="Integer">20000</Property>
<!-- Activates the Virtimo Cluster Manager. With the cluster manager enabled several INUBIT instances can form
a cluster and instances can be added or removed at runtime.
Requires a corresponding license and the configuration in <inubit-installdir>/inubit/server/ibis_root/conf/clustermanager/clusterManagerConfig.xml;
without a valid license the cluster manager is skipped with a warning in the log.
Type: Boolean. Default: false -->
<Property name="ActivateClusterManager" type="Boolean">false</Property>
</Properties>
<?xml version='1.0' encoding='UTF-8'?>
<!-- INUBIT Process Engine configuration (ibis.xml).
The Process Engine reads this file during startup. It defines the connection to the INUBIT system
database (IBISDB), the identity provider and a number of global runtime settings.
Template usage:
This file is the template for MariaDB. Copy it to "ibis.xml" into the same conf directory and adjust
at least the Database settings and initialRootUserPassword before the first start.
File format:
Properties/@version Version of the configuration format. Do not change.
Property/@name Name of the property. Names are case sensitive.
Property/@type Type of the value: Boolean, Integer, Long, Password, EncryptedString or Map.
Without this attribute the value is treated as a string.
Property/@encrypted Only for Password and EncryptedString: "true" if the value is stored encrypted.
Properties of type Map contain nested Property elements.
Properties that are missing from this file fall back to their built-in default values
(see com.inubit.ibis.server.cluster.NodeConfiguration). Most properties are evaluated during startup
only. LocalMaintenanceMode can also be changed at runtime and is then written back to this file;
after a successful startup the server keeps a copy of the file as ibis.xml.bak.1. -->
<Properties version="4.1">
<!-- Puts this node into local maintenance mode.
While maintenance mode is active the node stops processing new incoming messages of its listeners and
connectors, and the cluster event manager is notified so that backup nodes can take over. The property
can also be switched at runtime (for example with the maintenance command of the CLI client) and takes
effect without a restart.
Type: Boolean. Default: false -->
<Property name="LocalMaintenanceMode" type="Boolean">false</Property>
<!-- Enables verbose logging during server startup.
If true, the INUBIT, Infinispan and JGroups loggers are set to DEBUG until the log level of the server
configuration is applied; if false they start at ERROR. This switch is independent of the debug setting
in Workbench > Server Configuration.
Type: Boolean. Default: false -->
<Property name="ClusterDebug" type="Boolean">false</Property>
<!-- Identity provider used for authentication and user management.
inubit Users are managed by the INUBIT Process Engine itself.
keycloak Users are managed by an external Keycloak server; the connection details are read from the
file configured in IdentityProviderConfiguration.
The value is compared case-insensitively; any other or empty value falls back to "inubit".
Type: String. Default: inubit -->
<Property name="IdentityProvider">inubit</Property>
<!-- Name of the file that holds the connection details of the external identity provider.
Only evaluated for IdentityProvider=keycloak. The name is resolved relative to the conf directory of the
installation, so a plain file name such as "keycloak.json" is sufficient.
Type: String. Default: keycloak.json -->
<Property name="IdentityProviderConfiguration">keycloak.json</Property>
<!-- Initial password of the built-in administrator "root".
The value is used only while the default users are created, that is when the root user does not yet
exist in the user store. It must not be empty, otherwise the startup fails with "INITIAL PASSWORD IS
MISSING". Changing the value later has no effect on an already existing root user.
The installer replaces PLACEHOLDER during installation routine.
Change the password afterwards through the Workbench.
Type: String. No default. -->
<Property name="initialRootUserPassword">PLACEHOLDER</Property>
<!-- Connection settings of the INUBIT system database (IBISDB).
These settings are used to build the internal Tomcat JDBC connection pool for the DataSource that is
bound under DataSourceLocation. This template is for MariaDB.
Type: Map -->
<Property name="Database" type="Map">
<!-- Fully qualified name of the JDBC driver class.
The JDBC JAR must be placed inside the <inubit-installdir>/inubit/server/process_engine/webapps/ibis/WEB-INF/lib.
Otherwise the startup fails.
Type: String. Required. -->
<Property name="driverClass">org.mariadb.jdbc.Driver</Property>
<!-- JDBC URL of the system database.
The database flavour is derived from the URL prefix (here: "jdbc:mariadb:"); MariaDB URLs are
handled with the same flavour as MySQL.
Replace [host] with the host name of the database server and [database] with the database name;
3306 is the default port. Only the host name and the database name should be set here, additional
driver options belong into driverProperties.
Type: String. Required. -->
<Property name="jdbcUrl">jdbc:mariadb://[host]:3306/[database]</Property>
<!-- Set database access credentials, username and password
Example:
<Property name="user">inubit-database-user</Property>
<Property name="password" type="Password">secret</Property>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<Property name="user" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
<Property name="password" type="Password" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
-->
<!-- Set the database user that owns the INUBIT schema.
Must be set before the first start.
The user needs write access to the database. -->
<Property name="user"></Property>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<Property name="password" type="Password" encrypted="false"></Property>
<!-- Connect and read timeout of the database connection in milliseconds.
Must be greater than or equal to 0.
Type: Long. Default: 180000 (3 minutes) -->
<Property name="socketTimeoutInMillisecs" type="Long">180000</Property>
<!-- Maximum time in milliseconds a thread waits for a free connection from the pool before the request
fails (maxWait of the connection pool).
Type: Long. Default: 120000 (2 minutes) -->
<Property name="checkoutTimeoutInMillisecs" type="Long">120000</Property>
<!-- Additional connection properties that are passed to the JDBC driver.
Every entry is a nested Property element whose name is the driver property, for example:
<Property name="driverProperties" type="Map">
<Property name="ssl">true</Property>
</Property>
Type: Map. Default: empty -->
<Property name="driverProperties" type="Map"/>
<!-- Initial size of the connection pool and minimum number of connections kept idle.
Must be greater than or equal to 0.
Type: Integer. Default: 5 -->
<Property name="minPoolSize" type="Integer">5</Property>
<!-- Maximum number of connections the pool hands out at the same time, and maximum number of idle
connections.
Must be greater than or equal to minPoolSize.
The database server has to allow at least this number of sessions.
Type: Integer. Default: 30 -->
<Property name="maxPoolSize" type="Integer">30</Property>
<!-- If true, a connection that has been in use longer than removeAbandonedTimeout is regarded as abandoned
and is reclaimed by the pool. Useful to recover from connection leaks, but a connection of a long
running query may be closed while it is still needed.
Type: Boolean. Default: false -->
<Property name="removeAbandoned" type="Boolean">false</Property>
<!-- Time in seconds after which a connection that is in use is regarded as abandoned.
Only effective if removeAbandoned is true. The value should be at least as long as the longest running
query of the installation.
Type: Integer. Default: 21600 (6 hours) -->
<Property name="removeAbandonedTimeout" type="Integer">21600</Property>
</Property>
<!-- JNDI name under which the DataSource of the system database is looked up during startup.
In the standard installation an INUBIT DataSource is bound under this name and is configured with the
Database settings above.
If nothing usable is bound, the startup fails.
Type: String. Default: java:/comp/env/jdbc/IBISDB -->
<Property name="DataSourceLocation">java:/comp/env/jdbc/IBISDB</Property>
<!-- Storage location for the backup copies of the runtime data (execution data of running processes).
FILE The backups are written to the file-based cache store below <inubit-installdir>/inubit/server/ibis_root/ibis_data/cachestore.
DB The backups are written into the system database.
An unknown value falls back to FILE.
Type: String. Default: FILE -->
<Property name="RuntimeDataBackupStore">FILE</Property>
<!-- Share of the maximum JVM heap (-Xmx) in percent that the runtime data caches may occupy in memory.
The resulting size must be greater than 0, otherwise the cache manager refuses to start.
Type: Integer. Default: 25 -->
<Property name="RuntimeDataCacheXMXPercentage" type="Integer">25</Property>
<!-- If true, every connection taken from the pool is additionally checked for validity before it is used,
and is re-established if the check fails. Setting it to false saves the check but leaves the handling
of stale connections to the JDBC driver.
Type: Boolean. Default: true -->
<Property name="CheckValidConnection" type="Boolean">true</Property>
<!-- Number of retries when a connection to the system database cannot be obtained or a statement fails with
a recoverable error. After the last unsuccessful retry the error is reported to the caller.
Type: Integer. Default: 3 -->
<Property name="noOfRetries" type="Integer">3</Property>
<!-- Waiting time in milliseconds between two retries, see noOfRetries.
Type: Long. Default: 2000 -->
<Property name="retryInterval" type="Long">2000</Property>
<!-- Limits for the number of version entries that are kept in memory before older entries are evicted from
the cache. A value less than or equal to 0 means no limit; in that case a warning is written to the log
during startup because large repositories can then cause OutOfMemory errors.
Type: Map -->
<Property name="MaxEntriesInMemoryLimit" type="Map">
<!-- Maximum number of workflow version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Workflow_Data_Version" type="Integer">-1</Property>
<!-- Maximum number of module version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Module_Data_Version" type="Integer">-1</Property>
</Property>
<!-- Number of PBKDF2 iterations used to hash user passwords.
A higher value increases the effort of a brute force attack and the effort of every password check.
Existing password hashes are not changed when the value is modified.
Type: Integer. Default: 20000 -->
<Property name="iterationCount" type="Integer">20000</Property>
<!-- Activates the Virtimo Cluster Manager. With the cluster manager enabled several INUBIT instances can form
a cluster and instances can be added or removed at runtime.
Requires a corresponding license and the configuration in <inubit-installdir>/inubit/server/ibis_root/conf/clustermanager/clusterManagerConfig.xml;
without a valid license the cluster manager is skipped with a warning in the log.
Type: Boolean. Default: false -->
<Property name="ActivateClusterManager" type="Boolean">false</Property>
</Properties>
<?xml version='1.0' encoding='UTF-8'?>
<!-- INUBIT Process Engine configuration (ibis.xml).
The Process Engine reads this file during startup. It defines the connection to the INUBIT system
database (IBISDB), the identity provider and a number of global runtime settings.
Template usage:
This file is the template for MySQL. Copy it to "ibis.xml" into the same conf directory and adjust
at least the Database settings and initialRootUserPassword before the first start.
File format:
Properties/@version Version of the configuration format. Do not change.
Property/@name Name of the property. Names are case sensitive.
Property/@type Type of the value: Boolean, Integer, Long, Password, EncryptedString or Map.
Without this attribute the value is treated as a string.
Property/@encrypted Only for Password and EncryptedString: "true" if the value is stored encrypted.
Properties of type Map contain nested Property elements.
Properties that are missing from this file fall back to their built-in default values
(see com.inubit.ibis.server.cluster.NodeConfiguration). Most properties are evaluated during startup
only. LocalMaintenanceMode can also be changed at runtime and is then written back to this file;
after a successful startup the server keeps a copy of the file as ibis.xml.bak.1. -->
<Properties version="4.1">
<!-- Puts this node into local maintenance mode.
While maintenance mode is active the node stops processing new incoming messages of its listeners and
connectors, and the cluster event manager is notified so that backup nodes can take over. The property
can also be switched at runtime (for example with the maintenance command of the CLI client) and takes
effect without a restart.
Type: Boolean. Default: false -->
<Property name="LocalMaintenanceMode" type="Boolean">false</Property>
<!-- Enables verbose logging during server startup.
If true, the INUBIT, Infinispan and JGroups loggers are set to DEBUG until the log level of the server
configuration is applied; if false they start at ERROR. This switch is independent of the debug setting
in Workbench > Server Configuration.
Type: Boolean. Default: false -->
<Property name="ClusterDebug" type="Boolean">false</Property>
<!-- Identity provider used for authentication and user management.
inubit Users are managed by the INUBIT Process Engine itself.
keycloak Users are managed by an external Keycloak server; the connection details are read from the
file configured in IdentityProviderConfiguration.
The value is compared case-insensitively; any other or empty value falls back to "inubit".
Type: String. Default: inubit -->
<Property name="IdentityProvider">inubit</Property>
<!-- Name of the file that holds the connection details of the external identity provider.
Only evaluated for IdentityProvider=keycloak. The name is resolved relative to the conf directory of the
installation, so a plain file name such as "keycloak.json" is sufficient.
Type: String. Default: keycloak.json -->
<Property name="IdentityProviderConfiguration">keycloak.json</Property>
<!-- Initial password of the built-in administrator "root".
The value is used only while the default users are created, that is when the root user does not yet
exist in the user store. It must not be empty, otherwise the startup fails with "INITIAL PASSWORD IS
MISSING". Changing the value later has no effect on an already existing root user.
The installer replaces PLACEHOLDER during installation routine.
Change the password afterwards through the Workbench.
Type: String. No default. -->
<Property name="initialRootUserPassword">PLACEHOLDER</Property>
<!-- Connection settings of the INUBIT system database (IBISDB).
These settings are used to build the internal Tomcat JDBC connection pool for the DataSource that is
bound under DataSourceLocation. This template is for MySQL.
Type: Map -->
<Property name="Database" type="Map">
<!-- Fully qualified name of the JDBC driver class.
The JDBC JAR must be placed inside the <inubit-installdir>/inubit/server/process_engine/webapps/ibis/WEB-INF/lib.
Otherwise the startup fails.
Type: String. Required. -->
<Property name="driverClass">com.mysql.jdbc.Driver</Property>
<!-- JDBC URL of the system database.
The database flavour is derived from the URL prefix (here: "jdbc:mysql:").
Replace [host] with the host name of the database server and [database] with the database name;
3306 is the default port.
Type: String. Required. -->
<Property name="jdbcUrl">jdbc:mysql://[host]:3306/[database]</Property>
<!-- Set database access credentials, username and password
Example:
<Property name="user">inubit-database-user</Property>
<Property name="password" type="Password">secret</Property>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<Property name="user" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
<Property name="password" type="Password" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
-->
<!-- Set the database user that owns the INUBIT schema.
Must be set before the first start.
The user needs write access to the database. -->
<Property name="user"></Property>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<Property name="password" type="Password" encrypted="false"></Property>
<!-- Connect and read timeout of the database connection in milliseconds.
Must be greater than or equal to 0.
Type: Long. Default: 180000 (3 minutes) -->
<Property name="socketTimeoutInMillisecs" type="Long">180000</Property>
<!-- Maximum time in milliseconds a thread waits for a free connection from the pool before the request
fails (maxWait of the connection pool).
Type: Long. Default: 120000 (2 minutes) -->
<Property name="checkoutTimeoutInMillisecs" type="Long">120000</Property>
<!-- Additional connection properties that are passed to the JDBC driver.
Every entry is a nested Property element whose name is the driver property, for example:
<Property name="driverProperties" type="Map">
<Property name="ssl">true</Property>
</Property>
Type: Map. Default: empty -->
<Property name="driverProperties" type="Map"/>
<!-- Initial size of the connection pool and minimum number of connections kept idle.
Must be greater than or equal to 0.
Type: Integer. Default: 5 -->
<Property name="minPoolSize" type="Integer">5</Property>
<!-- Maximum number of connections the pool hands out at the same time, and maximum number of idle
connections.
Must be greater than or equal to minPoolSize.
The database server has to allow at least this number of sessions.
Type: Integer. Default: 30 -->
<Property name="maxPoolSize" type="Integer">30</Property>
<!-- If true, a connection that has been in use longer than removeAbandonedTimeout is regarded as abandoned
and is reclaimed by the pool. Useful to recover from connection leaks, but a connection of a long
running query may be closed while it is still needed.
Type: Boolean. Default: false -->
<Property name="removeAbandoned" type="Boolean">false</Property>
<!-- Time in seconds after which a connection that is in use is regarded as abandoned.
Only effective if removeAbandoned is true. The value should be at least as long as the longest running
query of the installation.
Type: Integer. Default: 21600 (6 hours) -->
<Property name="removeAbandonedTimeout" type="Integer">21600</Property>
</Property>
<!-- JNDI name under which the DataSource of the system database is looked up during startup.
In the standard installation an INUBIT DataSource is bound under this name and is configured with the
Database settings above.
If nothing usable is bound, the startup fails.
Type: String. Default: java:/comp/env/jdbc/IBISDB -->
<Property name="DataSourceLocation">java:/comp/env/jdbc/IBISDB</Property>
<!-- Storage location for the backup copies of the runtime data (execution data of running processes).
FILE The backups are written to the file-based cache store below <inubit-installdir>/inubit/server/ibis_root/ibis_data/cachestore.
DB The backups are written into the system database.
An unknown value falls back to FILE.
Type: String. Default: FILE -->
<Property name="RuntimeDataBackupStore">FILE</Property>
<!-- Share of the maximum JVM heap (-Xmx) in percent that the runtime data caches may occupy in memory.
The resulting size must be greater than 0, otherwise the cache manager refuses to start.
Type: Integer. Default: 25 -->
<Property name="RuntimeDataCacheXMXPercentage" type="Integer">25</Property>
<!-- If true, every connection taken from the pool is additionally checked for validity before it is used,
and is re-established if the check fails. Setting it to false saves the check but leaves the handling
of stale connections to the JDBC driver.
Type: Boolean. Default: true -->
<Property name="CheckValidConnection" type="Boolean">true</Property>
<!-- Number of retries when a connection to the system database cannot be obtained or a statement fails with
a recoverable error. After the last unsuccessful retry the error is reported to the caller.
Type: Integer. Default: 3 -->
<Property name="noOfRetries" type="Integer">3</Property>
<!-- Waiting time in milliseconds between two retries, see noOfRetries.
Type: Long. Default: 2000 -->
<Property name="retryInterval" type="Long">2000</Property>
<!-- Limits for the number of version entries that are kept in memory before older entries are evicted from
the cache. A value less than or equal to 0 means no limit; in that case a warning is written to the log
during startup because large repositories can then cause OutOfMemory errors.
Type: Map -->
<Property name="MaxEntriesInMemoryLimit" type="Map">
<!-- Maximum number of workflow version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Workflow_Data_Version" type="Integer">-1</Property>
<!-- Maximum number of module version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Module_Data_Version" type="Integer">-1</Property>
</Property>
<!-- Number of PBKDF2 iterations used to hash user passwords.
A higher value increases the effort of a brute force attack and the effort of every password check.
Existing password hashes are not changed when the value is modified.
Type: Integer. Default: 20000 -->
<Property name="iterationCount" type="Integer">20000</Property>
<!-- Activates the Virtimo Cluster Manager. With the cluster manager enabled several INUBIT instances can form
a cluster and instances can be added or removed at runtime.
Requires a corresponding license and the configuration in <inubit-installdir>/inubit/server/ibis_root/conf/clustermanager/clusterManagerConfig.xml;
without a valid license the cluster manager is skipped with a warning in the log.
Type: Boolean. Default: false -->
<Property name="ActivateClusterManager" type="Boolean">false</Property>
</Properties>
<?xml version='1.0' encoding='UTF-8'?>
<!-- INUBIT Process Engine configuration (ibis.xml).
The Process Engine reads this file during startup. It defines the connection to the INUBIT system
database (IBISDB), the identity provider and a number of global runtime settings.
Template usage:
This file is the template for Oracle. Copy it to "ibis.xml" into the same conf directory and adjust
at least the Database settings and initialRootUserPassword before the first start.
File format:
Properties/@version Version of the configuration format. Do not change.
Property/@name Name of the property. Names are case sensitive.
Property/@type Type of the value: Boolean, Integer, Long, Password, EncryptedString or Map.
Without this attribute the value is treated as a string.
Property/@encrypted Only for Password and EncryptedString: "true" if the value is stored encrypted.
Properties of type Map contain nested Property elements.
Properties that are missing from this file fall back to their built-in default values
(see com.inubit.ibis.server.cluster.NodeConfiguration). Most properties are evaluated during startup
only. LocalMaintenanceMode can also be changed at runtime and is then written back to this file;
after a successful startup the server keeps a copy of the file as ibis.xml.bak.1. -->
<Properties version="4.1">
<!-- Puts this node into local maintenance mode.
While maintenance mode is active the node stops processing new incoming messages of its listeners and
connectors, and the cluster event manager is notified so that backup nodes can take over. The property
can also be switched at runtime (for example with the maintenance command of the CLI client) and takes
effect without a restart.
Type: Boolean. Default: false -->
<Property name="LocalMaintenanceMode" type="Boolean">false</Property>
<!-- Enables verbose logging during server startup.
If true, the INUBIT, Infinispan and JGroups loggers are set to DEBUG until the log level of the server
configuration is applied; if false they start at ERROR. This switch is independent of the debug setting
in Workbench > Server Configuration.
Type: Boolean. Default: false -->
<Property name="ClusterDebug" type="Boolean">false</Property>
<!-- Identity provider used for authentication and user management.
inubit Users are managed by the INUBIT Process Engine itself.
keycloak Users are managed by an external Keycloak server; the connection details are read from the
file configured in IdentityProviderConfiguration.
The value is compared case-insensitively; any other or empty value falls back to "inubit".
Type: String. Default: inubit -->
<Property name="IdentityProvider">inubit</Property>
<!-- Name of the file that holds the connection details of the external identity provider.
Only evaluated for IdentityProvider=keycloak. The name is resolved relative to the conf directory of the
installation, so a plain file name such as "keycloak.json" is sufficient.
Type: String. Default: keycloak.json -->
<Property name="IdentityProviderConfiguration">keycloak.json</Property>
<!-- Initial password of the built-in administrator "root".
The value is used only while the default users are created, that is when the root user does not yet
exist in the user store. It must not be empty, otherwise the startup fails with "INITIAL PASSWORD IS
MISSING". Changing the value later has no effect on an already existing root user.
The installer replaces PLACEHOLDER during installation routine.
Change the password afterwards through the Workbench.
Type: String. No default. -->
<Property name="initialRootUserPassword">PLACEHOLDER</Property>
<!-- Connection settings of the INUBIT system database (IBISDB).
These settings are used to build the internal Tomcat JDBC connection pool for the DataSource that is
bound under DataSourceLocation. This template is for Oracle.
Type: Map -->
<Property name="Database" type="Map">
<!-- Fully qualified name of the JDBC driver class.
The JDBC JAR must be placed inside the <inubit-installdir>/inubit/server/process_engine/webapps/ibis/WEB-INF/lib.
Otherwise the startup fails.
Type: String. Required. -->
<Property name="driverClass">oracle.jdbc.OracleDriver</Property>
<!-- JDBC URL of the system database.
The database flavour is derived from the URL prefix (here: "jdbc:oracle:").
Replace [host] with the host name of the database server and [sid] with the SID of the instance;
1521 is the default listener port.
Type: String. Required. -->
<Property name="jdbcUrl">jdbc:oracle:thin:@[host]:1521:[sid]</Property>
<!-- Set database access credentials, username and password
Example:
<Property name="user">inubit-database-user</Property>
<Property name="password" type="Password">secret</Property>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<Property name="user" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
<Property name="password" type="Password" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
-->
<!-- Set the database user that owns the INUBIT schema.
Must be set before the first start.
The user needs write access to the database. -->
<Property name="user"></Property>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<Property name="password" type="Password" encrypted="false"></Property>
<!-- Connect and read timeout of the database connection in milliseconds.
Must be greater than or equal to 0.
Type: Long. Default: 180000 (3 minutes) -->
<Property name="socketTimeoutInMillisecs" type="Long">180000</Property>
<!-- Maximum time in milliseconds a thread waits for a free connection from the pool before the request
fails (maxWait of the connection pool).
Type: Long. Default: 120000 (2 minutes) -->
<Property name="checkoutTimeoutInMillisecs" type="Long">120000</Property>
<!-- Additional connection properties that are passed to the JDBC driver.
Every entry is a nested Property element whose name is the driver property, for example:
<Property name="driverProperties" type="Map">
<Property name="ssl">true</Property>
</Property>
Type: Map. Default: empty -->
<Property name="driverProperties" type="Map"/>
<!-- Initial size of the connection pool and minimum number of connections kept idle.
Must be greater than or equal to 0.
Type: Integer. Default: 5 -->
<Property name="minPoolSize" type="Integer">5</Property>
<!-- Maximum number of connections the pool hands out at the same time, and maximum number of idle
connections.
Must be greater than or equal to minPoolSize.
The database server has to allow at least this number of sessions.
Type: Integer. Default: 30 -->
<Property name="maxPoolSize" type="Integer">30</Property>
<!-- If true, a connection that has been in use longer than removeAbandonedTimeout is regarded as abandoned
and is reclaimed by the pool. Useful to recover from connection leaks, but a connection of a long
running query may be closed while it is still needed.
Type: Boolean. Default: false -->
<Property name="removeAbandoned" type="Boolean">false</Property>
<!-- Time in seconds after which a connection that is in use is regarded as abandoned.
Only effective if removeAbandoned is true. The value should be at least as long as the longest running
query of the installation.
Type: Integer. Default: 21600 (6 hours) -->
<Property name="removeAbandonedTimeout" type="Integer">21600</Property>
</Property>
<!-- JNDI name under which the DataSource of the system database is looked up during startup.
In the standard installation an INUBIT DataSource is bound under this name and is configured with the
Database settings above.
If nothing usable is bound, the startup fails.
Type: String. Default: java:/comp/env/jdbc/IBISDB -->
<Property name="DataSourceLocation">java:/comp/env/jdbc/IBISDB</Property>
<!-- Storage location for the backup copies of the runtime data (execution data of running processes).
FILE The backups are written to the file-based cache store below <inubit-installdir>/inubit/server/ibis_root/ibis_data/cachestore.
DB The backups are written into the system database.
An unknown value falls back to FILE.
Type: String. Default: FILE -->
<Property name="RuntimeDataBackupStore">FILE</Property>
<!-- Share of the maximum JVM heap (-Xmx) in percent that the runtime data caches may occupy in memory.
The resulting size must be greater than 0, otherwise the cache manager refuses to start.
Type: Integer. Default: 25 -->
<Property name="RuntimeDataCacheXMXPercentage" type="Integer">25</Property>
<!-- If true, every connection taken from the pool is additionally checked for validity before it is used,
and is re-established if the check fails. Setting it to false saves the check but leaves the handling
of stale connections to the JDBC driver.
Type: Boolean. Default: true -->
<Property name="CheckValidConnection" type="Boolean">true</Property>
<!-- Number of retries when a connection to the system database cannot be obtained or a statement fails with
a recoverable error. After the last unsuccessful retry the error is reported to the caller.
Type: Integer. Default: 3 -->
<Property name="noOfRetries" type="Integer">3</Property>
<!-- Waiting time in milliseconds between two retries, see noOfRetries.
Type: Long. Default: 2000 -->
<Property name="retryInterval" type="Long">2000</Property>
<!-- Limits for the number of version entries that are kept in memory before older entries are evicted from
the cache. A value less than or equal to 0 means no limit; in that case a warning is written to the log
during startup because large repositories can then cause OutOfMemory errors.
Type: Map -->
<Property name="MaxEntriesInMemoryLimit" type="Map">
<!-- Maximum number of workflow version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Workflow_Data_Version" type="Integer">-1</Property>
<!-- Maximum number of module version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Module_Data_Version" type="Integer">-1</Property>
</Property>
<!-- Number of PBKDF2 iterations used to hash user passwords.
A higher value increases the effort of a brute force attack and the effort of every password check.
Existing password hashes are not changed when the value is modified.
Type: Integer. Default: 20000 -->
<Property name="iterationCount" type="Integer">20000</Property>
<!-- Activates the Virtimo Cluster Manager. With the cluster manager enabled several INUBIT instances can form
a cluster and instances can be added or removed at runtime.
Requires a corresponding license and the configuration in <inubit-installdir>/inubit/server/ibis_root/conf/clustermanager/clusterManagerConfig.xml;
without a valid license the cluster manager is skipped with a warning in the log.
Type: Boolean. Default: false -->
<Property name="ActivateClusterManager" type="Boolean">false</Property>
</Properties>
<?xml version='1.0' encoding='UTF-8'?>
<!-- INUBIT Process Engine configuration (ibis.xml).
The Process Engine reads this file during startup. It defines the connection to the INUBIT system
database (IBISDB), the identity provider and a number of global runtime settings.
Template usage:
This file is the template for PostgreSQL. Copy it to "ibis.xml" into the same conf directory and adjust
at least the Database settings and initialRootUserPassword before the first start.
File format:
Properties/@version Version of the configuration format. Do not change.
Property/@name Name of the property. Names are case sensitive.
Property/@type Type of the value: Boolean, Integer, Long, Password, EncryptedString or Map.
Without this attribute the value is treated as a string.
Property/@encrypted Only for Password and EncryptedString: "true" if the value is stored encrypted.
Properties of type Map contain nested Property elements.
Properties that are missing from this file fall back to their built-in default values
(see com.inubit.ibis.server.cluster.NodeConfiguration). Most properties are evaluated during startup
only. LocalMaintenanceMode can also be changed at runtime and is then written back to this file;
after a successful startup the server keeps a copy of the file as ibis.xml.bak.1. -->
<Properties version="4.1">
<!-- Puts this node into local maintenance mode.
While maintenance mode is active the node stops processing new incoming messages of its listeners and
connectors, and the cluster event manager is notified so that backup nodes can take over. The property
can also be switched at runtime (for example with the maintenance command of the CLI client) and takes
effect without a restart.
Type: Boolean. Default: false -->
<Property name="LocalMaintenanceMode" type="Boolean">false</Property>
<!-- Enables verbose logging during server startup.
If true, the INUBIT, Infinispan and JGroups loggers are set to DEBUG until the log level of the server
configuration is applied; if false they start at ERROR. This switch is independent of the debug setting
in Workbench > Server Configuration.
Type: Boolean. Default: false -->
<Property name="ClusterDebug" type="Boolean">false</Property>
<!-- Identity provider used for authentication and user management.
inubit Users are managed by the INUBIT Process Engine itself.
keycloak Users are managed by an external Keycloak server; the connection details are read from the
file configured in IdentityProviderConfiguration.
The value is compared case-insensitively; any other or empty value falls back to "inubit".
Type: String. Default: inubit -->
<Property name="IdentityProvider">inubit</Property>
<!-- Name of the file that holds the connection details of the external identity provider.
Only evaluated for IdentityProvider=keycloak. The name is resolved relative to the conf directory of the
installation, so a plain file name such as "keycloak.json" is sufficient.
Type: String. Default: keycloak.json -->
<Property name="IdentityProviderConfiguration">keycloak.json</Property>
<!-- Initial password of the built-in administrator "root".
The value is used only while the default users are created, that is when the root user does not yet
exist in the user store. It must not be empty, otherwise the startup fails with "INITIAL PASSWORD IS
MISSING". Changing the value later has no effect on an already existing root user.
The installer replaces PLACEHOLDER during installation routine.
Change the password afterwards through the Workbench.
Type: String. No default. -->
<Property name="initialRootUserPassword">PLACEHOLDER</Property>
<!-- Connection settings of the INUBIT system database (IBISDB).
These settings are used to build the internal Tomcat JDBC connection pool for the DataSource that is
bound under DataSourceLocation. This template is for PostgreSQL.
Type: Map -->
<Property name="Database" type="Map">
<!-- Fully qualified name of the JDBC driver class.
The JDBC JAR must be placed inside the <inubit-installdir>/inubit/server/process_engine/webapps/ibis/WEB-INF/lib.
Otherwise the startup fails.
Type: String. Required. -->
<Property name="driverClass">org.postgresql.Driver</Property>
<!-- JDBC URL of the system database.
The database flavour is derived from the URL prefix (here: "jdbc:postgresql:").
Replace [host] with the host name of the database server and [database] with the database name;
5432 is the default port.
Type: String. Required. -->
<Property name="jdbcUrl">jdbc:postgresql://[host]:5432/[database]</Property>
<!-- Set database access credentials, username and password
Example:
<Property name="user">inubit-database-user</Property>
<Property name="password" type="Password">secret</Property>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<Property name="user" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
<Property name="password" type="Password" encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</Property>
-->
<!-- Set the database user that owns the INUBIT schema.
Must be set before the first start.
The user needs write access to the database. -->
<Property name="user"></Property>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<Property name="password" type="Password" encrypted="false"></Property>
<!-- Connect and read timeout of the database connection in milliseconds.
Must be greater than or equal to 0.
Type: Long. Default: 180000 (3 minutes) -->
<Property name="socketTimeoutInMillisecs" type="Long">180000</Property>
<!-- Maximum time in milliseconds a thread waits for a free connection from the pool before the request
fails (maxWait of the connection pool).
Type: Long. Default: 120000 (2 minutes) -->
<Property name="checkoutTimeoutInMillisecs" type="Long">120000</Property>
<!-- Additional connection properties that are passed to the JDBC driver.
Every entry is a nested Property element whose name is the driver property, for example:
<Property name="driverProperties" type="Map">
<Property name="ssl">true</Property>
</Property>
Type: Map. Default: empty -->
<Property name="driverProperties" type="Map"/>
<!-- Initial size of the connection pool and minimum number of connections kept idle.
Must be greater than or equal to 0.
Type: Integer. Default: 5 -->
<Property name="minPoolSize" type="Integer">5</Property>
<!-- Maximum number of connections the pool hands out at the same time, and maximum number of idle
connections.
Must be greater than or equal to minPoolSize.
The database server has to allow at least this number of sessions.
Type: Integer. Default: 30 -->
<Property name="maxPoolSize" type="Integer">30</Property>
<!-- If true, a connection that has been in use longer than removeAbandonedTimeout is regarded as abandoned
and is reclaimed by the pool. Useful to recover from connection leaks, but a connection of a long
running query may be closed while it is still needed.
Type: Boolean. Default: false -->
<Property name="removeAbandoned" type="Boolean">false</Property>
<!-- Time in seconds after which a connection that is in use is regarded as abandoned.
Only effective if removeAbandoned is true. The value should be at least as long as the longest running
query of the installation.
Type: Integer. Default: 21600 (6 hours) -->
<Property name="removeAbandonedTimeout" type="Integer">21600</Property>
</Property>
<!-- JNDI name under which the DataSource of the system database is looked up during startup.
In the standard installation an INUBIT DataSource is bound under this name and is configured with the
Database settings above.
If nothing usable is bound, the startup fails.
Type: String. Default: java:/comp/env/jdbc/IBISDB -->
<Property name="DataSourceLocation">java:/comp/env/jdbc/IBISDB</Property>
<!-- Storage location for the backup copies of the runtime data (execution data of running processes).
FILE The backups are written to the file-based cache store below <inubit-installdir>/inubit/server/ibis_root/ibis_data/cachestore.
DB The backups are written into the system database.
An unknown value falls back to FILE.
Type: String. Default: FILE -->
<Property name="RuntimeDataBackupStore">FILE</Property>
<!-- Share of the maximum JVM heap (-Xmx) in percent that the runtime data caches may occupy in memory.
The resulting size must be greater than 0, otherwise the cache manager refuses to start.
Type: Integer. Default: 25 -->
<Property name="RuntimeDataCacheXMXPercentage" type="Integer">25</Property>
<!-- If true, every connection taken from the pool is additionally checked for validity before it is used,
and is re-established if the check fails. Setting it to false saves the check but leaves the handling
of stale connections to the JDBC driver.
Type: Boolean. Default: true -->
<Property name="CheckValidConnection" type="Boolean">true</Property>
<!-- Number of retries when a connection to the system database cannot be obtained or a statement fails with
a recoverable error. After the last unsuccessful retry the error is reported to the caller.
Type: Integer. Default: 3 -->
<Property name="noOfRetries" type="Integer">3</Property>
<!-- Waiting time in milliseconds between two retries, see noOfRetries.
Type: Long. Default: 2000 -->
<Property name="retryInterval" type="Long">2000</Property>
<!-- Limits for the number of version entries that are kept in memory before older entries are evicted from
the cache. A value less than or equal to 0 means no limit; in that case a warning is written to the log
during startup because large repositories can then cause OutOfMemory errors.
Type: Map -->
<Property name="MaxEntriesInMemoryLimit" type="Map">
<!-- Maximum number of workflow version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Workflow_Data_Version" type="Integer">-1</Property>
<!-- Maximum number of module version entries in memory. -1 means unlimited.
Type: Integer. Default: -1 -->
<Property name="Module_Data_Version" type="Integer">-1</Property>
</Property>
<!-- Number of PBKDF2 iterations used to hash user passwords.
A higher value increases the effort of a brute force attack and the effort of every password check.
Existing password hashes are not changed when the value is modified.
Type: Integer. Default: 20000 -->
<Property name="iterationCount" type="Integer">20000</Property>
<!-- Activates the Virtimo Cluster Manager. With the cluster manager enabled several INUBIT instances can form
a cluster and instances can be added or removed at runtime.
Requires a corresponding license and the configuration in <inubit-installdir>/inubit/server/ibis_root/conf/clustermanager/clusterManagerConfig.xml;
without a valid license the cluster manager is skipped with a warning in the log.
Type: Boolean. Default: false -->
<Property name="ActivateClusterManager" type="Boolean">false</Property>
</Properties>
Datenbank konfigurieren
-
Datenbanktreiber
-
Syntax:
driverClass=<database-driver-class> -
Name der Datenbanktreiberklasse
-
-
JDBC-URL
-
Syntax:
jdbcUrl=jdbc:<database>@<port>:<schema> -
Datenbanktreiber-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.2der Datenbank-URL hinzufügen.
-
-
Benutzername
-
Syntax:
user=<Benutzername> encrypted="{true|false}" -
Mögliche Werte:
-
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 Attributencrypted="true"wird automatisch gesetzt.
-
-
-
Passwort
-
Syntax:
password=<Passwort> encrypted="{true|false}" -
Mögliche Werte:
-
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 Attributencrypted="true"wird automatisch gesetzt.
-
-
-
Socket-Timeout
-
Syntax:
socketTimeoutInMillisecs=<value> -
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
-
Syntax:
checkoutTimeoutInMillisecs=<value> -
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
5bzw.30.
-
-
Unbenutzte Datenbankverbindungen entfernen
-
Syntax:
removeAbandoned="{true|false}" -
Mögliche Werte:
-
trueEine Datenbankverbindung wird entfernt, wenn die in der Property
removeAbandonedTimeoutgesetzte 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
-
Syntax:
removeAbandonedTimeout=<value> -
Wenn die Property
removeAbandonedauftruegesetzt ist, wird eine Datenbankverbindung entfernt, sobald die in der PropertyremoveAbandonedTimeoutgesetzte Zeitpanne in Sekunden überschritten ist. Standardmäßig ist die PropertyremoveAbandonedTimeoutauf 21'600 Sekunden (6 Stunden) gesetzt.Der Wert sollte auf die Zeitspanne der am längsten dauernden Anfrage gesetzt werden.
-
-
Prüfung auf gültige Verbindung
-
Syntax:
CheckValidConnection={true|false} -
Mögliche Werte:
-
true: Wenn eine Verbindung ungültig ist, wird automatisch die nächste Verbindung aus dem Pool ausgewählt.Diese Property ist standardmäßig auf
truegesetzt. -
false: um die Property zu deaktivierenWenn 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
noOfRetriesdefiniert. Jeder Wiederholungsversuch erfolgt nach einer inretryInterval(in Millisekunden) angegebenen Verzö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.
-
-
Mehr als ein Schema zulassen (nur für MySQL 8, nicht empfohlen)
-
Syntax:
nullCatalogMeansCurrent={true|false} -
Wenn ein Datenbankbenutzer Zugriff auf mehrere Schemas hat: Fügen Sie den zusätzlichen Parameter
nullCatalogMeansCurrent=trueder Datenbank-URL hinzu.
-
Größe des Laufzeitdaten-Cache begrenzen
Verwendung
Definiert den maximalen Anteil des JVM-Heap (-Xmx), der für das Caching von Laufzeitdaten (Nachrichteninhalte und Workflow-Variablen) im Arbeitsspeicher verwendet werden darf.
Wenn die Gesamtgröße aller gecachten Einträge dieses Limit überschreitet oder ein einzelner Eintrag größer als 1 MB ist, werden die Daten automatisch auf die Festplatte geschrieben statt im Arbeitsspeicher gehalten.
Die Process Engine arbeitet in diesem Fall normal weiter.
Es kommt weder zu einem Fehler noch zu Datenverlust, allerdings steigt die Festplatten-E/A.
Properties
-
Syntax:
RuntimeDataCacheXMXPercentage=25 -
Standardwert:
25(25 % des JVM-Heap) -
Beispiel:
Wird die JVM mit
-Xmx4g(4 GB Heap) gestartet, stehen bei 25 % etwa 1 GB für den Laufzeitdaten-Cache zur Verfügung.
Bei-Xmx16gergeben 25 % etwa 4 GB. -
Empfehlung:
Für Systeme mit deutlich mehr Heap als den standardmäßigen 4 GB kann eine Erhöhung des Werts die Festplatten-E/A reduzieren und den Durchsatz verbessern. Erhöhen Sie den Wert schrittweise und überwachen Sie dabei die Cache-Auslastung sowie das Verhalten der Garbage Collection, da der verbleibende Heap weiterhin für alle weiteren Operationen der Process Engine ausreichen muss. Die Cache-Auslastung kann per JMX überwacht werden (MBean
DataStore.Binary, AttributeRuntimeDataCacheMaxSizeundRuntimeDataCacheUtilization).Siehe Verzeichnisstruktur für Details zu den Swap-Verzeichnissen, die bei Überschreitung des Cache-Limits verwendet werden.
Speichermodus für Laufzeitdaten
Verwendung
Legt fest, ob und wo die Process Engine Sicherungskopien der Laufzeitdaten asynchroner Workflow-Ausführungen ablegt, damit Workflows nach einem Neustart oder Absturz wiederhergestellt werden können.
Synchrone Ausführungsdaten sind von dieser Einstellung nicht betroffen. Synchrone Daten verwenden eigene lokale Stores ohne Backup; sie können bei Speicherdruck zwar ebenfalls auf die Festplatte ausgelagert werden, werden aber nicht zur Wiederherstellung persistiert (siehe Verzeichnisstruktur).
Properties
-
Syntax:
RuntimeDataBackupStore={FILE|DB} -
Mögliche Werte:
-
FILE(Standard)Laufzeitdaten werden im lokalen Dateisystem persistiert.
Verwenden Sie diese Einstellung für die beste Performance. Dateibasierte Persistierung hat weniger Overhead als Datenbank-Persistierung.
-
DBLaufzeitdaten werden in der Datenbank persistiert (Tabellen
IBIS_RT_EXEC_DATAundIBIS_RT_OTHER_DATA).Verwenden Sie diese Einstellung, wenn Datensicherheit wichtiger als Performance ist.
-
Wiederholung und Wiederholungsverzögerung für die Cache-Datenbank konfigurieren
Properties
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.
Speicher für Versionsdaten konfigurieren
Verwendung
Diese Konfiguration begrenzt die Anzahl der Modul- und Workflow-Versionsdefinitionen (XML-Daten), welche die Process Engine in ihrem In-Memory-Cache vorhält. Das Limit bezieht sich auf die Gesamtanzahl der Versionseinträge über alle Module bzw. Workflows hinweg, nicht auf die Anzahl der Module/Workflows selbst.
Beispiel: Ein Limit von 100 für Module_Data_Version bedeutet, dass maximal 100 Modul-Versions-Kombinationen gleichzeitig im Arbeitsspeicher gehalten werden.
Bei 20 Modulen mit je 5 Versionen passen alle 100 Einträge in den Cache.
Die Versionen eines 21. Moduls würden dazu führen, dass einige der bestehenden Einträge aus dem Arbeitsspeicher verdrängt werden.
Properties
<Property name="MaxEntriesInMemoryLimit" type="Map">
<Property name="Workflow_Data_Version" type="Integer">-1</Property>
<Property name="Module_Data_Version" type="Integer">-1</Property>
</Property>
-
Module_Data_Version: Maximale Anzahl der Modulversions-Einträge im Cache -
Workflow_Data_Version: Maximale Anzahl der Workflowversions-Einträge im Cache
Verdrängungsverhalten
Wenn der Cache sein konfiguriertes Limit erreicht, verdrängt die zugrundeliegende Infinispan-Cache-Implementierung Einträge, um Platz für neue zu schaffen. Verdrängte Einträge gehen nicht verloren: alle Versionsdaten werden zusätzlich in der Datenbank gehalten, sodass ein verdrängter Eintrag beim nächsten Zugriff automatisch aus der Datenbank nachgeladen wird. Ein gesetztes Limit beeinflusst also nicht die Verfügbarkeit der Versionsdaten, sondern nur die Zugriffsgeschwindigkeit für Einträge, die gerade nicht im Arbeitsspeicher liegen.
Mögliche Werte
-
-1(Standard): Cache-Kapazität ist unbegrenzt. Alle aufgerufenen Versionen verbleiben dauerhaft im Arbeitsspeicher.Bei einer großen Anzahl von Modul- und Workflow-Versionen kann unbegrenztes Caching zu hohem Speicherverbrauch und Out-of-Memory-Situationen führen.
-
1..n: Cache-Kapazität ist auf diese Anzahl von Einträgen begrenzt. Passen Sie den Wert basierend auf dem verfügbaren Speicher des Systems und der Anzahl der typischerweise während des Betriebs genutzten Versionen an.
ClusterDebug konfigurieren
-
Syntax:
ClusterDebug={true|false} -
Mögliche Werte:
-
trueDie Änderung des Loglevels ist nach dem Hochfahren in der Workbench über Administration → Logging → Trace möglich. Wenn der Server neu gestartet wird, protokolliert er erneut auf dem DEBUG-Loglevel, da ClusterDebug auf true gesetzt ist.
-
falseDie Änderung des Loglevels ist nach dem Hochfahren in der Workbench über Administration → Logging → Trace möglich. Wenn der Server neu gestartet wird, protokolliert er erneut auf dem ERROR-Loglevel, da ClusterDebug auf false gesetzt ist.
-
iterationCount konfigurieren
Der PBKDF2 (Password Based Key Derivation Function 2) Algorithmus zur Verschlüsselung von Benutzerkontopasswörtern verwendet ein iterationCount, um die Anzahl der Anwendungen des Hash-Algorithmus während des Schlüsselableitungsprozesses zu bestimmen.
Die Anzahl der Iterationen im PBKDF2 gibt an, wie oft eine Pseudozufallsfunktion (wie HMAC-SHA256) auf ein Passwort angewendet wird, um einen sicheren Schlüssel abzuleiten.
Der Standardwert für das iterationCount in ibis.xml beträgt 20000.
-
Höherer
iterationCount: Die Hash-Funktion (z. B. HMAC-SHA256) wird während der Schlüsselableitung häufiger verwendet, wenn dasiterationCounthöher ist.Vorteile:
-
Erhöhte Security: Erschwert Brute-Force- und Passwortknackversuche für Angreifer.
-
Key Verstärkung: Der abgeleitete Schlüssel ist gegen vorberechnete Angriffe (wie Regenbogentabellen) geschützt, da jede Ableitung mit dem eindeutigen Salt und der Anzahl der Iterationen verknüpft ist.
Nachteile:
-
Verzögert die Reaktionszeiten
-
Verringert den Durchsatz
-
Verursacht einen kurzfristigen Anstieg der CPU- und Festplattennutzung
-
-
Niedriger
iterationCount: Die Hash-Funktion wird weniger häufig verwendet, wenn dasiterationCountniedriger ist.Vorteile: Nützlich für Geräte mit geringer Leistungsstärke oder Systeme mit hohem Datenverkehr, bei denen Geschwindigkeit entscheidend ist.
Nachteile:
Verringerte Security: Verbessert das Knacken von Passwörtern und Brute-Force-Angriffe für Angreifer.