Chapter 20. KIE Server system properties KIE Server accepts the following system properties (bootstrap switches) to configure the behavior of the server: Table 20.1. System properties for disabling KIE Server extensions Property Values Default Description org.drools.server.ext.disabled true , false false If set to true , disables the Business Rule Management (BRM) support (for example, rules support). org.jbpm.server.ext.disabled true , false false If set to true , disables the Red Hat Process Automation Manager support (for example, processes support). org.jbpm.ui.server.ext.disabled true , false false If set to true , disables the Red Hat Process Automation Manager UI extension. org.jbpm.case.server.ext.disabled true , false false If set to true , disables the Red Hat Process Automation Manager case management extension. org.optaplanner.server.ext.disabled true , false false If set to true , disables the Red Hat build of OptaPlanner support. org.kie.prometheus.server.ext.disabled true , false true If set to true , disables the Prometheus Server extension. org.kie.scenariosimulation.server.ext.disabled true , false true If set to true , disables the Test scenario Server extension. org.kie.dmn.server.ext.disabled true , false false If set to true , disables the KIE Server DMN support. org.kie.swagger.server.ext.disabled true , false false If set to true , disables the KIE Server swagger documentation support Note Some Process Automation Manager controller properties listed in the following table are marked as required. Set these properties when you create or remove KIE Server containers in Business Central. If you use KIE Server separately without any interaction with Business Central, you do not need to set the required properties. Table 20.2. System properties required for Process Automation Manager controller Property Values Default Description org.kie.server.id String N/A An arbitrary ID to be assigned to the server. If a headless Process Automation Manager controller is configured outside of Business Central, this is the ID under which the server connects to the headless Process Automation Manager controller to fetch the KIE container configurations. If not provided, the ID is automatically generated. org.kie.server.user String kieserver The user name used to connect with KIE Server from the Process Automation Manager controller, required when running in managed mode. Set this property in Business Central system properties. Set this property when using a Process Automation Manager controller. org.kie.server.pwd String kieserver1! The password used to connect with KIE Server from the Process Automation Manager controller, required when running in managed mode. Set this property in Business Central system properties. Set this property when using a Process Automation Manager controller. org.kie.server.token String N/A A property that enables you to use token-based authentication between the Process Automation Manager controller and KIE Server instead of the basic user name and password authentication. The Process Automation Manager controller sends the token as a parameter in the request header. The server requires long-lived access tokens because the tokens are not refreshed. org.kie.server.location URL N/A The URL of the KIE Server instance used by the Process Automation Manager controller to call back on this server, for example, http://localhost:8230/kie-server/services/rest/server . Setting this property is required when using a Process Automation Manager controller. org.kie.server.controller Comma-separated list N/A A comma-separated list of URLs to the Process Automation Manager controller REST endpoints, for example, http://localhost:8080/business-central/rest/controller . Setting this property is required when using a Process Automation Manager controller. org.kie.server.controller.user String kieserver The user name to connect to the Process Automation Manager controller REST API. Setting this property is required when using a Process Automation Manager controller. org.kie.server.controller.pwd String kieserver1! The password to connect to the Process Automation Manager controller REST API. Setting this property is required when using a Process Automation Manager controller. org.kie.server.controller.token String N/A A property that enables you to use token-based authentication between KIE Server and the Process Automation Manager controller instead of the basic user name and password authentication. The server sends the token as a parameter in the request header. The server requires long-lived access tokens because the tokens are not refreshed. org.kie.server.controller.connect Long 10000 The waiting time in milliseconds between repeated attempts to connect KIE Server to the Process Automation Manager controller when the server starts. Table 20.3. Persistence system properties Property Values Default Description org.kie.server.persistence.ds String N/A A data source JNDI name. Set this property when enabling the BPM support. org.kie.server.persistence.tm String N/A A transaction manager platform for Hibernate properties. Set this property when enabling the BPM support. org.kie.server.persistence.dialect String N/A The Hibernate dialect to be used. Set this property when enabling the BPM support. org.kie.server.persistence.schema String N/A The database schema to be used. Table 20.4. Executor system properties Property Values Default Description org.kie.executor.interval Integer 0 The time between the moment the Red Hat Process Automation Manager executor finishes a job and the moment it starts a new one, in a time unit specified in the org.kie.executor.timeunit property. org.kie.executor.timeunit java.util.concurrent.TimeUnit constant SECONDS The time unit in which the org.kie.executor.interval property is specified. org.kie.executor.pool.size Integer 1 The number of threads used by the Red Hat Process Automation Manager executor. org.kie.executor.retry.count Integer 3 The number of retries the Red Hat Process Automation Manager executor attempts on a failed job. org.kie.executor.jms.queue String queue/KIE.SERVER.EXECUTOR Job executor JMS queue for KIE Server. org.kie.executor.jms.jobHeader true , false false If set to true , the request identifier is included in the JMS header as the jobId property. org.kie.executor.disabled true , false false If set to true , disables the KIE Server executor. Table 20.5. Human task system properties Property Values Default Description org.jbpm.ht.callback mvel ldap db jaas props custom jaas A property that 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 keeps all information (users and groups). custom : A custom implementation; specify the fully qualified name of the class in the org.jbpm.ht.custom.callback property. org.jbpm.ht.custom.callback Fully qualified name N/A A custom implementation of the UserGroupCallback interface in case the org.jbpm.ht.callback property is set to custom . org.jbpm.task.cleanup.enabled true , false true Enables task cleanup job listener to remove tasks once the process instance is completed. org.jbpm.task.bam.enabled true , false true Enables task BAM module to store task related information. org.jbpm.ht.admin.user String Administrator User who can access all the tasks from KIE Server. org.jbpm.ht.admin.group String Administrators The group that users must belong to in order to view all the tasks from KIE Server. Table 20.6. System properties for loading keystore Property Values Default Description kie.keystore.keyStoreURL URL N/A The URL is used to load a Java Cryptography Extension KeyStore (JCEKS). For example, file:///home/kie/keystores/keystore.jceks . kie.keystore.keyStorePwd String N/A The password is used for the JCEKS. kie.keystore.key.server.alias String N/A The alias name of the key for REST services where the password is stored. kie.keystore.key.server.pwd String N/A The password of an alias for REST services. kie.keystore.key.ctrl.alias String N/A The alias of the key for default REST Process Automation Manager controller. kie.keystore.key.ctrl.pwd String N/A The password of an alias for default REST Process Automation Manager controller. Table 20.7. System properties for retrying committing transactions Property Values Default Description org.kie.optlock.retries Integer 5 This property describes how many times the process engine retries a transaction before failing permanently. org.kie.optlock.delay Integer 50 The delay time before the first retry, in milliseconds. org.kie.optlock.delayFactor Integer 4 The multiplier for increasing the delay time for each subsequent retry. With the default values, the process engine waits 50 milliseconds before the first retry, 200 milliseconds before the second retry, 800 milliseconds before the third retry, and so on. Table 20.8. Other system properties Property Values Default Description kie.maven.settings.custom Path N/A The location of a custom settings.xml file for Maven configuration. kie.server.jms.queues.response String queue/KIE.SERVER.RESPONSE The response queue JNDI name for JMS. org.drools.server.filter.classes true , false false When set to true , the Drools KIE Server extension accepts custom classes annotated by the XmlRootElement or Remotable annotations only. org.kie.server.bypass.auth.user true , false false A property that enables you to bypass the authenticated user for task-related operations, for example queries. org.jbpm.rule.task.firelimit Integer 10000 This property specifies the maximum number of executed rules to avoid situations where rules run into an infinite loop and make the server completely unresponsive. org.jbpm.ejb.timer.local.cache true , false true This property turns off the EJB Timers local cache. org.kie.server.domain String N/A The JAAS LoginContext domain used to authenticate users when using JMS. org.kie.server.repo Path . The location where KIE Server state files are stored. org.kie.server.sync.deploy true , false false A property that instructs KIE Server to hold the deployment until the Process Automation Manager controller provides the container deployment configuration. This property only affects servers running in managed mode. The following options are available: * false : The connection to the Process Automation Manager controller is asynchronous. The application starts, connects to the Process Automation Manager controller, and once successful, deploys the containers. The application accepts requests even before the containers are available. * true : The deployment of the server application joins the Process Automation Manager 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. Use only one application on one server instance. org.kie.server.startup.strategy ControllerBasedStartupStrategy , LocalContainersStartupStrategy ControllerBasedStartupStrategy The Startup strategy of KIE Server used to control the KIE containers that are deployed and the order in which they are deployed. org.kie.server.mgmt.api.disabled true , false false When set to true , disables KIE Server management API. org.kie.server.xstream.enabled.packages Java packages like org.kie.example . You can also specify wildcard expressions like org.kie.example.* . N/A A property that specifies additional packages to allowlist for marshalling using XStream. org.kie.store.services.class String org.drools.persistence.jpa.KnowledgeStoreServiceImpl Fully qualified name of the class that implements KieStoreServices that are responsible for bootstrapping KieSession instances. org.kie.server.strict.id.format true , false false While using JSON marshalling, if the property is set to true , it will always return a response in the proper JSON format. For example, if the original response contains only a single number, then the response is wrapped in a JSON format. For example, {"value" : 1} . org.kie.server.json.customObjectDeserializerCNFEBehavior IGNORE , WARN , EXCEPTION IGNORE While using JSON unmarshalling, when a class in a payload is not found, the behavior can be changed using this property as follows: If the property is set to IGNORE , the payload is converted to a HashMap If the property is set to WARN , the payload is converted to a HashMap and a warning is logged If the property is set to EXCEPTION , KIE Server throws an exception org.kie.server.strict.jaxb.format true , false false When the value of this property is set to true , KIE Server validates the data type of the data in the REST API payload. For example, if a data field has the number data type and contains something other than a number, you will receive an error.

Commands: