Configuring Logging
Configuring the Logging Database Connection in the logsDBConfig.xml File
Configuration file (<connection> block)
<SUITE-INSTALL-DIR>/inubit/server/ibis_root/conf/logsDBConfig.xml
-
H2
-
DB2
-
MariaDB
-
MySQL
-
Oracle
-
Postgres
<?xml version="1.0" encoding="ISO-8859-1"?>
<LogsDatabaseConfig>
<!-- Connection data and connection pool settings of the log database. -->
<connection>
<!-- 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.
The H2 driver is already part of the INUBIT installation.
-->
<driver>org.h2.Driver</driver>
<!-- JDBC connection URL of the embedded H2 log database.
${ibis.root.directory} is resolved at startup and points to the INUBIT root directory.
DB_CLOSE_ON_EXIT=FALSE keeps the database open until the Process Engine closes it
with the shutdownCommand.
-->
<url>jdbc:h2:${ibis.root.directory}/log/dbh2/logs;DB_CLOSE_ON_EXIT=FALSE</url>
<!-- Set database access credentials, username and password
Example:
<user>inubit-database-user</user>
<password>secret</password>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<user encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</user>
<password encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</password>
-->
<!-- Set the database user that owns the INUBIT schema.
Must be set before the first start.
The user needs write access to the database. -->
<user>sa</user>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<password encrypted="false"></password>
<!-- SQL command that the Process Engine executes when it closes the connections to the log database.
For the embedded H2 database the command ensures that the database files are closed properly.
Leave the element empty if the database must not be shut down by the Process Engine.
-->
<shutdownCommand>SHUTDOWN</shutdownCommand>
<!-- Controls whether a connection is checked before it is used.
true: Every connection taken from the pool is checked;
a broken connection is re-established according to noOfRetries and retryInterval.
false: Connections are used without this additional check, which is slightly faster
but can hand out broken connections.
-->
<checkValidConnection>true</checkValidConnection>
<!-- Number of connections that the pool opens at startup and keeps open as idle connections.
The value has to be greater than or equal to 0 and must not be greater than maxPoolSize.
-->
<minPoolSize>1</minPoolSize>
<!-- Maximum number of connections that the pool keeps open at the same time.
The value has to be greater than or equal to minPoolSize.
Increase the value if many workflows write log entries in parallel;
every connection also consumes resources on the database server.
-->
<maxPoolSize>100</maxPoolSize>
<!-- Maximum time in milliseconds that a thread waits for a free connection from the pool.
If no connection becomes available within this time, the database access fails with an error.
0 lets the thread wait without a time limit.
-->
<checkoutTimeoutInMillisecs>120000</checkoutTimeoutInMillisecs>
<!-- Maximum lifetime of a pooled connection in milliseconds.
Older connections are closed and replaced by new ones, which prevents problems
with connections that have been open for a long time.
0 disables the replacement based on the connection age.
-->
<maxAgeInMillisecs>3600000</maxAgeInMillisecs>
<!-- Number of times the Process Engine repeats a failed database access before it reports an error.
0 disables the repetition.
-->
<noOfRetries>3</noOfRetries>
<!-- Waiting time in milliseconds between two attempts; see noOfRetries. -->
<retryInterval>2000</retryInterval>
<!-- Controls whether connections that are in use for a long time are reclaimed by the pool.
true: Connections that have been taken from the pool but have not been returned
within removeAbandonedTimeout are closed and reclaimed.
false: Connections are not reclaimed.
Activate this option only for tracking down connection leaks, because it can also
close connections of long running database operations.
-->
<removeAbandoned>false</removeAbandoned>
<!-- Time in seconds after which a connection that is still in use is treated as abandoned.
The value is only evaluated if removeAbandoned is set to true.
-->
<removeAbandonedTimeout>21600</removeAbandonedTimeout>
</connection>
<tables>
<systemLog tableName="inubitLog">
<statements>
<createTable>CREATE CACHED TABLE inubitLog (is_globalPId VARCHAR, is_workflowId BIGINT, is_workflowName VARCHAR, is_tag VARCHAR, is_inputModule VARCHAR, is_outputModule VARCHAR, is_inputSize BIGINT, is_outputSize BIGINT, is_startTime BIGINT, is_endTime BIGINT, is_success BIT, is_message VARCHAR, is_owner VARCHAR, is_priority INTEGER, is_node VARCHAR, is_userDefined1 VARCHAR(256), is_userDefined2 VARCHAR(256), is_userDefined3 VARCHAR(256), is_userDefined4 VARCHAR(256), is_userDefined5 VARCHAR(256))</createTable>
</statements>
</systemLog>
<workflowLog tableName="inubitWorkflow">
<statements>
<createTable>CREATE CACHED TABLE inubitWorkflow (is_globalPId VARCHAR, is_workflowId BIGINT, is_moduleName VARCHAR, is_previousModule VARCHAR, is_nextModule VARCHAR, is_message VARCHAR, is_startTime BIGINT, is_endTime BIGINT, is_node VARCHAR, is_workflowVersion VARCHAR, is_section BIGINT, is_childSection BIGINT)</createTable>
</statements>
</workflowLog>
<queueLog tableName="inubitQueue">
<statements>
<createTable>CREATE CACHED TABLE inubitQueue (is_globalPId VARCHAR, is_workflowId BIGINT, is_workflowName VARCHAR, is_moduleName VARCHAR, is_tag VARCHAR, is_moduleType VARCHAR, is_startTime BIGINT, is_nextStartTime BIGINT, is_status INTEGER,is_fileName VARCHAR, is_fileSize BIGINT, is_owner VARCHAR, is_priority INTEGER, is_node VARCHAR, is_userDefined1 VARCHAR(256), is_userDefined2 VARCHAR(256), is_userDefined3 VARCHAR(256), is_userDefined4 VARCHAR(256), is_userDefined5 VARCHAR(256))</createTable>
</statements>
</queueLog>
<queuePortalSessionLog tableName="inubitPortalSessionQueue">
<statements>
<createTable>CREATE CACHED TABLE inubitPortalSessionQueue (is_workflowId BIGINT, is_webAppModuleName VARCHAR, is_taskGenModuleName VARCHAR, is_sessionId VARCHAR)</createTable>
</statements>
</queuePortalSessionLog>
<auditLog tableName="inubitAudit">
<statements>
<createTable>CREATE CACHED TABLE inubitAudit (is_operation VARCHAR, is_objectName VARCHAR, is_time BIGINT, is_success BIT, is_message VARCHAR, is_user VARCHAR)</createTable>
</statements>
</auditLog>
<ediUserLog tableName="inubitEDIUser">
<statements>
<createTable>CREATE CACHED TABLE inubitEDIUser (is_ruleName VARCHAR, is_userData CLOB, is_time BIGINT)</createTable>
</statements>
</ediUserLog>
<connectionLog tableName="inubitConnection">
<statements>
<createTable>CREATE CACHED TABLE inubitConnection (is_systemId VARCHAR, is_globalPId VARCHAR, is_systemType VARCHAR, is_version VARCHAR, is_connectionStatus VARCHAR, is_lastConnection BIGINT, is_licenceLastUpdate BIGINT, is_licenceDuration BIGINT)</createTable>
</statements>
</connectionLog>
<keyManager tableName="inubitKeyManager">
<statements>
<createTable>CREATE CACHED TABLE inubitKeyManager (is_name VARCHAR, is_propertyName VARCHAR, is_description VARCHAR, is_tag VARCHAR, is_type VARCHAR, is_URL VARCHAR, is_validity BIGINT, is_validityClient BIGINT, is_owner VARCHAR, is_serial_number VARCHAR, is_subject VARCHAR)</createTable>
</statements>
</keyManager>
<schedulerLog tableName="inubitScheduler">
<statements>
<createTable>CREATE CACHED TABLE inubitScheduler (is_workflowName VARCHAR, is_moduleName VARCHAR, is_tag VARCHAR, is_moduleType VARCHAR, is_statusActive INTEGER, is_nextStartTime BIGINT, is_owner VARCHAR)</createTable>
</statements>
</schedulerLog>
<systemStatisticLog tableName="inubitSystemStatisticLog">
<statements>
<createTable>CREATE TABLE inubitSystemStatisticLog (is_logTime BIGINT, is_cpuUsage BIGINT, is_memoryUsage BIGINT, is_swapUsage BIGINT, is_harddiscUsage BIGINT, is_ISMemoryUsage BIGINT, is_ISProcessingWorkflows BIGINT, is_ConcurrentUser BIGINT, is_node VARCHAR, is_NonHeapISMemoryUsage BIGINT, is_freeHardDiskSize BIGINT, is_inubitSize BIGINT)</createTable>
</statements>
</systemStatisticLog>
<events tableName="inubitEvents">
<statements>
<createTable>CREATE TABLE inubitEvents (is_key VARCHAR, is_value VARCHAR)</createTable>
</statements>
</events>
<workFlowErrorData tableName="inubitWorkflowErrorData">
<statements>
<createTable>CREATE TABLE inubitWorkflowErrorDat (is_id BIGINT AUTO_INCREMENT PRIMARY KEY, is_server VARCHAR(256), is_serverId VARCHAR(256), is_dateTime BIGINT, is_workflowName VARCHAR(256), is_moduleName VARCHAR(256), is_IsErrorKey VARCHAR(256), is_IsErrorString VARCHAR(1024),is_errorMailContent VARCHAR(1024),is_processId VARCHAR(255))</createTable>
</statements>
</workFlowErrorData>
<webserviceManager tableName="inubitWebservice">
<statements>
<createTable>CREATE TABLE inubitWebservice (is_workflowName VARCHAR, is_moduleName VARCHAR, is_tag VARCHAR, is_moduleType VARCHAR, is_webserviceStatus INTEGER, is_owner VARCHAR)</createTable>
</statements>
</webserviceManager>
</tables>
<queries>
<selectMinMax>SELEC MI ( ${column.name} , MAX( ${column.name} )</selectMinMax>
<selectLimit>SELECT LIMIT ${offset} ${amount} ${column.names} FROM ${table.names} ${where} ${order}</selectLimit>
</queries>
<!-- Options for limiting the number of entries in the System Log.
The entries can be limited by time (maximumLimitDays) or by number (minimumLimit and maximumLimit).
-->
<dataEntriesLimit>
<!-- Restricts the size of the monitoring window of the System Log by time.
0: Option disabled; entries are logged until maximumLimit is reached, then the log is
reduced to minimumLimit.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimit and maximumLimit are ignored.
-->
<maximumLimitDays>0</maximumLimitDays>
<!-- Number of System Log entries that are kept as soon as maximumLimit is reached and the entries are reduced.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<minimumLimit>40000</minimumLimit>
<!-- Number of System Log entries at which the entries are reduced to minimumLimit.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<maximumLimit>50000</maximumLimit>
</dataEntriesLimit>
<!-- Options for limiting the number of entries in the Audit Log.
The entries can be limited by time (maximumLimitDaysAuditLog) or
by number (minimumLimitAuditLog and maximumLimitAuditLog).
-->
<dataEntriesLimitAuditLog>
<!-- Restricts the size of the monitoring window of the Audit Log by time.
0: Option disabled; entries are logged until maximumLimitAuditLog is reached,
then the log is reduced to minimumLimitAuditLog.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimitAuditLog and maximumLimitAuditLog are ignored.
-->
<maximumLimitDaysAuditLog>0</maximumLimitDaysAuditLog>
<!-- Number of Audit Log entries that are kept as soon as maximumLimitAuditLog is reached
and the entries are reduced.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<minimumLimitAuditLog>40000</minimumLimitAuditLog>
<!-- Number of Audit Log entries at which the entries are reduced to minimumLimitAuditLog.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<maximumLimitAuditLog>50000</maximumLimitAuditLog>
</dataEntriesLimitAuditLog>
<!-- Number of log entries that the Process Engine writes to the log database within one batch insert.
Larger values reduce the number of database round trips, but the entries are kept in memory until they are written.
Values below 1000 are internally raised to 1000.
-->
<blockInsertSize>2000</blockInsertSize>
<!-- Capacity of the internal memory queue that buffers the log entries until the logging thread
writes them to the log database.
If the queue is full, the writing threads have to wait until pending entries have been written.
Increase the value for systems with a high logging load and take the additional memory consumption into account.
-->
<maxQueueLogSize>200000</maxQueueLogSize>
</LogsDatabaseConfig>
<?xml version="1.0" encoding="ISO-8859-1"?>
<LogsDatabaseConfig>
<!-- Connection data and connection pool settings of the log database. -->
<connection>
<!-- 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.
For DB2 on z/OS, OS/390, iSeries or VM/VSE the license file "db2jcc_license_cisuz.jar" is required (IBM package "DB2 Connect").
For DB2 LUW (Linux, Unix, Windows) no license file is required.
-->
<driver>com.ibm.db2.jcc.DB2Driver</driver>
<!-- JDBC connection URL of the log database.
Replace [host] with the host name, [port] with the port number and [database] with the database name;
Format: jdbc:db2://[host]:[port]/[database];
50000 is the default port of DB2.
-->
<url>jdbc:db2://[host]:50000/[database]</url>
<!-- Set database access credentials, username and password
Example:
<user>inubit-database-user</user>
<password>secret</password>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<user encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</user>
<password encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</password>
-->
<!-- Set the database user that owns the INUBIT schema.
Must be set before the first start.
The user needs write access to the database. -->
<user>user</user>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<password encrypted="false">password</password>
<!-- Controls whether a connection is checked before it is used.
true: Every connection taken from the pool is checked;
a broken connection is re-established according to noOfRetries and retryInterval.
false: Connections are used without this additional check, which is slightly faster
but can hand out broken connections.
-->
<checkValidConnection>true</checkValidConnection>
<!-- Number of connections that the pool opens at startup and keeps open as idle connections.
The value has to be greater than or equal to 0 and must not be greater than maxPoolSize.
-->
<minPoolSize>1</minPoolSize>
<!-- Maximum number of connections that the pool keeps open at the same time.
The value has to be greater than or equal to minPoolSize.
Increase the value if many workflows write log entries in parallel;
every connection also consumes resources on the database server.
-->
<maxPoolSize>100</maxPoolSize>
<!-- Maximum time in milliseconds that a thread waits for a free connection from the pool.
If no connection becomes available within this time, the database access fails with an error.
0 lets the thread wait without a time limit.
-->
<checkoutTimeoutInMillisecs>120000</checkoutTimeoutInMillisecs>
<!-- Maximum lifetime of a pooled connection in milliseconds.
Older connections are closed and replaced by new ones, which prevents problems
with connections that have been open for a long time.
0 disables the replacement based on the connection age.
-->
<maxAgeInMillisecs>3600000</maxAgeInMillisecs>
<!-- Number of times the Process Engine repeats a failed database access before it reports an error.
0 disables the repetition.
-->
<noOfRetries>3</noOfRetries>
<!-- Waiting time in milliseconds between two attempts; see noOfRetries. -->
<retryInterval>2000</retryInterval>
<!-- Controls whether connections that are in use for a long time are reclaimed by the pool.
true: Connections that have been taken from the pool but have not been returned
within removeAbandonedTimeout are closed and reclaimed.
false: Connections are not reclaimed.
Activate this option only for tracking down connection leaks, because it can also
close connections of long running database operations.
-->
<removeAbandoned>false</removeAbandoned>
<!-- Time in seconds after which a connection that is still in use is treated as abandoned.
The value is only evaluated if removeAbandoned is set to true.
-->
<removeAbandonedTimeout>21600</removeAbandonedTimeout>
</connection>
<tables>
<systemLog tableName="inubitLog">
<statements>
<createTable>CREATE TABLE inubitLog (is_globalPId VARCHAR(256), is_workflowId NUM(22,0), is_workflowName VARCHAR(256), is_tag VARCHAR(256), is_inputModule VARCHAR(256), is_outputModule VARCHAR(256), is_inputSize NUM(22,0), is_outputSize NUM(22,0), is_startTime NUM(22,0), is_endTime NUM(22,0), is_success NUM(1,0), is_message VARCHAR(4000), is_owner VARCHAR(256), is_priority NUM(22,0), is_node VARCHAR(56), is_userDefined1 VARCHAR(256), is_userDefined2 VARCHAR(256), is_userDefined3 VARCHAR(256), is_userDefined4 VARCHAR(256), is_userDefined5 VARCHAR(256))</createTable>
</statements>
</systemLog>
<workflowLog tableName="inubitWorkflow">
<statements>
<createTable>CREATE TABLE inubitWorkflow (is_globalPId VARCHAR(256), is_workflowId NUM(22,0), is_moduleName VARCHAR(256), is_previousModule VARCHAR(256), is_nextModule VARCHAR(256), is_message VARCHAR(4000), is_startTime NUM(22,0), is_endTime NUM(22,0), is_node VARCHAR(56), is_workflowVersion VARCHAR(256), is_section NUM(22,0), is_childSection NUM(22,0) )</createTable>
</statements>
</workflowLog>
<queueLog tableName="inubitQueue">
<statements>
<createTable>CREATE TABLE inubitQueue (is_globalPId VARCHAR(256), is_workflowId NUM(22,0), is_workflowName VARCHAR(256), is_moduleName VARCHAR(256), is_tag VARCHAR(256), is_moduleType VARCHAR(256), is_startTime NUM(22,0), is_nextStartTime NUM(22,0), is_status NUM(22,0), is_fileName VARCHAR(256), is_fileSize NUM(22,0), is_owner VARCHAR(256), is_priority NUM(22,0), is_node VARCHAR(56), is_userDefined1 VARCHAR(256), is_userDefined2 VARCHAR(256), is_userDefined3 VARCHAR(256), is_userDefined4 VARCHAR(256), is_userDefined5 VARCHAR(256))</createTable>
</statements>
</queueLog>
<auditLog tableName="inubitAudit">
<statements>
<createTable>CREATE TABLE inubitAudit (is_operation VARCHAR(256), is_objectName VARCHAR(256), is_time NUM(22,0), is_success NUM(1,0), is_message VARCHAR(256), is_user VARCHAR(256))</createTable>
</statements>
</auditLog>
<ediUserLog tableName="inubitEDIUser">
<statements>
<createTable>CREATE TABLE inubitEDIUser (is_ruleName VARCHAR(256), is_userData CLOB, is_time NUM(22,0))</createTable>
</statements>
</ediUserLog>
<queuePortalSessionLog tableName="inubitPortalSessionQueue">
<statements>
<createTable>CREATE TABLE inubitPortalSessionQueue (is_workflowId NUM(22,0), is_webAppModuleName VARCHAR(256), is_taskGenModuleName VARCHAR(256), is_sessionId VARCHAR(256))</createTable>
</statements>
</queuePortalSessionLog>
<connectionLog tableName="inubitConnection">
<statements>
<createTable>CREATE TABLE inubitConnection (is_systemId VARCHAR(256), is_systemType VARCHAR(256), is_version VARCHAR(256), is_connectionStatus VARCHAR(256), is_lastConnection NUM(22,0), is_licenceLastUpdate NUM(22,0), is_licenceDuration NUM(22,0))</createTable>
</statements>
</connectionLog>
<keyManager tableName="inubitKeyManager">
<statements>
<createTable>CREATE TABLE inubitKeyManager (is_name VARCHAR(256), is_propertyName VARCHAR(256), is_description VARCHAR(256), is_tag VARCHAR(256), is_type VARCHAR(256), is_URL VARCHAR(256), is_validity NUM(22,0), is_validityClient NUM(22,0), is_owner VARCHAR(256), is_serial_number VARCHAR(256), is_subject VARCHAR(256))</createTable>
</statements>
</keyManager>
<schedulerLog tableName="inubitScheduler">
<statements>
<createTable>CREATE TABLE inubitScheduler (is_workflowName VARCHAR(256), is_moduleName VARCHAR(256), is_tag VARCHAR(256), is_moduleType VARCHAR(256), is_statusActive NUM(1,0), is_nextStartTime NUM(22,0), is_owner VARCHAR(256))</createTable>
</statements>
</schedulerLog>
<systemStatisticLog tableName="inubitSystemStatisticLog">
<statements>
<createTable>CREATE TABLE inubitSystemStatisticLog (is_logTime NUM(22,0), is_cpuUsage NUM(22,0), is_memoryUsage NUM(22,0), is_swapUsage NUM(22,0), is_harddiscUsage NUM(22,0), is_ISMemoryUsage NUM(22,0), is_ISProcessingWorkflows NUM(22,0), is_ConcurrentUser NUM(22,0), is_node VARCHAR(56), is_NonHeapISMemoryUsage NUM(22,0), is_freeHardDiskSize NUM(22,0), is_inubitSize NUM(22,0))</createTable>
</statements>
</systemStatisticLog>
<events tableName="inubitEvents">
<statements>
<createTable>CREATE TABLE inubitEvents (is_key VARCHAR(256), is_value VARCHAR(256))</createTable>
</statements>
</events>
<workFlowErrorData tableName="inubitWorkflowErrorData">
<statements>
<createTable>CREATE TABLE inubitWorkflowErrorData(is_id BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1), is_server VARCHAR(256), is_serverId VARCHAR(256), is_dateTime BIGINT, is_workflowName VARCHAR(256), is_moduleName VARCHAR(256), is_IsErrorKey VARCHAR(256), is_IsErrorString VARCHAR(1024),is_errorMailContent VARCHAR(1024),is_processId VARCHAR(255), PRIMARY KEY(is_id))</createTable>
</statements>
</workFlowErrorData>
<webserviceManager tableName="inubitWebservice">
<statements>
<createTable>CREATE TABLE inubitWebservice (is_workflowName VARCHAR(256), is_moduleName VARCHAR(256), is_tag VARCHAR(256), is_moduleType VARCHAR(256), is_webserviceStatus NUM(1,0), is_owner VARCHAR(256))</createTable>
</statements>
</webserviceManager>
</tables>
<queries>
<selectMinMax>SELECT MIN( ${column.name} ) , MAX( ${column.name} )</selectMinMax>
<selectLimit>SELECT ${column.names} FROM ( SELECT ROWNUMBER() OVER (${order}) rownum1, ${column.names} FROM ${table.names} ${where} FETCH FIRST ${offsetPlusAmount} ROWS ONLY ) AS T1 WHERE T1.rownum1 BETWEEN ${offset} AND (${offset} + ${amount})</selectLimit>
</queries>
<!-- Options for limiting the number of entries in the System Log.
The entries can be limited by time (maximumLimitDays) or by number (minimumLimit and maximumLimit).
DB2 is recommended for very large logs, because it supports complete server side cursors and multithreaded sorting.
-->
<dataEntriesLimit>
<!-- Restricts the size of the monitoring window of the System Log by time.
0: Option disabled; entries are logged until maximumLimit is reached, then the log is
reduced to minimumLimit.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimit and maximumLimit are ignored.
-->
<maximumLimitDays>0</maximumLimitDays>
<!-- Number of System Log entries that are kept as soon as maximumLimit is reached and the entries are reduced.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<minimumLimit>200000</minimumLimit>
<!-- Number of System Log entries at which the entries are reduced to minimumLimit.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<maximumLimit>210000</maximumLimit>
</dataEntriesLimit>
<!-- Options for limiting the number of entries in the Audit Log.
The entries can be limited by time (maximumLimitDaysAuditLog) or
by number (minimumLimitAuditLog and maximumLimitAuditLog).
DB2 is recommended for very large logs, because it supports complete server side cursors and multithreaded sorting.
-->
<dataEntriesLimitAuditLog>
<!-- Restricts the size of the monitoring window of the Audit Log by time.
0: Option disabled; entries are logged until maximumLimitAuditLog is reached,
then the log is reduced to minimumLimitAuditLog.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimitAuditLog and maximumLimitAuditLog are ignored.
-->
<maximumLimitDaysAuditLog>0</maximumLimitDaysAuditLog>
<!-- Number of Audit Log entries that are kept as soon as maximumLimitAuditLog is reached
and the entries are reduced.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<minimumLimitAuditLog>40000</minimumLimitAuditLog>
<!-- Number of Audit Log entries at which the entries are reduced to minimumLimitAuditLog.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<maximumLimitAuditLog>50000</maximumLimitAuditLog>
</dataEntriesLimitAuditLog>
<!-- Number of log entries that the Process Engine writes to the log database within one batch insert.
Larger values reduce the number of database round trips, but the entries are kept in memory until they are written.
Values below 1000 are internally raised to 1000.
-->
<blockInsertSize>2000</blockInsertSize>
<!-- Capacity of the internal memory queue that buffers the log entries until the logging thread
writes them to the log database.
If the queue is full, the writing threads have to wait until pending entries have been written.
Increase the value for systems with a high logging load and take the additional memory consumption into account.
-->
<maxQueueLogSize>200000</maxQueueLogSize>
</LogsDatabaseConfig>
<?xml version="1.0" encoding="ISO-8859-1"?>
<LogsDatabaseConfig>
<!-- Connection data and connection pool settings of the log database. -->
<connection>
<!-- 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.
-->
<driver>org.mariadb.jdbc.Driver</driver>
<!-- JDBC connection URL of the log database.
Replace [host] with the host name, [port] with the port number and [test] with the database name;
Format: jdbc:mariadb://[host]:[port]/[database];
3306 is the default port of MariaDB.
Only the host name and the database name have to be adapted;
keep the appended driver parameters socketTimeout and autoReconnect.
-->
<url>jdbc:mariadb://[host]:3306/[test]?socketTimeout=600000&autoReconnect=true</url>
<!-- Set database access credentials, username and password
Example:
<user>inubit-database-user</user>
<password>secret</password>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<user encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</user>
<password encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</password>
-->
<!-- Set the database user that owns the INUBIT schema.
Must be set before the first start.
The user needs write access to the database. -->
<user>user</user>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<password encrypted="false">password</password>
<!-- SQL command that the Process Engine executes when it closes the connections to the log database.
The command is only sent to embedded H2 databases and is ignored for MariaDB,
therefore the element is empty.
-->
<shutdownCommand></shutdownCommand>
<!-- Controls whether a connection is checked before it is used.
true: Every connection taken from the pool is checked;
a broken connection is re-established according to noOfRetries and retryInterval.
false: Connections are used without this additional check, which is slightly faster
but can hand out broken connections.
-->
<checkValidConnection>true</checkValidConnection>
<!-- Number of connections that the pool opens at startup and keeps open as idle connections.
The value has to be greater than or equal to 0 and must not be greater than maxPoolSize.
-->
<minPoolSize>1</minPoolSize>
<!-- Maximum number of connections that the pool keeps open at the same time.
The value has to be greater than or equal to minPoolSize.
Increase the value if many workflows write log entries in parallel;
every connection also consumes resources on the database server.
-->
<maxPoolSize>100</maxPoolSize>
<!-- Maximum time in milliseconds that a thread waits for a free connection from the pool.
If no connection becomes available within this time, the database access fails with an error.
0 lets the thread wait without a time limit.
-->
<checkoutTimeoutInMillisecs>120000</checkoutTimeoutInMillisecs>
<!-- Maximum lifetime of a pooled connection in milliseconds.
Older connections are closed and replaced by new ones, which prevents problems
with connections that have been open for a long time.
0 disables the replacement based on the connection age.
-->
<maxAgeInMillisecs>3600000</maxAgeInMillisecs>
<!-- Number of times the Process Engine repeats a failed database access before it reports an error.
0 disables the repetition.
-->
<noOfRetries>3</noOfRetries>
<!-- Waiting time in milliseconds between two attempts; see noOfRetries. -->
<retryInterval>2000</retryInterval>
<!-- Controls whether connections that are in use for a long time are reclaimed by the pool.
true: Connections that have been taken from the pool but have not been returned
within removeAbandonedTimeout are closed and reclaimed.
false: Connections are not reclaimed.
Activate this option only for tracking down connection leaks, because it can also
close connections of long running database operations.
-->
<removeAbandoned>false</removeAbandoned>
<!-- Time in seconds after which a connection that is still in use is treated as abandoned.
The value is only evaluated if removeAbandoned is set to true.
-->
<removeAbandonedTimeout>21600</removeAbandonedTimeout>
</connection>
<tables>
<systemLog tableName="inubitLog">
<statements>
<createTable>CREATE TABLE inubitLog (is_globalPId VARCHAR(255), is_workflowId BIGINT, is_workflowName VARCHAR(255), is_tag VARCHAR(255), is_inputModule VARCHAR(255), is_outputModule VARCHAR(255), is_inputSize BIGINT, is_outputSize BIGINT, is_startTime BIGINT, is_endTime BIGINT, is_success TINYINT, is_message TEXT, is_owner VARCHAR(255), is_priority TINYINT, is_node VARCHAR(55), is_userDefined1 VARCHAR(255), is_userDefined2 VARCHAR(255), is_userDefined3 VARCHAR(255), is_userDefined4 VARCHAR(255), is_userDefined5 VARCHAR(255))</createTable>
</statements>
</systemLog>
<workflowLog tableName="inubitWorkflow">
<statements>
<createTable>CREATE TABLE inubitWorkflow (is_globalPId VARCHAR(255), is_workflowId BIGINT, is_moduleName VARCHAR(255), is_previousModule VARCHAR(255), is_nextModule VARCHAR(255), is_message TEXT, is_startTime BIGINT, is_endTime BIGINT, is_node VARCHAR(55), is_workflowVersion VARCHAR(255), is_section BIGINT, is_childSection BIGINT )</createTable>
</statements>
</workflowLog>
<queueLog tableName="inubitQueue">
<statements>
<createTable>CREATE TABLE inubitQueue (is_globalPId VARCHAR(255), is_workflowId BIGINT, is_workflowName VARCHAR(255), is_moduleName VARCHAR(255), is_tag VARCHAR(255), is_moduleType VARCHAR(255), is_startTime BIGINT, is_nextStartTime BIGINT, is_status TINYINT, is_fileName VARCHAR(255), is_fileSize BIGINT, is_owner VARCHAR(255), is_priority TINYINT, is_node VARCHAR(55), is_userDefined1 VARCHAR(255), is_userDefined2 VARCHAR(255), is_userDefined3 VARCHAR(255), is_userDefined4 VARCHAR(255), is_userDefined5 VARCHAR(255))</createTable>
</statements>
</queueLog>
<auditLog tableName="inubitAudit">
<statements>
<createTable>CREATE TABLE inubitAudit (is_operation VARCHAR(255), is_objectName VARCHAR(255), is_time BIGINT, is_success TINYINT, is_message VARCHAR(255), is_user VARCHAR(255))</createTable>
</statements>
</auditLog>
<queuePortalSessionLog tableName="inubitPortalSessionQueue">
<statements>
<createTable>CREATE TABLE inubitPortalSessionQueue (is_workflowId BIGINT, is_webAppModuleName VARCHAR(255), is_taskGenModuleName VARCHAR(255), is_sessionId VARCHAR(255))</createTable>
</statements>
</queuePortalSessionLog>
<ediUserLog tableName="inubitEDIUser">
<statements>
<createTable>CREATE TABLE inubitEDIUser (is_ruleName VARCHAR(255), is_userData MEDIUMTEXT, is_time BIGINT)</createTable>
</statements>
</ediUserLog>
<connectionLog tableName="inubitConnection">
<statements>
<createTable>CREATE TABLE inubitConnection (is_systemId VARCHAR(255), is_systemType VARCHAR(255), is_version VARCHAR(255), is_connectionStatus VARCHAR(255), is_lastConnection BIGINT, is_licenceLastUpdate BIGINT, is_licenceDuration BIGINT)</createTable>
</statements>
</connectionLog>
<keyManager tableName="inubitKeyManager">
<statements>
<createTable>CREATE TABLE inubitKeyManager (is_name VARCHAR(255), is_propertyName VARCHAR(255), is_description VARCHAR(255), is_tag VARCHAR(255), is_type VARCHAR(255), is_URL VARCHAR(255), is_validity BIGINT, is_validityClient BIGINT, is_owner VARCHAR(255), is_serial_number VARCHAR(255), is_subject VARCHAR(255))</createTable>
</statements>
</keyManager>
<schedulerLog tableName="inubitScheduler">
<statements>
<createTable>CREATE TABLE inubitScheduler (is_workflowName VARCHAR(255), is_moduleName VARCHAR(255), is_tag VARCHAR(255), is_moduleType VARCHAR(255), is_statusActive TINYINT, is_nextStartTime BIGINT, is_owner VARCHAR(255))</createTable>
</statements>
</schedulerLog>
<systemStatisticLog tableName="inubitSystemStatisticLog">
<statements>
<createTable>CREATE TABLE inubitSystemStatisticLog (is_logTime BIGINT, is_cpuUsage BIGINT, is_memoryUsage BIGINT, is_swapUsage BIGINT, is_harddiscUsage BIGINT, is_ISMemoryUsage BIGINT, is_ISProcessingWorkflows BIGINT, is_ConcurrentUser BIGINT, is_node VARCHAR(55), is_NonHeapISMemoryUsage BIGINT, is_freeHardDiskSize BIGINT, is_inubitSize BIGINT)</createTable>
</statements>
</systemStatisticLog>
<events tableName="inubitEvents">
<statements>
<createTable>CREATE TABLE inubitEvents (is_key VARCHAR(255), is_value VARCHAR(255))</createTable>
</statements>
</events>
<workFlowErrorData tableName="inubitWorkflowErrorData">
<statements>
<createTable>CREATE TABLE inubitWorkflowErrorData(is_id BIGINT NOT NULL AUTO_INCREMENT, is_server VARCHAR(256), is_serverId VARCHAR(256), is_dateTime BIGINT, is_workflowName VARCHAR(256), is_moduleName VARCHAR(256), is_IsErrorKey VARCHAR(256), is_IsErrorString VARCHAR(1024), is_errorMailContent VARCHAR(1024), is_processId VARCHAR(255), PRIMARY KEY(is_id))</createTable>
</statements>
</workFlowErrorData>
<webserviceManager tableName="inubitWebservice">
<statements>
<createTable>CREATE TABLE inubitWebservice (is_workflowName VARCHAR(255), is_moduleName VARCHAR(255), is_tag VARCHAR(255), is_moduleType VARCHAR(255), is_webserviceStatus TINYINT, is_owner VARCHAR(255))</createTable>
</statements>
</webserviceManager>
</tables>
<queries>
<selectMinMax>SELECT MIN( ${column.name} ), MAX( ${column.name} )</selectMinMax>
<selectLimit>SELECT ${column.names} FROM ${table.names} ${where} ${order} LIMIT ${offset}, ${amount}</selectLimit>
</queries>
<!-- Options for limiting the number of entries in the System Log.
The entries can be limited by time (maximumLimitDays) or by number (minimumLimit and maximumLimit).
-->
<dataEntriesLimit>
<!-- Restricts the size of the monitoring window of the System Log by time.
0: Option disabled; entries are logged until maximumLimit is reached, then the log is
reduced to minimumLimit.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimit and maximumLimit are ignored.
-->
<maximumLimitDays>0</maximumLimitDays>
<!-- Number of System Log entries that are kept as soon as maximumLimit is reached and the entries are reduced.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<minimumLimit>40000</minimumLimit>
<!-- Number of System Log entries at which the entries are reduced to minimumLimit.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<maximumLimit>50000</maximumLimit>
</dataEntriesLimit>
<!-- Options for limiting the number of entries in the Audit Log.
The entries can be limited by time (maximumLimitDaysAuditLog) or
by number (minimumLimitAuditLog and maximumLimitAuditLog).
-->
<dataEntriesLimitAuditLog>
<!-- Restricts the size of the monitoring window of the Audit Log by time.
0: Option disabled; entries are logged until maximumLimitAuditLog is reached,
then the log is reduced to minimumLimitAuditLog.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimitAuditLog and maximumLimitAuditLog are ignored.
-->
<maximumLimitDaysAuditLog>0</maximumLimitDaysAuditLog>
<!-- Number of Audit Log entries that are kept as soon as maximumLimitAuditLog is reached
and the entries are reduced.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<minimumLimitAuditLog>40000</minimumLimitAuditLog>
<!-- Number of Audit Log entries at which the entries are reduced to minimumLimitAuditLog.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<maximumLimitAuditLog>50000</maximumLimitAuditLog>
</dataEntriesLimitAuditLog>
<!-- Number of log entries that the Process Engine writes to the log database within one batch insert.
Larger values reduce the number of database round trips, but the entries are kept in memory until they are written.
Values below 1000 are internally raised to 1000.
-->
<blockInsertSize>2000</blockInsertSize>
<!-- Capacity of the internal memory queue that buffers the log entries until the logging thread
writes them to the log database.
If the queue is full, the writing threads have to wait until pending entries have been written.
Increase the value for systems with a high logging load and take the additional memory consumption into account.
-->
<maxQueueLogSize>200000</maxQueueLogSize>
</LogsDatabaseConfig>
<?xml version="1.0" encoding="ISO-8859-1"?>
<LogsDatabaseConfig>
<!-- Connection data and connection pool settings of the log database. -->
<connection>
<!-- 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.
-->
<driver>com.mysql.jdbc.Driver</driver>
<!-- JDBC connection URL of the log database.
Replace [host] with the host name, [port] with the port number and [test] with the database name;
Format: jdbc:mysql://[host]:[port]/[database];
3306 is the default port of MySQL.
Only the host name and the database name have to be adapted;
keep the appended driver parameters socketTimeout and autoReconnect.
-->
<url>jdbc:mysql://[host]:3306/[test]?socketTimeout=600000&autoReconnect=true</url>
<!-- Set database access credentials, username and password
Example:
<user>inubit-database-user</user>
<password>secret</password>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<user encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</user>
<password encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</password>
-->
<!-- Set the database user that owns the INUBIT schema.
Must be set before the first start.
The user needs write access to the database. -->
<user>user</user>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<password encrypted="false">password</password>
<!-- SQL command that the Process Engine executes when it closes the connections to the log database.
The command is only sent to embedded H2 databases and is ignored for MySQL,
therefore the element is empty.
-->
<shutdownCommand></shutdownCommand>
<!-- Controls whether a connection is checked before it is used.
true: Every connection taken from the pool is checked;
a broken connection is re-established according to noOfRetries and retryInterval.
false: Connections are used without this additional check, which is slightly faster
but can hand out broken connections.
-->
<checkValidConnection>true</checkValidConnection>
<!-- Number of connections that the pool opens at startup and keeps open as idle connections.
The value has to be greater than or equal to 0 and must not be greater than maxPoolSize.
-->
<minPoolSize>1</minPoolSize>
<!-- Maximum number of connections that the pool keeps open at the same time.
The value has to be greater than or equal to minPoolSize.
Increase the value if many workflows write log entries in parallel;
every connection also consumes resources on the database server.
-->
<maxPoolSize>100</maxPoolSize>
<!-- Maximum time in milliseconds that a thread waits for a free connection from the pool.
If no connection becomes available within this time, the database access fails with an error.
0 lets the thread wait without a time limit.
-->
<checkoutTimeoutInMillisecs>120000</checkoutTimeoutInMillisecs>
<!-- Maximum lifetime of a pooled connection in milliseconds.
Older connections are closed and replaced by new ones, which prevents problems
with connections that have been open for a long time.
0 disables the replacement based on the connection age.
-->
<maxAgeInMillisecs>3600000</maxAgeInMillisecs>
<!-- Number of times the Process Engine repeats a failed database access before it reports an error.
0 disables the repetition.
-->
<noOfRetries>3</noOfRetries>
<!-- Waiting time in milliseconds between two attempts; see noOfRetries. -->
<retryInterval>2000</retryInterval>
<!-- Controls whether connections that are in use for a long time are reclaimed by the pool.
true: Connections that have been taken from the pool but have not been returned
within removeAbandonedTimeout are closed and reclaimed.
false: Connections are not reclaimed.
Activate this option only for tracking down connection leaks, because it can also
close connections of long running database operations.
-->
<removeAbandoned>false</removeAbandoned>
<!-- Time in seconds after which a connection that is still in use is treated as abandoned.
The value is only evaluated if removeAbandoned is set to true.
-->
<removeAbandonedTimeout>21600</removeAbandonedTimeout>
</connection>
<tables>
<systemLog tableName="inubitLog">
<statements>
<createTable>CREATE TABLE inubitLog (is_globalPId VARCHAR(255), is_workflowId BIGINT, is_workflowName VARCHAR(255), is_tag VARCHAR(255), is_inputModule VARCHAR(255), is_outputModule VARCHAR(255), is_inputSize BIGINT, is_outputSize BIGINT, is_startTime BIGINT, is_endTime BIGINT, is_success TINYINT, is_message TEXT, is_owner VARCHAR(255), is_priority TINYINT, is_node VARCHAR(55), is_userDefined1 VARCHAR(255), is_userDefined2 VARCHAR(255), is_userDefined3 VARCHAR(255), is_userDefined4 VARCHAR(255), is_userDefined5 VARCHAR(255))</createTable>
</statements>
</systemLog>
<workflowLog tableName="inubitWorkflow">
<statements>
<createTable>CREATE TABLE inubitWorkflow (is_globalPId VARCHAR(255), is_workflowId BIGINT, is_moduleName VARCHAR(255), is_previousModule VARCHAR(255), is_nextModule VARCHAR(255), is_message TEXT, is_startTime BIGINT, is_endTime BIGINT, is_node VARCHAR(55), is_workflowVersion VARCHAR(255), is_section BIGINT, is_childSection BIGINT )</createTable>
</statements>
</workflowLog>
<queueLog tableName="inubitQueue">
<statements>
<createTable>CREATE TABLE inubitQueue (is_globalPId VARCHAR(255), is_workflowId BIGINT, is_workflowName VARCHAR(255), is_moduleName VARCHAR(255), is_tag VARCHAR(255), is_moduleType VARCHAR(255), is_startTime BIGINT, is_nextStartTime BIGINT, is_status TINYINT, is_fileName VARCHAR(255), is_fileSize BIGINT, is_owner VARCHAR(255), is_priority TINYINT, is_node VARCHAR(55), is_userDefined1 VARCHAR(255), is_userDefined2 VARCHAR(255), is_userDefined3 VARCHAR(255), is_userDefined4 VARCHAR(255), is_userDefined5 VARCHAR(255))</createTable>
</statements>
</queueLog>
<auditLog tableName="inubitAudit">
<statements>
<createTable>CREATE TABLE inubitAudit (is_operation VARCHAR(255), is_objectName VARCHAR(255), is_time BIGINT, is_success TINYINT, is_message VARCHAR(255), is_user VARCHAR(255))</createTable>
</statements>
</auditLog>
<ediUserLog tableName="inubitEDIUser">
<statements>
<createTable>CREATE TABLE inubitEDIUser (is_ruleName VARCHAR(255), is_userData MEDIUMTEXT, is_time BIGINT)</createTable>
</statements>
</ediUserLog>
<queuePortalSessionLog tableName="inubitPortalSessionQueue">
<statements>
<createTable>CREATE TABLE inubitPortalSessionQueue (is_workflowId BIGINT, is_webAppModuleName VARCHAR(255), is_taskGenModuleName VARCHAR(255), is_sessionId VARCHAR(255))</createTable>
</statements>
</queuePortalSessionLog>
<connectionLog tableName="inubitConnection">
<statements>
<createTable>CREATE TABLE inubitConnection (is_systemId VARCHAR(255), is_systemType VARCHAR(255), is_version VARCHAR(255), is_connectionStatus VARCHAR(255), is_lastConnection BIGINT, is_licenceLastUpdate BIGINT, is_licenceDuration BIGINT)</createTable>
</statements>
</connectionLog>
<keyManager tableName="inubitKeyManager">
<statements>
<createTable>CREATE TABLE inubitKeyManager (is_name VARCHAR(255), is_propertyName VARCHAR(255), is_description VARCHAR(255), is_tag VARCHAR(255), is_type VARCHAR(255), is_URL VARCHAR(255), is_validity BIGINT, is_validityClient BIGINT, is_owner VARCHAR(255), is_serial_number VARCHAR(255), is_subject VARCHAR(255))</createTable>
</statements>
</keyManager>
<schedulerLog tableName="inubitScheduler">
<statements>
<createTable>CREATE TABLE inubitScheduler (is_workflowName VARCHAR(255), is_moduleName VARCHAR(255), is_tag VARCHAR(255), is_moduleType VARCHAR(255), is_statusActive TINYINT, is_nextStartTime BIGINT, is_owner VARCHAR(255))</createTable>
</statements>
</schedulerLog>
<systemStatisticLog tableName="inubitSystemStatisticLog">
<statements>
<createTable>CREATE TABLE inubitSystemStatisticLog (is_logTime BIGINT, is_cpuUsage BIGINT, is_memoryUsage BIGINT, is_swapUsage BIGINT, is_harddiscUsage BIGINT, is_ISMemoryUsage BIGINT, is_ISProcessingWorkflows BIGINT, is_ConcurrentUser BIGINT, is_node VARCHAR(55), is_NonHeapISMemoryUsage BIGINT, is_freeHardDiskSize BIGINT, is_inubitSize BIGINT)</createTable>
</statements>
</systemStatisticLog>
<events tableName="inubitEvents">
<statements>
<createTable>CREATE TABLE inubitEvents (is_key VARCHAR(255), is_value VARCHAR(255))</createTable>
</statements>
</events>
<workFlowErrorData tableName="inubitWorkflowErrorData">
<statements>
<createTable>CREATE TABLE inubitWorkflowErrorData(is_id BIGINT NOT NULL AUTO_INCREMENT, is_server VARCHAR(256), is_serverId VARCHAR(256), is_dateTime BIGINT, is_workflowName VARCHAR(256), is_moduleName VARCHAR(256), is_IsErrorKey VARCHAR(256), is_IsErrorString VARCHAR(1024), is_errorMailContent VARCHAR(1024), is_processId VARCHAR(255), PRIMARY KEY(is_id))</createTable>
</statements>
</workFlowErrorData>
<webserviceManager tableName="inubitWebservice">
<statements>
<createTable>CREATE TABLE inubitWebservice (is_workflowName VARCHAR(255), is_moduleName VARCHAR(255), is_tag VARCHAR(255), is_moduleType VARCHAR(255), is_webserviceStatus TINYINT, is_owner VARCHAR(255))</createTable>
</statements>
</webserviceManager>
</tables>
<queries>
<selectMinMax>SELECT MIN( ${column.name} ), MAX( ${column.name} )</selectMinMax>
<selectLimit>SELECT ${column.names} FROM ${table.names} ${where} ${order} LIMIT ${offset}, ${amount}</selectLimit>
</queries>
<!-- Options for limiting the number of entries in the System Log.
The entries can be limited by time (maximumLimitDays) or by number (minimumLimit and maximumLimit).
More than 100000 entries per log table are not recommended for MySQL.
-->
<dataEntriesLimit>
<!-- Restricts the size of the monitoring window of the System Log by time.
0: Option disabled; entries are logged until maximumLimit is reached, then the log is
reduced to minimumLimit.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimit and maximumLimit are ignored.
-->
<maximumLimitDays>0</maximumLimitDays>
<!-- Number of System Log entries that are kept as soon as maximumLimit is reached and the entries are reduced.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<minimumLimit>40000</minimumLimit>
<!-- Number of System Log entries at which the entries are reduced to minimumLimit.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<maximumLimit>50000</maximumLimit>
</dataEntriesLimit>
<!-- Options for limiting the number of entries in the Audit Log.
The entries can be limited by time (maximumLimitDaysAuditLog) or
by number (minimumLimitAuditLog and maximumLimitAuditLog).
More than 100000 entries per log table are not recommended for MySQL.
-->
<dataEntriesLimitAuditLog>
<!-- Restricts the size of the monitoring window of the Audit Log by time.
0: Option disabled; entries are logged until maximumLimitAuditLog is reached,
then the log is reduced to minimumLimitAuditLog.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimitAuditLog and maximumLimitAuditLog are ignored.
-->
<maximumLimitDaysAuditLog>0</maximumLimitDaysAuditLog>
<!-- Number of Audit Log entries that are kept as soon as maximumLimitAuditLog is reached
and the entries are reduced.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<minimumLimitAuditLog>40000</minimumLimitAuditLog>
<!-- Number of Audit Log entries at which the entries are reduced to minimumLimitAuditLog.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<maximumLimitAuditLog>50000</maximumLimitAuditLog>
</dataEntriesLimitAuditLog>
<!-- Number of log entries that the Process Engine writes to the log database within one batch insert.
Larger values reduce the number of database round trips, but the entries are kept in memory until they are written.
Values below 1000 are internally raised to 1000.
-->
<blockInsertSize>2000</blockInsertSize>
<!-- Capacity of the internal memory queue that buffers the log entries until the logging thread
writes them to the log database.
If the queue is full, the writing threads have to wait until pending entries have been written.
Increase the value for systems with a high logging load and take the additional memory consumption into account.
-->
<maxQueueLogSize>200000</maxQueueLogSize>
</LogsDatabaseConfig>
<?xml version="1.0" encoding="ISO-8859-1"?>
<LogsDatabaseConfig>
<!-- Connection data and connection pool settings of the log database. -->
<connection>
<!-- 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.
-->
<driver>oracle.jdbc.OracleDriver</driver>
<!-- JDBC connection URL of the log database.
Replace [host] with the host name, [port] with the port number and [sid] with the system identifier;
Format: jdbc:oracle:thin:@[host]:[port]:[sid];
1521 is the default port of the Oracle listener.
For a connection via a service name use the format jdbc:oracle:thin:@//[host]:[port]/[service].
-->
<url>jdbc:oracle:thin:@[host]:1521:[sid]</url>
<!-- Set database access credentials, username and password
Example:
<user>inubit-database-user</user>
<password>secret</password>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<user encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</user>
<password encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</password>
-->
<!-- Set the database user that owns the INUBIT schema.
Must be set before the first start.
The user needs write access to the database. -->
<user></user>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<password encrypted="false"></password>
<!-- Settings for the Oracle Native Network Encryption of the JDBC connection.
connectionEncrypted="false": The child elements are ignored and the connection is
established without native encryption.
connectionEncrypted="true": The child elements are passed to the Oracle driver as the
connection properties oracle.net.crypto_checksum_client,
oracle.net.crypto_checksum_types_client,
oracle.net.encryption_client and oracle.net.encryption_types_client.
The settings have to match the configuration of the Oracle database server,
otherwise no connection can be established.
-->
<connectionProperties connectionEncrypted="false">
<!-- Client setting for the integrity check of the transferred data;
passed to the driver as oracle.net.crypto_checksum_client.
Possible values: REJECTED, ACCEPTED, REQUESTED, REQUIRED.
-->
<cryptoChecksumClient>REQUIRED</cryptoChecksumClient>
<!-- Checksum algorithms that the client accepts for the integrity check;
passed to the driver as oracle.net.crypto_checksum_types_client.
Enter the algorithms in parentheses, separated by commas, for example ( SHA1 ).
-->
<cryptoChecksumTypesClient>( SHA1 )</cryptoChecksumTypesClient>
<!-- Client setting for the encryption of the transferred data;
passed to the driver as oracle.net.encryption_client.
Possible values: REJECTED, ACCEPTED, REQUESTED, REQUIRED.
-->
<encryptionClient>REQUIRED</encryptionClient>
<!-- Encryption algorithms that the client accepts;
passed to the driver as oracle.net.encryption_types_client.
Enter the algorithms in parentheses, separated by commas, for example ( AES256,AES192 ).
-->
<encryptionTypesClient>( AES256,AES192 )</encryptionTypesClient>
</connectionProperties>
<!-- SQL command that the Process Engine executes when it closes the connections to the log database.
The command is only sent to embedded H2 databases and is ignored for Oracle,
therefore the element is empty.
-->
<shutdownCommand></shutdownCommand>
<!-- Controls whether a connection is checked before it is used.
true: Every connection taken from the pool is checked;
a broken connection is re-established according to noOfRetries and retryInterval.
false: Connections are used without this additional check, which is slightly faster
but can hand out broken connections.
-->
<checkValidConnection>true</checkValidConnection>
<!-- Number of connections that the pool opens at startup and keeps open as idle connections.
The value has to be greater than or equal to 0 and must not be greater than maxPoolSize.
-->
<minPoolSize>1</minPoolSize>
<!-- Maximum number of connections that the pool keeps open at the same time.
The value has to be greater than or equal to minPoolSize.
Increase the value if many workflows write log entries in parallel;
every connection also consumes resources on the database server.
-->
<maxPoolSize>100</maxPoolSize>
<!-- Maximum time in milliseconds that a thread waits for a free connection from the pool.
If no connection becomes available within this time, the database access fails with an error.
0 lets the thread wait without a time limit.
-->
<checkoutTimeoutInMillisecs>120000</checkoutTimeoutInMillisecs>
<!-- Maximum lifetime of a pooled connection in milliseconds.
Older connections are closed and replaced by new ones, which prevents problems
with connections that have been open for a long time.
0 disables the replacement based on the connection age.
-->
<maxAgeInMillisecs>3600000</maxAgeInMillisecs>
<!-- Number of times the Process Engine repeats a failed database access before it reports an error.
0 disables the repetition.
-->
<noOfRetries>3</noOfRetries>
<!-- Waiting time in milliseconds between two attempts; see noOfRetries. -->
<retryInterval>2000</retryInterval>
<!-- Controls whether connections that are in use for a long time are reclaimed by the pool.
true: Connections that have been taken from the pool but have not been returned
within removeAbandonedTimeout are closed and reclaimed.
false: Connections are not reclaimed.
Activate this option only for tracking down connection leaks, because it can also
close connections of long running database operations.
-->
<removeAbandoned>false</removeAbandoned>
<!-- Time in seconds after which a connection that is still in use is treated as abandoned.
The value is only evaluated if removeAbandoned is set to true.
-->
<removeAbandonedTimeout>21600</removeAbandonedTimeout>
</connection>
<tables>
<systemLog tableName="inubitLog">
<statements>
<createTable>CREATE TABLE inubitLog (is_globalPId VARCHAR2(256), is_workflowId NUMBER(22), is_workflowName VARCHAR2(256), is_tag VARCHAR2(256), is_inputModule VARCHAR2(256), is_outputModule VARCHAR2(256), is_inputSize NUMBER(22), is_outputSize NUMBER(22), is_startTime NUMBER(22), is_endTime NUMBER(22), is_success NUMBER(1), is_message VARCHAR2(4000), is_owner VARCHAR2(256), is_priority NUMBER(22), is_node VARCHAR2(56), is_userDefined1 VARCHAR(256), is_userDefined2 VARCHAR(256), is_userDefined3 VARCHAR(256), is_userDefined4 VARCHAR(256), is_userDefined5 VARCHAR(256))</createTable>
<createIndex>CREATE INDEX ENDTIMEINDEX ON INUBITLOG (IS_ENDTIME) LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL</createIndex>
</statements>
</systemLog>
<workflowLog tableName="inubitWorkflow">
<statements>
<createTable>CREATE TABLE inubitWorkflow (is_globalPId VARCHAR2(256), is_workflowId NUMBER(22), is_moduleName VARCHAR2(256), is_previousModule VARCHAR2(256), is_nextModule VARCHAR2(256), is_message VARCHAR2(4000), is_startTime NUMBER(22), is_endTime NUMBER(22), is_node VARCHAR2(56), is_workflowVersion VARCHAR2(256), is_section NUMBER(22), is_childSection NUMBER(22) )</createTable>
</statements>
</workflowLog>
<queueLog tableName="inubitQueue">
<statements>
<createTable>CREATE TABLE inubitQueue (is_globalPId VARCHAR2(256), is_workflowId NUMBER(22), is_workflowName VARCHAR2(256), is_moduleName VARCHAR2(256), is_tag VARCHAR2(256), is_moduleType VARCHAR2(256), is_startTime NUMBER(22), is_nextStartTime NUMBER(22), is_status NUMBER(22),is_fileName VARCHAR2(256), is_fileSize NUMBER(22), is_owner VARCHAR2(256), is_priority NUMBER(22), is_node VARCHAR2(56), is_userDefined1 VARCHAR(256), is_userDefined2 VARCHAR(256), is_userDefined3 VARCHAR(256), is_userDefined4 VARCHAR(256), is_userDefined5 VARCHAR(256))</createTable>
</statements>
</queueLog>
<auditLog tableName="inubitAudit">
<statements>
<createTable>CREATE TABLE inubitAudit (is_operation VARCHAR2(256), is_objectName VARCHAR2(256), is_time NUMBER(22), is_success NUMBER(1), is_message VARCHAR2(256), is_user VARCHAR2(256))</createTable>
</statements>
</auditLog>
<ediUserLog tableName="inubitEDIUser">
<statements>
<createTable>CREATE TABLE inubitEDIUser (is_ruleName VARCHAR2(256), is_userData CLOB, is_time NUMBER(22))</createTable>
</statements>
</ediUserLog>
<queuePortalSessionLog tableName="inubitPortalSessionQueue">
<statements>
<createTable>CREATE TABLE inubitPortalSessionQueue (is_workflowId NUMBER(22), is_webAppModuleName VARCHAR2(256), is_taskGenModuleName VARCHAR2(256), is_sessionId VARCHAR2(256))</createTable>
</statements>
</queuePortalSessionLog>
<connectionLog tableName="inubitConnection">
<statements>
<createTable>CREATE TABLE inubitConnection (is_systemId VARCHAR(256), is_systemType VARCHAR(256), is_version VARCHAR(256), is_connectionStatus VARCHAR(256), is_lastConnection NUMBER(22), is_licenceLastUpdate NUMBER(22), is_licenceDuration NUMBER(22))</createTable>
</statements>
</connectionLog>
<keyManager tableName="inubitKeyManager">
<statements>
<createTable>CREATE TABLE inubitKeyManager (is_name VARCHAR(256), is_propertyName VARCHAR2(256), is_description VARCHAR(256), is_tag VARCHAR2(256), is_type VARCHAR(256), is_URL VARCHAR(256), is_validity NUMBER(22), is_validityClient NUMBER(22), is_owner VARCHAR(256), is_serial_number VARCHAR(256), is_subject VARCHAR(256))</createTable>
</statements>
</keyManager>
<schedulerLog tableName="inubitScheduler">
<statements>
<createTable>CREATE TABLE inubitScheduler (is_workflowName VARCHAR(256), is_moduleName VARCHAR(256), is_tag VARCHAR2(256), is_moduleType VARCHAR(256), is_statusActive NUMBER(1), is_nextStartTime NUMBER(22), is_owner VARCHAR(256))</createTable>
</statements>
</schedulerLog>
<systemStatisticLog tableName="inubitSystemStatisticLog">
<statements>
<createTable>CREATE TABLE inubitSystemStatisticLog (is_logTime NUMBER(22), is_cpuUsage NUMBER(22), is_memoryUsage NUMBER(22), is_swapUsage NUMBER(22), is_harddiscUsage NUMBER(22), is_ISMemoryUsage NUMBER(22), is_ISProcessingWorkflows NUMBER(22), is_ConcurrentUser NUMBER(22), is_node VARCHAR2(56), is_NonHeapISMemoryUsage NUMBER(22), is_freeHardDiskSize NUMBER(22), is_inubitSize NUMBER(22))</createTable>
</statements>
</systemStatisticLog>
<events tableName="inubitEvents">
<statements>
<createTable>CREATE TABLE inubitEvents (is_key VARCHAR(256), is_value VARCHAR(256))</createTable>
</statements>
</events>
<workFlowErrorData tableName="inubitWorkflowErrorData">
<statements>
<createTable>CREATE TABLE inubitWorkflowErrorData(is_id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, is_server VARCHAR2(50), is_serverId VARCHAR2(255), is_dateTime NUMBER(19), is_workflowName VARCHAR2(255), is_moduleName VARCHAR2(255), is_IsErrorKey VARCHAR2(255), is_IsErrorString VARCHAR2(1024), is_errorMailContent VARCHAR2(1024), is_processId VARCHAR2(255))</createTable>
</statements>
</workFlowErrorData>
<webserviceManager tableName="inubitWebservice">
<statements>
<createTable>CREATE TABLE inubitWebservice (is_workflowName VARCHAR(256), is_moduleName VARCHAR(256), is_tag VARCHAR2(256), is_moduleType VARCHAR(256), is_webserviceStatus NUMBER(1), is_owner VARCHAR(256))</createTable>
</statements>
</webserviceManager>
</tables>
<queries>
<selectMinMax>SELECT MIN( ${column.name} ), MAX( ${column.name} )</selectMinMax>
<selectLimit>SELECT ${column.names} FROM (SELECT ROW_NUMBER() OVER(${order}) rownum1, ${column.names} FROM ${table.names} ${where}) inline_view1 WHERE rownum1 BETWEEN ${offset} AND ${offset} + ${amount}</selectLimit>
</queries>
<!-- Options for limiting the number of entries in the System Log.
The entries can be limited by time (maximumLimitDays) or by number (minimumLimit and maximumLimit).
-->
<dataEntriesLimit>
<!-- Restricts the size of the monitoring window of the System Log by time.
0: Option disabled; entries are logged until maximumLimit is reached, then the log is
reduced to minimumLimit.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimit and maximumLimit are ignored.
-->
<maximumLimitDays>0</maximumLimitDays>
<!-- Number of System Log entries that are kept as soon as maximumLimit is reached and the entries are reduced.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<minimumLimit>40000</minimumLimit>
<!-- Number of System Log entries at which the entries are reduced to minimumLimit.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<maximumLimit>50000</maximumLimit>
</dataEntriesLimit>
<!-- Options for limiting the number of entries in the Audit Log.
The entries can be limited by time (maximumLimitDaysAuditLog) or
by number (minimumLimitAuditLog and maximumLimitAuditLog).
-->
<dataEntriesLimitAuditLog>
<!-- Restricts the size of the monitoring window of the Audit Log by time.
0: Option disabled; entries are logged until maximumLimitAuditLog is reached,
then the log is reduced to minimumLimitAuditLog.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimitAuditLog and maximumLimitAuditLog are ignored.
-->
<maximumLimitDaysAuditLog>0</maximumLimitDaysAuditLog>
<!-- Number of Audit Log entries that are kept as soon as maximumLimitAuditLog is reached
and the entries are reduced.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<minimumLimitAuditLog>40000</minimumLimitAuditLog>
<!-- Number of Audit Log entries at which the entries are reduced to minimumLimitAuditLog.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<maximumLimitAuditLog>50000</maximumLimitAuditLog>
</dataEntriesLimitAuditLog>
<!-- Number of log entries that the Process Engine writes to the log database within one batch insert.
Larger values reduce the number of database round trips, but the entries are kept in memory until they are written.
Values below 1000 are internally raised to 1000.
-->
<blockInsertSize>2000</blockInsertSize>
<!-- Capacity of the internal memory queue that buffers the log entries until the logging thread
writes them to the log database.
If the queue is full, the writing threads have to wait until pending entries have been written.
Increase the value for systems with a high logging load and take the additional memory consumption into account.
-->
<maxQueueLogSize>200000</maxQueueLogSize>
</LogsDatabaseConfig>
<?xml version="1.0" encoding="ISO-8859-1"?>
<LogsDatabaseConfig>
<!-- Connection data and connection pool settings of the log database. -->
<connection>
<!-- 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.
-->
<driver>org.postgresql.Driver</driver>
<!-- JDBC connection URL of the log database.
Replace [host] with the host name, [port] with the port number and [database] with the database name;
Format: jdbc:postgresql://[host]:[port]/[database];
5432 is the default port of PostgreSQL.
-->
<url>jdbc:postgresql://[host]:5432/[database]</url>
<!-- Set database access credentials, username and password
Example:
<user>inubit-database-user</user>
<password>secret</password>
To get your values encrypted, just add the attribute encrypted="true".
The values will be changed after the next server restart:
<user encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</user>
<password encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</password>
-->
<!-- Set the database user that owns the INUBIT schema.
Must be set before the first start.
The user needs write access to the database. -->
<user>user</user>
<!-- Set the password of the database user.
An empty value means that the user has no password.
Type: Password. Default: empty -->
<password encrypted="false">password</password>
<!-- SQL command that the Process Engine executes when it closes the connections to the log database.
The command is only sent to embedded H2 databases and is ignored for PostgreSQL,
therefore the element is empty.
-->
<shutdownCommand></shutdownCommand>
<!-- Controls whether a connection is checked before it is used.
true: Every connection taken from the pool is checked;
a broken connection is re-established according to noOfRetries and retryInterval.
false: Connections are used without this additional check, which is slightly faster
but can hand out broken connections.
-->
<checkValidConnection>true</checkValidConnection>
<!-- Number of connections that the pool opens at startup and keeps open as idle connections.
The value has to be greater than or equal to 0 and must not be greater than maxPoolSize.
-->
<minPoolSize>1</minPoolSize>
<!-- Maximum number of connections that the pool keeps open at the same time.
The value has to be greater than or equal to minPoolSize.
Increase the value if many workflows write log entries in parallel;
every connection also consumes resources on the database server.
-->
<maxPoolSize>100</maxPoolSize>
<!-- Maximum time in milliseconds that a thread waits for a free connection from the pool.
If no connection becomes available within this time, the database access fails with an error.
0 lets the thread wait without a time limit.
-->
<checkoutTimeoutInMillisecs>120000</checkoutTimeoutInMillisecs>
<!-- Maximum lifetime of a pooled connection in milliseconds.
Older connections are closed and replaced by new ones, which prevents problems
with connections that have been open for a long time.
0 disables the replacement based on the connection age.
-->
<maxAgeInMillisecs>3600000</maxAgeInMillisecs>
<!-- Number of times the Process Engine repeats a failed database access before it reports an error.
0 disables the repetition.
-->
<noOfRetries>3</noOfRetries>
<!-- Waiting time in milliseconds between two attempts; see noOfRetries. -->
<retryInterval>2000</retryInterval>
<!-- Controls whether connections that are in use for a long time are reclaimed by the pool.
true: Connections that have been taken from the pool but have not been returned
within removeAbandonedTimeout are closed and reclaimed.
false: Connections are not reclaimed.
Activate this option only for tracking down connection leaks, because it can also
close connections of long running database operations.
-->
<removeAbandoned>false</removeAbandoned>
<!-- Time in seconds after which a connection that is still in use is treated as abandoned.
The value is only evaluated if removeAbandoned is set to true.
-->
<removeAbandonedTimeout>21600</removeAbandonedTimeout>
</connection>
<tables>
<systemLog tableName="inubitLog">
<statements>
<createTable>CREATE TABLE inubitLog (is_globalPId VARCHAR(255), is_workflowId BIGINT, is_workflowName VARCHAR(255), is_tag VARCHAR(255), is_inputModule VARCHAR(255), is_outputModule VARCHAR(255), is_inputSize BIGINT, is_outputSize BIGINT, is_startTime BIGINT, is_endTime BIGINT, is_success BOOLEAN, is_message TEXT, is_owner VARCHAR(255), is_priority SMALLINT, is_node VARCHAR(55), is_userDefined1 VARCHAR(255), is_userDefined2 VARCHAR(255), is_userDefined3 VARCHAR(255), is_userDefined4 VARCHAR(255), is_userDefined5 VARCHAR(255))</createTable>
</statements>
</systemLog>
<workflowLog tableName="inubitWorkflow">
<statements>
<createTable>CREATE TABLE inubitWorkflow (is_globalPId VARCHAR(255), is_workflowId BIGINT, is_moduleName VARCHAR(255), is_previousModule VARCHAR(255), is_nextModule VARCHAR(255), is_message TEXT, is_startTime BIGINT, is_endTime BIGINT, is_node VARCHAR(55), is_workflowVersion VARCHAR(255), is_section BIGINT, is_childSection BIGINT )</createTable>
</statements>
</workflowLog>
<queueLog tableName="inubitQueue">
<statements>
<createTable>CREATE TABLE inubitQueue (is_globalPId VARCHAR(255), is_workflowId BIGINT, is_workflowName VARCHAR(255), is_moduleName VARCHAR(255), is_tag VARCHAR(255), is_moduleType VARCHAR(255), is_startTime BIGINT, is_nextStartTime BIGINT, is_status SMALLINT, is_fileName VARCHAR(255), is_fileSize BIGINT, is_owner VARCHAR(255), is_priority SMALLINT, is_node VARCHAR(55), is_userDefined1 VARCHAR(255), is_userDefined2 VARCHAR(255), is_userDefined3 VARCHAR(255), is_userDefined4 VARCHAR(255), is_userDefined5 VARCHAR(255))</createTable>
</statements>
</queueLog>
<auditLog tableName="inubitAudit">
<statements>
<createTable>CREATE TABLE inubitAudit (is_operation VARCHAR(255), is_objectName VARCHAR(255), is_time BIGINT, is_success BOOLEAN, is_message VARCHAR(255), is_user VARCHAR(255))</createTable>
</statements>
</auditLog>
<ediUserLog tableName="inubitEDIUser">
<statements>
<createTable>CREATE TABLE inubitEDIUser (is_ruleName VARCHAR(255), is_userData TEXT, is_time BIGINT)</createTable>
</statements>
</ediUserLog>
<queuePortalSessionLog tableName="inubitPortalSessionQueue">
<statements>
<createTable>CREATE TABLE inubitPortalSessionQueue (is_workflowId BIGINT, is_webAppModuleName VARCHAR(255), is_taskGenModuleName VARCHAR(255), is_sessionId VARCHAR(255))</createTable>
</statements>
</queuePortalSessionLog>
<connectionLog tableName="inubitConnection">
<statements>
<createTable>CREATE TABLE inubitConnection (is_systemId VARCHAR(255), is_systemType VARCHAR(255), is_version VARCHAR(255), is_connectionStatus VARCHAR(255), is_lastConnection BIGINT, is_licenceLastUpdate BIGINT, is_licenceDuration BIGINT)</createTable>
</statements>
</connectionLog>
<keyManager tableName="inubitKeyManager">
<statements>
<createTable>CREATE TABLE inubitKeyManager (is_name VARCHAR(255), is_propertyName VARCHAR(255), is_description VARCHAR(255), is_tag VARCHAR(255), is_type VARCHAR(255), is_URL VARCHAR(255), is_validity BIGINT, is_validityClient BIGINT, is_owner VARCHAR(255), is_serial_number VARCHAR(255), is_subject VARCHAR(255))</createTable>
</statements>
</keyManager>
<schedulerLog tableName="inubitScheduler">
<statements>
<createTable>CREATE TABLE inubitScheduler (is_workflowName VARCHAR(255), is_moduleName VARCHAR(255), is_tag VARCHAR(255), is_moduleType VARCHAR(255), is_statusActive SMALLINT, is_nextStartTime BIGINT, is_owner VARCHAR(255))</createTable>
</statements>
</schedulerLog>
<systemStatisticLog tableName="inubitSystemStatisticLog">
<statements>
<createTable>CREATE TABLE inubitSystemStatisticLog (is_logTime BIGINT, is_cpuUsage BIGINT, is_memoryUsage BIGINT, is_swapUsage BIGINT, is_harddiscUsage BIGINT, is_ISMemoryUsage BIGINT, is_ISProcessingWorkflows BIGINT, is_ConcurrentUser BIGINT, is_node VARCHAR(55), is_NonHeapISMemoryUsage BIGINT, is_freeHardDiskSize BIGINT, is_inubitSize BIGINT)</createTable>
</statements>
</systemStatisticLog>
<events tableName="inubitEvents">
<statements>
<createTable>CREATE TABLE inubitEvents (is_key VARCHAR(255), is_value VARCHAR(255))</createTable>
</statements>
</events>
<workFlowErrorData tableName="inubitWorkflowErrorData">
<statements>
<createTable>CREATE TABLE inubitWorkflowErrorData(is_id SERIAL PRIMARY KEY, is_server varchar(50), is_serverId varchar(255), is_dateTime BIGINT, is_workflowName varchar(255), is_moduleName varchar(255), is_IsErrorKey varchar(255), is_IsErrorString varchar(1024),is_errorMailContent varchar(1024),is_processId varchar(255))</createTable>
</statements>
</workFlowErrorData>
<webserviceManager tableName="inubitWebservice">
<statements>
<createTable>CREATE TABLE inubitWebservice (is_workflowName VARCHAR(255), is_moduleName VARCHAR(255), is_tag VARCHAR(255), is_moduleType VARCHAR(255), is_webserviceStatus SMALLINT, is_owner VARCHAR(255))</createTable>
</statements>
</webserviceManager>
</tables>
<queries>
<selectMinMax>SELECT MIN( ${column.name} ), MAX( ${column.name} )</selectMinMax>
<selectLimit>SELECT ${column.names} FROM ${table.names} ${where} ${order} LIMIT ${amount} OFFSET ${offset}</selectLimit>
</queries>
<!-- Options for limiting the number of entries in the System Log.
The entries can be limited by time (maximumLimitDays) or by number (minimumLimit and maximumLimit).
-->
<dataEntriesLimit>
<!-- Restricts the size of the monitoring window of the System Log by time.
0: Option disabled; entries are logged until maximumLimit is reached, then the log is
reduced to minimumLimit.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimit and maximumLimit are ignored.
-->
<maximumLimitDays>0</maximumLimitDays>
<!-- Number of System Log entries that are kept as soon as maximumLimit is reached and the entries are reduced.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<minimumLimit>40000</minimumLimit>
<!-- Number of System Log entries at which the entries are reduced to minimumLimit.
Set minimumLimit and maximumLimit to 0 to disable the deletion that is based on the number of entries.
The value is ignored if maximumLimitDays is set to a value greater than 0.
-->
<maximumLimit>50000</maximumLimit>
</dataEntriesLimit>
<!-- Options for limiting the number of entries in the Audit Log.
The entries can be limited by time (maximumLimitDaysAuditLog) or
by number (minimumLimitAuditLog and maximumLimitAuditLog).
-->
<dataEntriesLimitAuditLog>
<!-- Restricts the size of the monitoring window of the Audit Log by time.
0: Option disabled; entries are logged until maximumLimitAuditLog is reached,
then the log is reduced to minimumLimitAuditLog.
2 (or any other number): Entries are logged for the given number of days;
the values of minimumLimitAuditLog and maximumLimitAuditLog are ignored.
-->
<maximumLimitDaysAuditLog>0</maximumLimitDaysAuditLog>
<!-- Number of Audit Log entries that are kept as soon as maximumLimitAuditLog is reached
and the entries are reduced.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<minimumLimitAuditLog>40000</minimumLimitAuditLog>
<!-- Number of Audit Log entries at which the entries are reduced to minimumLimitAuditLog.
Set minimumLimitAuditLog and maximumLimitAuditLog to 0 to disable the deletion
that is based on the number of entries.
The value is ignored if maximumLimitDaysAuditLog is set to a value greater than 0.
-->
<maximumLimitAuditLog>50000</maximumLimitAuditLog>
</dataEntriesLimitAuditLog>
<!-- Number of log entries that the Process Engine writes to the log database within one batch insert.
Larger values reduce the number of database round trips, but the entries are kept in memory until they are written.
Values below 1000 are internally raised to 1000.
-->
<blockInsertSize>2000</blockInsertSize>
<!-- Capacity of the internal memory queue that buffers the log entries until the logging thread
writes them to the log database.
If the queue is full, the writing threads have to wait until pending entries have been written.
Increase the value for systems with a high logging load and take the additional memory consumption into account.
-->
<maxQueueLogSize>200000</maxQueueLogSize>
</LogsDatabaseConfig>
Location for the configuration file
The configuration file logsDBConfig.xml is located in the following directory: <SUITE-INSTALL-DIR>/inubit/server/ibis_root/conf
Properties
The following connection properties can be configured in the logsDBConfig.xml file:
| Property | Description | ||
|---|---|---|---|
|
Database driver class |
||
|
URL of the database
|
||
|
Username Attribute The specified username is encrypted. Attribute The specified username is not encrypted and is replaced by the encrypted username the first time the server starts. The attribute |
||
|
Password Attribute The specified password is encrypted. Attribute The attribute |
||
|
If this property is set to By default, this property is set to
|
||
|
This property determines how many database connections must be used at a minimum. The default value is |
||
|
This property determines how many database connections can be used simultaneously. The default value is |
||
|
This property determines the timeout for waiting for the provision of a database connection for the database connection pool. The default value is |
||
|
This property determines how long the pool should wait at the most, until a connection is obtained from the pool. The default value is |
||
|
In case of database errors, the query execution can be retried for
To handle deadlock errors, the default values are set as follows:
|
||
|
To remove abandoned database connections. Possible values:
|
||
|
To set the timeout to remove abandoned database connections. If the By default, the
|
||
|
This property contains the configuration for the number of inserts into the database to be processed in a batch.
The default value is As soon as the number of inserts of the blocking queue reaches the value of |
||
|
This property describes the maximum number of entries in the blocking queue.
Default value is In case of a new logging event, all related records are written to the blocking queue first.
As soon as the number of records in the blocking queue reaches the value of |
||
|
For MySQL 8 only: If a database user has access to more than one schema: Add the extra parameter |
Configuring Audit Logs
Location for storing log file
The log file is stored in the directory <SUITE-INSTALL-DIR>/inubit/server/ibis_root/log.
Usage
Refer to Audit Log: Monitoring User Actions.
The audit logs are configured in both the Workbench and a configuration file.
Call up
INUBIT Workbench > Administration > General Settings > Logging > Audit
| Option | Description |
|---|---|
Maximum size of the audit log file |
State in KB. If this size is not reached, the current audit log file, audit.log, is closed and archived. In this case it is saved with a sequential number, e.g. audit.log.5 |
Number of backup of audit log files |
Information regarding the maximum number of files created for archiving the file audit.log. |
Configuration
In the file <SUITE-INSTALL-DIR>/inubit/server/ibis_root/conf/logsDBConfig.xml you can
-
limit the number of days for which the log entries are stored,
-
configure the number of entries in the audit log by means of the elements
<minimumLimitAuditLog>and<maximumLimitAuditLog>.
Refer to Switching INUBIT Monitoring Database
| Element | Description | ||
|---|---|---|---|
|
Entries are logged for the given number of days.
|
||
|
minimum number of entries
|
||
|
maximum number of entries Entries are logged until the number of entries has reached the value configured in the
|
Set 0 to <minimumLimitAuditLog> and 0 to <maximumLimitAuditLog> to disable the counter based deletion.
Configuring System Log
Location for storing log entries
The log entries are stored in the INUBIT database, refer to Configuring Databases.
Usage
Refer to System Log
Configuration
In the file <SUITE-INSTALL-DIR>/inubit/server/ibis_root/conf/logsDBConfig.xml you can
-
limit the number of days for which the log entries are stored,
-
configure the number of entries in the System log by means of the elements
<minimumLimit>and<maximumLimit>.
Refer to Switching INUBIT Monitoring Database
| Element | Description | ||
|---|---|---|---|
|
Entries are logged for the given number of days.
|
||
|
minimum number of entries
|
||
|
maximum number of entries Entries are logged until the number of entries has reached the value configured in the
|
Set 0 to <minimumLimit> and 0 to <maximumLimit> to disable the counter based deletion.
Activating and Configuring Server Traces
Location for storing log file
The log file trace.log is stored in the <SUITE-INSTALL-DIR>/inubit/server/ibis_root/log directory.
Usage
Call up
INUBIT Workbench > Administration > General Settings > Logging > Trace
| Option | Description | ||
|---|---|---|---|
Server trace |
To enable/disable the server trace.
|
||
|
|||
Maximum size of trace log files |
Once the stated size has been reached, the current trace log is saved with a sequential number. |
||
Number of backups of the trace log files |
Information regarding the maximum number of files created for archiving the |
||
Custom server trace |
For adding individual loggers, e.g. for self-developed plug-ins. After adding the logger, click for specifying log level, layout, path and output file name and maximum size in the same dialog. Once the file has reached the maximum size, it is renamed and saved as backup. You can also specify the number of backup files. Moreover, you can decide, if you want the custom logs to be additionally written into the trace log. |
Web Service Logs
Usage
For logging input and output messages as well as fault outputs/error responses in Web Services Connectors, for which the logging has been activated
Call up
INUBIT Workbench > Administration > General Settings > Logging > Web Service
| Option | Description |
|---|---|
Use custom log output |
If activated, you can configure log output by using the |
Maximum size of web service log file (only if checkbox for |
If the given size is reached, then the current web service log file webservice.log is closed and archived.
It is given a running number, for example |
Number of backups for the web service log files (only if checkbox for |
Maximum number of files that will be made to archive the web service log files (webservice.log). |
Custom log output |
Configure the output via a log4j2 appender configuration. The button opens a dialog where you can add or adjust an appender. |
Storage location of log file
The webservice.log log file is stored in the <SUITE-INSTALL-DIR>/inubit/server/ibis_root/log directory.
Configure custom log output
Proceed as follows
-
In the row
custom log output, click the
button.
A dialog opens. -
Select the
log levelfrom the drop-down list. -
Click the
button and enter a configuration.
Alternatively, you can insert a supplied sample appender by using the pull-down menu Output definition (log4j2 appender) > Insert example. -
If necessary, adapt the configuration.
-
Validate the configuration by using the pull-down menu Output definition (log4j2 appender) >Validate configuration (locally).
-
Click OK to save the appender configuration.
-
Save the Web Service log configuration.
Adding User-defined Columns to System Log and/or Queue Manager
Usage
To display INUBIT system variables as well as user-defined variables in Queue Manager and/or System Log
Proceed as follows
-
In the Workbench, open the Administration> General Settings > Logging > User defined columns page.
-
In the Value column of one of the user-defined columns for the System Log or Queue Manager, enter a variable name, e.g.
ISErrorKey. -
Save the changes.
-
Open the Monitoring tab.
-
Depending on the logging table you have configured the column for, open the System Log or Queue Manager tab.
-
To display the user-defined column, right-click the table heading and check the is_userdefined* item you want to monitor.
→ The column is added to the table, named after the variable name.
-
Once you have executed a workflow, the table can be updated automatically or manually.
→ The variable value is displayed in the column.
To create a user-defined variable and display it as column, refer to Creating a User-defined Variable and Displaying it as Column in Queue Manager/System Log.