Appendix A. Configuration Properties

This chapter contains all public system properties and KIE environment entries that you can use to configure your deployment of Red Hat JBoss BPM Suite.

A.1. System Properties

System properties configure the entire JVM Red Hat JBoss BPM Suite runs on. You can either provide them at runtime, or set them in the configuration XML file for your deployment.

A.1.1. Runtime Configuration

To set a particular property at runtime, add a flag -D with the property’s name and value when starting the server. You can list multiple such properties at the same time.

Configuring System Properties at Runtime (Standalone deployments)

  1. Navigate to SERVER_HOME/bin.
  2. Run the server with the desired flags:

    ./standalone.sh -Dorg.kie.custom.property=value -Dorg.uberfire.switch=false
    Note

    On Windows, run standalone.bat instead of standalone.sh.

A.1.2. XML Configuration

To set a property in Red Hat JBoss BPM Suite configuration, add an entry under the <system-properties> section in the standalone.xml file:

<system-properties>
  <property name="org.kie.custom.property" value="random_value"/>
  <property name="org.uberfire.switch" value="false"/>
  ...
</system-properties>

When running Red Hat JBoss BPM Suite in domain mode, add the entries in the <system-properties> element of the appropriate node in the host.xml file.

A.1.3. List of System Properties

This section contains the alphabetically sorted list of all recognized system properties in Red Hat JBoss BPM Suite 6.3.

Red Hat JBoss BPM Suite System Properties

btm.root

Root directory for Bitronix Transaction Manager. The discovery of configuration and other files starts in this location.

ValuesDefault

String

N/A

drools.propertySpecific

Sets property reactivity behavior of the Red Hat JBoss BPM Suite engine. Options are following:

  • DISABLED: Property reactivity turned off.
  • ALLOWED: Property reactivity allowed.
  • ALWAYS: Property reactivity always on.
ValuesDefault

DISABLED, ALLOWED, or ALWAYS

ALLOWED

drools.ruleEngine

Specifies which algorithm the Red Hat JBoss BPM Suite rule engine should use.

ValuesDefault

phreak or reteoo

phreak

drools.sequential

Enables sequential mode for stateless sessions.

ValuesDefault

true or false

false

drools.sequential.agenda

Selects static or dynamic agenda with sequential mode.

ValuesDefault

static or dynamic

static for standard mode, dynamic for sequential mode

jboss.node.name

A node name unique in a Red Hat JBoss BPM Suite cluster.

ValuesDefault

String

N/A

jbpm.audit.jms.connection.factory

A link to a JMS connection factory instance.

ValuesDefault

A javax.jms.ConnectionFactory instance

N/A

jbpm.audit.jms.connection.factory.jndi

The JNDI name of the connection factory to look up.

ValuesDefault

String

N/A

jbpm.audit.jms.enabled

Indicates if audit mode is set to JMS.

ValuesDefault

true if Audit mode is set to JMS, otherwise false

N/A

jbpm.audit.jms.queue

A JMS Queue instance to be used when creating JMS AuditLogger.

ValuesDefault

A javax.jms.Queue instance

N/A

jbpm.audit.jms.queue.jndi

The JNDI name of the JMS queue to look up.

ValuesDefault

String

N/A

jbpm.audit.jms.transacted

Determines if the JMS session is transacted.

ValuesDefault

true or false

true

jbpm.business.calendar.properties

The location of the configuration file with Business Calendar properties.

ValuesDefault

Path

/jbpm.business.calendar.properties

jbpm.data.dir

The location where data files produced by Red Hat JBoss BPM Suite must be stored.

ValuesDefault

${jboss.server.data.dir} if available, otherwise ${java.io.tmpdir}

${java.io.tmpdir}

jbpm.enable.multi.con

Allows Web Designer to use multiple incoming or outgoing connections for tasks. If not enabled, the tasks are marked as invalid.

ValuesDefault

true or false

false

jbpm.loop.level.disabled

Enables or disables loop iteration tracking to allow advanced loop support when using XOR gateways.

ValuesDefault

true or false

true

jbpm.overdue.timer.delay

Specifies the delay for overdue timers to allow proper initialization, in milliseconds.

ValuesDefault

Number (Long)

2000

jbpm.process.name.comparator

An alternative comparator class to empower the Start Process by Name feature.

ValuesDefault

Fully qualified name

org.jbpm.process.instance.StartProcessHelper.NumberVersionComparator

jbpm.tm.jndi.lookup

Allows setting a specific TransactionManager JNDI lookup name as a fallback in case a standard JNDI name is not used. If java:comp/UserTransaction does not implement the org.drools.persistence.TransactionManager interface, these names are used, in this order:

  1. java:comp/TransactionManager
  2. java:appserver/TransactionManager
  3. java:pm/TransactionManager
  4. java:TransactionManager
  5. Value of this property
ValuesDefault

JNDI name

N/A

jbpm.usergroup.callback.properties

The location of the usegroup callback property file when org.jbpm.ht.callback is set to jaas or db.

ValuesDefault

Path

classpath:/jbpm.usergroup.callback.properties

jbpm.user.group.mapping

An alternative classpath location of user info configuration (used by LDAPUserInfoImpl).

ValuesDefault

Path

${jboss.server.config.dir}/roles.properties

jbpm.user.info.properties

An alternative classpath location for user group callback implementation (LDAP, DB). For more information, see org.jbpm.ht.userinfo.

ValuesDefault

Path

classpath:/userinfo.properties

jbpm.ut.jndi.lookup

An alternative JNDI name to be used when there is no access to the default one for user transactions (java:comp/UserTransaction).

ValuesDefault

JNDI name

N/A

jbpm.v5.id.strategy

When enabled, Red Hat JBoss BPM Suite will use the process ID generation strategy from version 5 when migrating to version 6 and newer.

ValuesDefault

true or false

false

kie.maven.settings.custom

The location of a custom settings.xml file for Maven configuration.

ValuesDefault

Path

N/A

kie.server.jms.queues.response

The JNDI name of response queue for JMS.

ValuesDefault

String

queue/KIE.SERVER.RESPONSE

org.drools.server.ext.disabled

When set to true, disables the BRM support (for example rules support).

ValuesDefault

true or false

false

org.drools.server.filter.classes

When set to true, the Drools Intelligent Process Server extension accepts custom classes annotated by XmlRootElement or Remotable annotations only.

ValuesDefault

true or false

false

org.guvnor.m2repo.dir

The location where Maven artifacts are stored. When you build and deploy a project, it is stored in this directory. Change the setting, for example, to allow easier backup of your maven repository.

ValuesDefault

Path

EAP_HOME/repositories/kie

org.guvnor.project.gav.check.disabled

Disables a duplicate GroupId, ArtifactId, and Version (GAV) detection. When you build and deploy a project, Business Central scans the Maven repository for an artifact with the same GAV values. If set to true, Business Central silently overrides any previous project. If set to false, the user is required to confirm overriding the old project.

ValuesDefault

true or false

false

org.jbpm.deploy.sync.enabled

When enabled, Red Hat JBoss BPM Suite synchronizes KJAR deployments across Business Central nodes in a cluster, and automatically loads previous deployments.

ValuesDefault

true or false

true

org.jbpm.deploy.sync.int

Interval of KJAR deployment synchronization, in seconds.

ValuesDefault

Number (Integer)

3

org.jbpm.ht.callback

Specifies the implementation of user group callback to be used:

  • mvel: Default; mostly used for testing.
  • ldap: LDAP; requires additional configuration in the jbpm.usergroup.callback.properties file.
  • db: Database; requires additional configuration in the jbpm.usergroup.callback.properties file.
  • jaas: JAAS; delegates to the container to fetch information about user data.
  • props: A simple property file; requires additional file that will keep all information (users and groups).
  • custom: A custom implementation; you must specify the fully qualified name of the class in the org.jbpm.ht.custom.callback.
ValuesDefault

mvel, ldap, db, jaas, props, or custom

mvel

org.jbpm.ht.custom.callback

A custom implementation of the UserGroupCallback interface in case the org.jbpm.ht.callback property is set to custom.

ValuesDefault

Fully qualified name

N/A

org.jbpm.ht.custom.userinfo

A custom implementation of the UserInfo interface in case the org.jbpm.ht.userinfo property is set to custom.

ValuesDefault

Fully qualified name

N/A

org.jbpm.ht.userinfo

Specifies what implementation of the UserInfo interface to use for user or group information providers.

  • ldap: LDAP; needs to be configured in the file specified in jbpm-user.info.properties.
  • db: Database; needs to be configured in the file specified in jbpm-user.info.properties.
  • props: A simple property file; set the property jbpm.user.info.properties to specify the path to the file.
  • custom: A custom implementation; you must specify the fully qualified name of the class in the org.jbpm.ht.custom.userinfo property.
ValuesDefault

ldap, db, props, or custom

N/A

org.jbpm.ht.user.separator

An alternative separator when loading actors and groups for user tasks from a String.

ValuesDefault

String

, (comma)

org.jbpm.rule.task.waitstate

When set to false, a business rule task automatically fires off all rules instead of waiting to be triggered from the outside. This prevents errors during heavy multithreaded usage.

ValuesDefault

true or false

true

org.jbpm.runtime.manager.class

A custom implementation of the org.kie.api.runtime.manager.RuntimeManagerFactory interface.

ValuesDefault

Fully qualified name

org.jbpm.runtime.manager.impl.RuntimeManagerFactoryImpl

org.jbpm.server.ext.disabled

When set to true, disables the BPM support (for example, processes support).

ValuesDefault

true or false

false

org.jbpm.ui.server.ext.disabled

When set to true, disables the Intelligent Process Server UI extension.

ValuesDefault

true or false

false

org.kie.auto.deploy.enabled

When enabled, issuing a Build & Deploy operation in Business Central always deploys to runtime.

ValuesDefault

true or false

true

org.kie.build.disable-project-explorer

Disables automatic build of the selected project in Project Explorer.

ValuesDefault

true or false

false

org.kie.dd.mergemode

Selects the method for overriding hierarchical merge mode behavior when managing deployment descriptors.

ValuesDefault

MERGE_COLLECTIONS, KEEP_ALL, OVERRIDE_ALL, or OVERRIDE_EMPTY

MERGE_COLLECTIONS

org.kie.demo

Enables external cloning of a demo application from GitHub. This System Property takes precedence over org.kie.example.

ValuesDefault

true or false

true

org.kie.example

When set to true, creates an example organization unit and repository. This system property allows you to create projects and assets without creating your custom organization unit and repository. It is useful, for example, to simplify the getting started experience.

ValuesDefault

true or false

false

org.kie.example.repositories

Sets the path to the directory containing example repositories. If you set this system property, repositories in the specified directory are automatically cloned into Business Central during startup. This property overrides org.kie.example and org.kie.demo.

Warning

You must download the example repositories from the Customer Portal and extract them to this directory before setting this system property.

ValuesDefault

Path

N/A

org.kie.executor.disabled

Disables the Red Hat JBoss BPM Suite executor.

ValuesDefault

true or false

false

org.kie.executor.initial.delay

The initial delay before the Red Hat JBoss BPM Suite executor starts a job, in milliseconds.

ValuesDefault

Number (Integer)

100

org.kie.executor.interval

The time between the moment the Red Hat JBoss BPM Suite executor finishes a job and the moment it starts a new one, in a time unit specified in org.kie.executor.timeunit.

ValuesDefault

Number (Integer)

3

org.kie.executor.pool.size

The number of threads used by the Red Hat JBoss BPM Suite executor.

ValuesDefault

Number (Integer)

1

org.kie.executor.retry.count

The number of retries the Red Hat JBoss BPM Suite executor attempts on a failed job.

ValuesDefault

Number (Integer)

3

org.kie.executor.timeunit

The time unit in which the org.kie.executor.interval is specified.

ValuesDefault

A java.util.concurrent.TimeUnit constant

SECONDS

org.kie.git.deployments.enabled

When enabled, Red Hat JBoss BPM Suite uses a Git repository for storing deployments instead of a database.

ValuesDefault

true or false

false

org.kie.mail.debug

When enabled, EmailWorkItemHandler produces debug logging for javax.mail.Session.

ValuesDefault

true or false

false

org.kie.mail.session

The JNDI name of the mail session as registered in the application server, for use by EmailWorkItemHandler.

