Configuring Logging

Configuring the Logging Database Connection in the logsDBConfig.xml File

Configuration file (<connection> block)

<?xml version="1.0" encoding="ISO-8859-1"?>
<LogsDatabaseConfig>
  <connection>
    <driver>org.h2.Driver</driver>
    <url>jdbc:h2:${ibis.root.directory}/log/dbh2/logs;MVCC=TRUE</url>
    <!-- Encrypted password and/or username
        To get your encrypted password and/or username use the CLI client.
        Example:
        cd path/to/inubit_installation/server/process_engine/bin
        ./startcli.sh -\-encryptString myPassword
        Insert the encrypted password and/or username as values into the corresponding
        tags and set the attribute encrypted="false" to encrypted="true".
        Example:
        <user encrypted="true">AES-ZKEFCtfXeLAmklzd2zomyA==</user>
        <password encrypted="true">AES-ZKEFCtfXeLAmGUdQ2zomyA==</password>
    -->
    <user encrypted="false">sa</user>
    <password encrypted="false"></password>
    <shutdownCommand>SHUTDOWN</shutdownCommand>
    <checkValidConnection>true</checkValidConnection>
    <minPoolSize>1</minPoolSize>
    <maxPoolSize>100</maxPoolSize>
    <checkoutTimeoutInMillisecs>120000</checkoutTimeoutInMillisecs>
    <maxAgeInMillisecs>3600000</maxAgeInMillisecs>
    <noOfRetries>3</noOfRetries>
    <retryInterval>2000</retryInterval>
    <removeAbandoned>false</removeAbandoned>
    <removeAbandonedTimeout>60</removeAbandonedTimeout>
  </connection>
  <blockInsertSize>2000</blockInsertSize>
  <maxQueueLogSize>200000</maxQueueLogSize>
...
</LogsDatabaseConfig>

Location for the configuration file

The configuration file logsDBConfig.xml is located in the following directory: <inubit-installdir>/server/ibis_root/conf

Properties

The following connection properties can be configured in the logsDBConfig.xml file:

Property Description

<driver>

Database driver class

<url>

URL of the database

For MySQL before version 5.7, it is only possible to communicate over TLS 1.2 when adding the property enabledTLSProtocols=TLSv1.2 to the database URL.

<user encrypted="{true|false}">

Username

Attribute encrypted="true":

The specified username is encrypted.

Attribute encrypted="false":

The specified username is not encrypted and is replaced by the encrypted username the first time the server starts.

The attribute encrypted="true" is set automatically.

<password encrypted="{true|false}">

Password

Attribute encrypted="true":

The specified password is encrypted.

Attribute encrypted="false": The specified password is not encrypted and is replaced by the encrypted password the first time the server starts.

The attribute encrypted="true" is set automatically.

<checkValidConnection>

If this property is set to true then the next connection from the pool is selected automatically in case of an invalid connection.

By default, this property is set to true. To disable the property, set it to false.

When this property is set to true, the performance may be slightly affected.

<minPoolSize>

This property determines how many database connections must be used at a minimum.

The default value is 1.

<maxPoolSize>

This property determines how many database connections can be used simultaneously.

The default value is 100.

<checkoutTimeoutInMillisecs>

This property determines the timeout for waiting for the provision of a database connection for the database connection pool.

The default value is 120000 ms (2 minutes).

<maxAgeInMillisecs>

This property determines how long the pool should wait at the most, until a connection is obtained from the pool.

The default value is 3600000 ms (60 minutes)

<retryInterval>

<noOfRetries>

In case of database errors, the query execution can be retried for <noOfRetries> times. Each retry will happen after a delay of <retryInterval> (in milliseconds).

When this property is enabled, the performance may be slightly affected.

To handle deadlock errors, the default values are set as follows:

  • <retryInterval>: 2000 (2 seconds)

  • <noOfRetries>: 3 retries

<removeAbandoned>

To remove abandoned database connections.

Possible values:

  • true

    A database connection is removed once the timeout configured in the removeAbandonedTimeout property has expired.

  • false (default)

    Database connections are not removed even if they are not used for some time.

<removeAbandonedTimeout>

To set the timeout to remove abandoned database connections.

If the removeAbandoned property is set to true, a database connection is removed once the timeout in seconds configured in the removeAbandonedTimeout property has expired.

By default, the removeAbandonedTimeout property is set to 21600 seconds (6 hours).

The value should be set to the longest running query your applications might have.

<blockInsertSize>

This property contains the configuration for the number of inserts into the database to be processed in a batch. The default value is 2000.

As soon as the number of inserts of the blocking queue reaches the value of blockInsertSize, the system sends a commit signal to the database and confirms all records in the database.

