Show Table of Contents
9.3. Intelligent Process Server Setup
9.3.1. Bootstrap Switches
The Intelligent Process 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 Intelligent Process Server, container creation, and removal in Business Central. If you use the Intelligent Process Server separately, without any interaction with Business Central, you do not have to set these properties.
Table 9.1. Intelligent Process 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 Intelligent Process 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 Intelligent Process 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 Intelligent Process Server to controller when Intelligent Process Server starts up | No |
| org.drools.server.filter.classes | boolean (default is "false") | If set to true then Drools Intelligent Process Server extension accepts custom classes being annotated by XmlRootElement or Remotable annotations only. | No |
Important
A new DataSource for the Intelligent Process Server must point to a different database schema than the DataSource used by Business Central.
If you are running both the Intelligent Process 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.
9.3.2. Managed Intelligent Process Server
A managed instance requires an available controller to start up the Intelligent Process Server.
A Controller is a component that keeps and manages a Intelligent Process Server configuration in a centralized way. Each controller can manage multiple configurations at once, and there can be multiple controllers in the environment. Managed Intelligent Process 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 Intelligent Process 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 Intelligent Process Server in standalone mode without connecting to controllers, see Section 9.3.4, “Unmanaged Intelligent Process Server”.
9.3.3. Registering a Intelligent Process Server
To register a new managed Intelligent Process 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 Intelligent Process 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.
9.3.4. Unmanaged Intelligent Process Server
An unmanaged Intelligent Process Server is a standalone instance, and therefore must be configured individually using REST/JMS API from the Intelligent Process 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 Intelligent Process 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.