ValuesDefault

String

mail/jbpmMailSession

org.kie.override.deploy.enabled

Allows overwriting deployments with the same GAV (not allowed by default).

ValuesDefault

true or false

false

org.kie.server.bypass.auth.user

Allows to bypass the authenticated user for task-related operations, for example queries.

ValuesDefault

true or false

false

org.kie.server.controller

A comma-separated list of URLs to controller REST endpoints, for example http://localhost:8080/business-central/rest/controller. This property is required when using a controller.

ValuesDefault

Comma-separated list

N/A

org.kie.server.controller.connect

The waiting time between repeated attempts to connect Intelligent Process Server to the controller when Intelligent Process Server starts up, in milliseconds.

ValuesDefault

Number (Long)

10000

org.kie.server.controller.pwd

The password to connect to the controller REST API. This property is required when using a controller.

ValuesDefault

String

kieserver1!

org.kie.server.controller.token

This property allows you to use a token-based authentication between the KIE server and the controller instead of the basic user name/password authentication. The KIE server sends the token as a parameter in the request header. Note that long-lived access tokens are required as the tokens are not refreshed.

ValuesDefault

String

N/A

org.kie.server.controller.user

The user name to connect to the controller REST API. This property is required when using a controller.

ValuesDefault

String

kieserver

org.kie.server.domain

The JAAS LoginContext domain used to authenticate users when using JMS.

ValuesDefault

String

N/A

org.kie.server.id

An arbitrary ID to be assigned to this server. If a remote controller is configured, this is the ID under which the server will connect to the controller to fetch the KIE container configurations. If not provided, the ID is automatically generated.

ValuesDefault

String

N/A

org.kie.server.location

The URL of the Intelligent Process Server instance used by the controller to call back on this server, for example: http://localhost:8230/kie-server/services/rest/server. This property is required when using a controller.

ValuesDefault

URL

N/A

org.kie.server.persistence.dialect

The Hibernate dialect to be used. You must set this property when enabling BPM support.

ValuesDefault

String

N/A

org.kie.server.persistence.ds

A data source JNDI name. You must set this property when enabling BPM support.

ValuesDefault

String

N/A

org.kie.server.persistence.schema

The database schema to be used.

ValuesDefault

String

N/A

org.kie.server.persistence.tm

A transaction manager platform for Hibernate properties set. You must set this property when enabling BPM support.

ValuesDefault

String

N/A

org.kie.server.pwd

The password used to connect with the KIE server from the controller, required when running in managed mode. You must set this property in Business Central system properties, and it is required when using a controller.

ValuesDefault

String

kieserver1!

org.kie.server.repo

The location where Intelligent Process Server state files will be stored.

ValuesDefault

Path

.

org.kie.server.sync.deploy

Instructs the KIE server to hold the deployment until the controller provides the containers deployment configuration. This property affects only the KIE servers running in managed mode. The options are as follows:

  • false; the connection to the controller is asynchronous. The application starts, connects to the controller and once successful, deploys the containers. The application accepts requests even before the containers are available.
  • true; the deployment of the KIE server application joins the controller connection thread with the main deployment and awaits its completion.

    This option can lead to a potential deadlock in case more applications are on the same server instance. It is strongly recommended to use only one application (the KIE server) on one server instance.

ValuesDefault

true or false

false

org.kie.server.token

This property allows you to use a token-based authentication between the controller and the KIE server instead of the basic user name/password authentication. The controller sends the token as a parameter in the request header. Note that long-lived access tokens are required as the tokens are not refreshed.

ValuesDefault

String

N/A

org.kie.server.user

The user name used to connect with the KIE server from the controller, required when running in managed mode. This property need to be set in Business Central system properties and is required when using a controller.

ValuesDefault

String

kieserver

org.kie.task.insecure

Allows an authenticated user to work on tasks on behalf of other users through the Business Central runtime remote API.

ValuesDefault

true or false

false

org.kie.timer.ejb.disabled

If you select the Singleton runtime strategy and use the EJB executor of your application server to handle timer events, a race condition may occur since the EJB executor completes a transaction outside the KieSession. Set this property to true to use the EJB executor bundled with Red Hat JBoss BPM Suite, which prevents this situation from happening.

