Show Table of Contents
10.3. Realtime Decision Server Setup
10.3.1. Bootstrap Switches
The Realtime Decision Server accepts a number of bootstrap switches (system properties) to configure the behaviour of the server. The following is a table of all the supported switches.
Note that some properties are marked as required when using a controller. Thus, you need to set these properties when you handle Realtime Decision Server, container creation, and removal in Business Central. If you use the Realtime Decision Server separately, without any interaction with Business Central, you do not have to set these properties.
Table 10.1. Realtime Decision Server Bootstrap Switches
| Property | Value | Description | Required |
|---|---|---|---|
| org.drools.server.ext.disabled | boolean (default is "false") | If true, disables the BRM support (i.e. rules support). | No |
| org.jbpm.server.ext.disabled | boolean (default is "false") | If true, disables the BPM support (i.e. processes support) | No |
| org.kie.server.id | string | 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. | No. If not provided, an ID is automatically generated. |
| org.kie.server.user | string (default is "kieserver") | User name used to connect with the kieserver from the controller, required when running in managed mode | Yes when using a controller. This property needs to be set in Business Central system properties. |
| org.kie.server.pwd | string (default is "kieserver1!") | Password used to connect with the kieserver from the controller, required when running in managed mode | Yes when using a controller. This property needs to be set in Business Central system properties. |
| org.kie.server.controller | comma separated list of urls | List of urls to controller REST endpoint. E.g.: http://localhost:8080/kie-wb/rest/controller | Yes when using a controller |
| org.kie.server.controller.user | string (default is "kieserver") | Username used to connect to the controller REST api | Yes when using a controller |
| org.kie.server.controller.pwd | string (default is "kieserver1!") | Password used to connect to the controller REST api | Yes when using a controller |
| org.kie.server.location | URL location of Realtime Decision Server instance | The URL used by the controller to call back on this server. E.g.: http://localhost:8230/kie-server/services/rest/server | Yes when using a controller |
| org.kie.server.domain | string | JAAS LoginContext domain that shall be used to authenticate users when using JMS | No |
| org.kie.server.bypass.auth.user | boolean (default is "false") | Allows to bypass the authenticated user for task related operations e.g. queries | No |
| org.kie.server.repo | valid file system path (default is ".") | Location on local file system where Realtime Decision Server state files will be stored | No |
| org.kie.server.persistence.ds | string | DataSource JNDI name | Yes when BPM support enabled |
| org.kie.server.persistence.tm | string | Transaction manager platform for Hibernate properties set | Yes when BPM support enabled |
| org.kie.server.persistence.dialect | string | Hibernate dialect to be used | Yes when BPM support enabled |
| org.jbpm.ht.callback | string | One of supported callbacks for Task Service (default jaas) | No |
| org.jbpm.ht.custom.callback | string | Custom implementation of UserGroupCallback in case org.jbpm.ht.callback was set to ‘custom’ | No |
| kie.maven.settings.custom | valid file system path | Location of custom settings.xml for maven configuration | No |
| org.kie.executor.interval | integer (default is 3) | Number of time units between polls by executor | No |
| org.kie.executor.pool.size | integer (default is 1) | Number of threads in the pool for async work | No |
| org.kie.executor.retry.count | integer (default is 3) | Number of retries to handle errors | No |
| org.kie.executor.timeunit | TimeUnit (default is "SECONDS") | TimeUnit representing interval | No |
| org.kie.executor.disabled | boolean (default is "false") | Disables executor completely | No |
| kie.server.jms.queues.response | string (default is "queue/KIE.SERVER.RESPONSE") | JNDI name of response queue for JMS | No |
| org.kie.server.controller.connect | long (default is 10000) | Waiting time in milliseconds between repeated attempts to connect Realtime Decision Server to controller when Realtime Decision Server starts up | No |
| org.drools.server.filter.classes | boolean (default is "false") | If set to true then Drools Realtime Decision Server extension accepts custom classes being annotated by XmlRootElement or Remotable annotations only. | No |
Important
A new DataSource for the Realtime Decision Server must point to a different database schema than the DataSource used by Business Central.
If you are running both the Realtime Decision Server and the Business Central, make sure that each uses a different DataSource (by modifying the
org.kie.server.persistence.ds property), in order to avoid conflicts.
10.3.2. Managed Realtime Decision Server
A managed instance requires an available controller to start up the Realtime Decision Server.
A Controller is a component that keeps and manages a Realtime Decision Server configuration in a centralized way. Each controller can manage multiple configurations at once, and there can be multiple controllers in the environment. Managed Realtime Decision Server can be configured with a list of controllers, but will only connect to one at a time.
Important
Controllers should be kept in sync to ensure that the same set of configuration is provided to the server, regardless of which controller it connects to.
When the Realtime Decision Server is configured with a list of controllers, it will attempt to connect to each of them at startup until a connection is successfully established with one of them. If for some reason a connection cannot be established, the server will not start, even if there is a local storage available with configuration. This ensures consistence, and prevents the server from running with redundant configuration.
Note
To run the Realtime Decision Server in standalone mode without connecting to controllers, see Section 10.3.4, “Unmanaged Realtime Decision Server”.
10.3.3. Registering a Realtime Decision Server
To register a new managed Realtime Decision Server instance, set the following properties in
standalone.xml:
<property name="org.kie.server.user" value="anton"></property> <property name="org.kie.server.pwd" value="password1!"></property> <property name="org.kie.server.location" value="http://localhost:8080/kie-server/services/rest/server"></property> <property name="org.kie.server.controller" value="http://localhost:8080/business-central/rest/controller"></property> <property name="org.kie.server.controller.user" value="kieserver"></property> <property name="org.kie.server.controller.pwd" value="kieserver1!"></property> <property name="org.kie.server.id" value="local-server-123"></property>
The
standalone.xml file is located in the $SERVER_HOME/standalone/configuration/ directory.
org.kie.server.user must have the kie-server role assigned.
Note
org.kie.server.controller.user and org.kie.server.controller.pwd must be set to kieserver and kieserver1! respectively due to a known issue in the 6.2.0 release.
Warning
org.kie.server.location points to the same host as org.kie.server.controller. This is not suitable for production.
To create the
kieserver user:
- Change into
$SERVER_HOME/bin/. - Execute the following command:
$ ./add-user.sh -a --user kieserver --password kieserver1! --role kie-server
To verify successful start of the Realtime Decision Server, send a GET request to
http://SERVER:PORT/kie-server/services/rest/server/. Once authenticated, you will see the following XML response:
<response type="SUCCESS" msg="Kie Server info"> <kie-server-info> <capabilities>KieServer</capabilities> <capabilities>BRM</capabilities> <capabilities>BPM</capabilities> <location> http://localhost:8080/kie-server/services/rest/server </location> <name>local-server-123</name> <id>local-server-123</id> <version>6.3.0.Final-redhat-5</version> </kie-server-info> </response>
To verify successful registration, log into the Business Central and select → . If successful, you will see the registered server ID.
10.3.4. Unmanaged Realtime Decision Server
An unmanaged Realtime Decision Server is a standalone instance, and therefore must be configured individually using REST/JMS API from the Realtime Decision Server itself. There is no controller involved. The configuration is automatically persisted by the server into a file and that is used as the internal server state, in case of restarts.
The configuration is updated during the following operations:
- Deploy KIE Container
- Undeploy KIE Container
- Start KIE Container
- Stop KIE Container
Note
If the Realtime Decision Server is restarted, it will attempt to re-establish the same state that was persisted before shutdown. Therefore, KIE Containers that were running will be started, but the ones that were stopped will not.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.