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

PropertyValueDescriptionRequired
org.drools.server.ext.disabledboolean (default is "false")If true, disables the BRM support (i.e. rules support).No
org.jbpm.server.ext.disabledboolean (default is "false")If true, disables the BPM support (i.e. processes support)No
org.kie.server.idstringAn 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.userstring (default is "kieserver")User name used to connect with the kieserver from the controller, required when running in managed modeYes when using a controller. This property needs to be set in Business Central system properties.
org.kie.server.pwdstring (default is "kieserver1!")Password used to connect with the kieserver from the controller, required when running in managed modeYes when using a controller. This property needs to be set in Business Central system properties.
org.kie.server.controllercomma separated list of urlsList of urls to controller REST endpoint. E.g.: http://localhost:8080/kie-wb/rest/controllerYes when using a controller
org.kie.server.controller.userstring (default is "kieserver")Username used to connect to the controller REST apiYes when using a controller
org.kie.server.controller.pwdstring (default is "kieserver1!")Password used to connect to the controller REST apiYes when using a controller
org.kie.server.locationURL location of Intelligent Process Server instanceThe URL used by the controller to call back on this server. E.g.: http://localhost:8230/kie-server/services/rest/serverYes when using a controller
org.kie.server.domainstringJAAS LoginContext domain that shall be used to authenticate users when using JMSNo
org.kie.server.bypass.auth.userboolean (default is "false")Allows to bypass the authenticated user for task related operations e.g. queriesNo
org.kie.server.repovalid file system path (default is ".")Location on local file system where Intelligent Process Server state files will be storedNo
org.kie.server.persistence.dsstringDataSource JNDI nameYes when BPM support enabled
org.kie.server.persistence.tmstringTransaction manager platform for Hibernate properties setYes when BPM support enabled
org.kie.server.persistence.dialectstringHibernate dialect to be usedYes when BPM support enabled
org.jbpm.ht.callbackstringOne of supported callbacks for Task Service (default jaas)No
org.jbpm.ht.custom.callbackstringCustom implementation of UserGroupCallback in case org.jbpm.ht.callback was set to ‘custom’No
kie.maven.settings.customvalid file system path Location of custom settings.xml for maven configurationNo
org.kie.executor.intervalinteger (default is 3)Number of time units between polls by executorNo
org.kie.executor.pool.sizeinteger (default is 1)Number of threads in the pool for async workNo
org.kie.executor.retry.countinteger (default is 3)Number of retries to handle errorsNo
org.kie.executor.timeunitTimeUnit (default is "SECONDS")TimeUnit representing intervalNo
org.kie.executor.disabledboolean (default is "false")Disables executor completelyNo
kie.server.jms.queues.responsestring (default is "queue/KIE.SERVER.RESPONSE")JNDI name of response queue for JMSNo
org.kie.server.controller.connectlong (default is 10000)Waiting time in milliseconds between repeated attempts to connect Intelligent Process Server to controller when Intelligent Process Server starts upNo
org.drools.server.filter.classesboolean (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 DeployRule Deployments. 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.