ValuesDefault

true or false

false

org.kie.tx.lock.enabled

When enabled, Red Hat JBoss BPM Suite uses an interceptor that locks the KieSession to a single thread for the duration of a transaction, which prevents concurrency errors in Container Managed Transaction (CMT) environments.

ValuesDefault

true or false

false

org.kie.verification.disable-dtable-realtime-verification

Disables Business Central’s decision table verification and validation feature.

ValuesDefault

true or false

false

org.optaplanner.server.ext.disabled

When set to true, disables the BRP support (for example planner support).

ValuesDefault

true or false

false

org.quartz.properties

The location of the Quartz configuration file to activate the Quartz timer service.

ValuesDefault

Path

N/A

org.uberfire.cluster.autostart

Delays VFS clustering until the application is fully initialized to avoid conflicts when all cluster members create local clones.

ValuesDefault

true or false

false

org.uberfire.cluster.id

The name of the Helix cluster, for example: kie-cluster. You must set this property to the same value as defined in the Helix Controller.

ValuesDefault

String

N/A

org.uberfire.cluster.local.id

The unique ID of the Helix cluster node. Note that ':' is replaced with '_', for example node1_12345.

ValuesDefault

String

N/A

org.uberfire.cluster.vfs.lock

The name of the resource defined on the Helix cluster, for example: kie-vfs.

ValuesDefault

String

N/A

org.uberfire.cluster.zk

The location of the Zookeeper servers.

ValuesDefault

String of the form host1:port1,host2:port2,host3:port3,…​

N/A

org.uberfire.domain

The security domain name for Business Central. For more information about security domains, see chapter Use a Security Domain in Your Application of the Red Hat JBoss EAP Security Guide.

ValuesDefault

String

ApplicationRealm

org.uberfire.metadata.index.dir

The location of the .index directory, which Apache Lucene uses when indexing and searching.

ValuesDefault

Path

Current working directory

org.uberfire.nio.git.daemon.enabled

Enables the Git daemon.

ValuesDefault

true or false

true

org.uberfire.nio.git.daemon.host

If the Git daemon is enabled, it uses this property as the localhost identifier.

ValuesDefault

URL

localhost

org.uberfire.nio.git.daemon.hostport

When running in a virtualized environment, the host’s outside port number for the Git daemon.

ValuesDefault

Port number

9418

org.uberfire.nio.git.daemon.port

If the Git daemon is enabled, it uses this property as the port number.

ValuesDefault

Port number

9418

org.uberfire.nio.git.dir

The location of the directory .niogit. Change the value for example for backup purposes.

ValuesDefault

Path

Current working directory

org.uberfire.nio.git.hooks

The location where default Git hook files are stored. These files will be copied to newly created Git repositories.

ValuesDefault

Path

N/A

org.uberfire.nio.git.ssh.cert.dir

The location of the directory .security. Local certificates are stored here.

ValuesDefault

Path

Current working directory

org.uberfire.nio.git.ssh.enabled

Enables the SSH daemon.

ValuesDefault

true or false

true

org.uberfire.nio.git.ssh.host

If the SSH daemon is enabled, it uses this property as the localhost identifier.

ValuesDefault

URL

localhost

org.uberfire.nio.git.ssh.hostport

When running in a virtualized environment, the host’s outside port number for the SSH daemon.

ValuesDefault

Port number

8003

org.uberfire.nio.git.ssh.passphrase

The passphrase to access your operating system’s public keystore when cloning Git repositories with scp-style URLs, for example git@github.com:user/repository.git.

ValuesDefault

String

N/A

org.uberfire.nio.git.ssh.port

If the SSH daemon is enabled, it uses this property as the port number.

ValuesDefault

Port number

8001

org.uberfire.secure.alg

The crypto algorithm used by password encryption.

ValuesDefault

String

PBEWithMD5AndDES

org.uberfire.secure.key

A secret password used by password encryption.

ValuesDefault

String

org.uberfire.admin

org.uberfire.sys.repo.monitor.disabled

Disables the configuration monitor.

Warning

Do not use unless you are certain what you are doing.

ValuesDefault

true or false

false