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

A.1. System Properties

System properties configure the entire JVM Red Hat JBoss BRMS 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 BRMS 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 BRMS 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 BRMS 6.4.

Red Hat JBoss BRMS 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 BRMS 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 BRMS 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 BRMS cluster.

ValuesDefault

String

N/A

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 Realtime Decision Server extension accepts custom classes annotated by XmlRootElement or Remotable annotations only.

ValuesDefault

true or false

false

org.guvnor.inbox.disabled

When set to true, this system property disables the Inbox feature and the Inbox mechanism of tracking changes to files is turned off. Doing this enables faster response to file system operations.

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

ValuesDefault

true or false

false

org.kie.executor.initial.delay

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

ValuesDefault

Number (Integer)

100

org.kie.executor.interval

The time between the moment the Red Hat JBoss BRMS 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 BRMS executor.

ValuesDefault

Number (Integer)

1

org.kie.executor.retry.count

The number of retries the Red Hat JBoss BRMS 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 BRMS uses a Git repository for storing deployments instead of a database.

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.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 Realtime Decision Server to the controller when Realtime Decision 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 Realtime Decision 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.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 Realtime Decision 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.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.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.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.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

A.2. Environment Properties

As opposed to system properties, environment properties are passed to an individual KieSession, allowing you to control its behaviour independently on the rest of the deployment.

The properties available to you are the constants of the class org.kie.api.runtime.EnvironmentName.

A.2.1. Configuration

To set the environment properties on a KieSession, you can create a new session with an instance of the Environment or RuntimeEnvironment interface:

Setting Environment Property using Environment interface

Environment env = EnvironmentFactory.newEnvironment();
env.set(EnvironmentName.SAMPLE_PROPERTY, true);
kbase.newKieSession(null, env);

Setting Environment Property using RuntimeEnvironment interface

RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get()
.newDefaultBuilder()
....

environment.getEnvironment().set(EnvironmentName.SAMPLE_PROPERTY, true);
singletonManager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment);

A.2.2. List of Environment Properties

This section contains the alphabetically sorted list of all recognized environment properties in Red Hat JBoss BRMS 6.4.

Red Hat JBoss BRMS Environment Properties

CALENDARS
This property is not used.
DATE_FORMATS
This property is not used.
GLOBALS
ValuesDefault

Any object declared in DRL or BPMN

N/A

OBJECT_MARSHALLING_STRATEGIES

Enable use of pluggable variable persistence strategies. Allows storing variables in different data stores.

ValuesDefault

An instance of org.kie.api.marshalling.ObjectMarshallingStrategy

Dependent on the engine configuration. If no other strategy is available, org.drools.core.marshalling.impl.SerializablePlaceholderResolvingStrategy is used.

PERSISTENCE_CONTEXT_MANAGER

The ProcessPersistenceContextManager instance used for process persistence.

ValuesDefault

An instance of org.jbpm.persistence.ProcessPersistenceContextManager

An instance of org.jbpm.persistence.JpaProcessPersistenceContextManager

TRANSACTION

Optional property if UserTransaction can not be obtained using JNDI lookup.

ValuesDefault

An instance of UserTransaction

null

TRANSACTION_MANAGER

Get the TransactionManager instance from the environment or context. For example:

info = context.get(EnvironmentName.TRANSACTION_MANAGER)
ValuesDefault

An instance of TransactionManager

Depends on your configuration

TRANSACTION_SYNCHRONIZATION_REGISTRY

Allows access to and control of the active transaction. Used by Red Hat JBoss BRMS to efficiently manage persistence.

ValuesDefault

An instance of TransactionSynchronizationRegistry

Taken from the environment—​usually JNDI lookup in JTA environments