<maxQueueLogSize>

This property describes the maximum number of entries in the blocking queue. Default value is 200000.

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 blockInsertSize, the records are synchronously added from the blocking queue to the database one after the other. If the blocking queue contains less than blockInsertSize, records, the actual total number of records (< blockInsertSize,) is synchronously sent from the blocking queue to the database along with the commit signal. So, those records will be permanently committed to the database.

nullCatalogMeansCurrent

For MySQL 8 only: If a database user has access to more than one schema: Add the extra parameter nullCatalogMeansCurrent=true to the database URL (not recommended).

Configuring Audit Logs

Location for storing log file

The log file is stored in the directory <inubit-installdir>/server/ibis_root/log.

Usage

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 <inubit-installDir>/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>.

Element Description

<maximumLimitDaysAuditLog>

Entries are logged for the given number of days.

  • 0

    Entries are logged until the number of entries has reached the value configured in the maximumLimitAuditLog parameter. Afterward, the oldest log entries are removed until the number of entries has reached the value configured in the minimumLimitAuditLog parameter.

  • 1

    During the midnight task, all entries older than one day are removed. The values set for both the minimumLimitAuditLog parameter and the maximumLimitAuditLog parameter are ignored.

  • > 1

    During the midnight task, all entries older than the given number of days are removed. The values set for both the minimumLimitAuditLog parameter and the maximumLimitAuditLog parameter are ignored.

    You can configure the start time for the midnight task.

<minimumLimitAuditLog>

minimum number of entries

If the maximumLimitDaysAuditLog parameter is set to a value > 0, the minimumLimitAuditLog parameter is ignored.

<maximumLimitAuditLog>

maximum number of entries

Entries are logged until the number of entries has reached the value configured in the maximumLimitAuditLog parameter. Afterwards, the oldest log entries are removed until the number of entries has reached the value configured in the minimumLimitAuditLog parameter.

If the maximumLimitDaysAuditLog parameter is set to a value > 0, the maximumLimitAuditLog parameter is ignored.

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 <inubit-installdir>/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>.

Element Description

<maximumLimitDays>

Entries are logged for the given number of days.

  • 0

    Entries are logged until the number of entries has reached the value configured in the maximumLimit parameter. Afterward, the oldest log entries are removed until the number of entries has reached the value configured in the minimumLimit parameter.

  • 1

    During the midnight task, all entries older than one day are removed. The values set for both the minimumLimit parameter and the maximumLimit parameter are ignored.

  • > 1

    During the midnight task, all entries older than the given number of days are removed. The values set for both the minimumLimit parameter and the maximumLimit parameter are ignored.

    You can configure the start time for the midnight task.

<minimumLimit>

minimum number of entries

If the maximumLimitDays parameter is set to a value > 0, the minimumLimit parameter is ignored.

<maximumLimit>

maximum number of entries

Entries are logged until the number of entries has reached the value configured in the maximumLimit parameter. Afterward, the oldest log entries are removed until the number of entries has reached the value configured in the minimumLimit parameter.

If the maximumLimitDays parameter is set to a value > 0, the maximumLimit parameter is ignored.

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 <inubit-installdir>/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.

To avoid performance problems, activate this option only for analyzing errors.

Trace Level

  • DEBUG: General debugging (SuchAndSuch method was called up using SuchAndSuch parameter) using messages that are pertinent for the software developer.

  • INFO: Information, e.g. start a program, stop a program, create connection to host Foo, processing takes x seconds,…​).

  • WARNING: Occurrence of an unexpected situation that will probably not impair operation.

  • ERROR: Error messages, such as Exception was noted. Processing was continued for now and the Administrator must respond to it.

  • FATAL: Serious error that leads to aborting the program.

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 trace.log file.

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 Use custom log output parameter.

Maximum size of web service log file (only if checkbox for Use custom log output is deactivated)

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 webservice.log.5.

Number of backups for the web service log files (only if checkbox for Use custom log output is deactivated)

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 <inubit‑installdir>/server/ibis_root/log directory.

Configure custom log output

Proceed as follows

  1. In the row custom log output, click the administration guide 176 0 button. A dialog opens.

  2. Select the log level from the drop-down list.

  3. Click the administration guide 176 1 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.

  4. If necessary, adapt the configuration.

  5. Validate the configuration by using the pull-down menu Output definition (log4j2 appender) >Validate configuration (locally).

  6. Click OK to save the appender configuration.

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

  1. In the Workbench, open the Administration> General Settings > Logging > User defined columns page.

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

  3. Save the changes.

  4. Open the Monitoring tab.

  5. Depending on the logging table you have configured the column for, open the System Log or Queue Manager tab.

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

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