Chapter 34. KIE Server ZIP file installation and configuration
You can install KIE Server using the rhdm-7.9.1-kie-server-jws.zip
file available from the Red Hat Decision Manager 7.9.1 Add Ons (rhdm-7.9.1-add-ons.zip
) file on the Customer Portal .
34.1. Installing KIE Server from ZIP files
KIE Server provides the runtime environment for business assets and accesses the data stored in the assets repository (knowledge store). You can use ZIP files to install KIE Server on an existing Red Hat JBoss Web Server 5.3.0 server instance.
To use the installer JAR file to install KIE Server, see Chapter 33, Using the Red Hat Decision Manager installer.
-
The Red Hat Decision Manager 7.9.1 Add Ons (
rhdm-7.9.1-add-ons.zip
) file has been downloaded, as described in Chapter 32, Downloading the Red Hat Decision Manager installation files. -
A backed-up Red Hat JBoss Web Server 5.3.0 server installation is available. The base directory of the Red Hat JBoss Web Server installation is referred to as
JWS_HOME
. - Sufficient user permissions to complete the installation are granted.
Procedure
-
Unzip the
rhdm-7.9.1-add-ons.zip
file. From the unzipped
rhdm-7.9.1-add-ons.zip
file, extract the following files:-
rhdm-7.9.1-kie-server-jws.zip
-
rhdm-7.9.1-decision-engine.zip
In the following instructions, the directory that contains the extracted
rhdm-7.9.1-kie-server-jws.zip
file is calledJWS_TEMP_DIR
and the directory that contains the extractedrhdm-7.9.1-decision-engine.zip
file is calledENGINE_TEMP_DIR
.-
Copy the
JWS_TEMP_DIR/rhdm-7.9.1-kie-server-jws/kie-server.war
directory to theJWS_HOME/tomcat/webapps
directory.NoteEnsure the names of the Red Hat Decision Manager deployments you copy do not conflict with your existing deployments in the Red Hat JBoss Web Server instance.
-
Remove the
.war
extensions from thekie-server.war
folder. -
Move the
kie-tomcat-integration-7.44.0.Final-redhat-00006.jar
file from theENGINE_TEMP_DIR
directory to theJWS_HOME/tomcat/lib
directory. -
Move the
jboss-jacc-api-<VERSION>.jar
,slf4j-api-<VERSION>.jar
, andslf4j-jdk14-<VERSION>.jar
files from theENGINE_TEMP_DIR/lib
directory to theJWS_HOME/tomcat/lib
directory, where<VERSION>
is the version artifact file name, in thelib
directory. Add the following line to the
<host>
element in theJWS_HOME/tomcat/conf/server.xml
file after the last Valve definition:<Valve className="org.kie.integration.tomcat.JACCValve" />
<Valve className="org.kie.integration.tomcat.JACCValve" />
Copy to Clipboard Copied! -
Open the
JWS_HOME/tomcat/conf/tomcat-users.xml
file in a text editor. Add users and roles to the
JWS_HOME/tomcat/conf/tomcat-users.xml
file. In the following example,<ROLE_NAME>
is a role supported by Red Hat Decision Manager.<USER_NAME>
and<USER_PWD>
are the user name and password of your choice:<role rolename="<ROLE_NAME>"/> <user username="<USER_NAME>" password="<USER_PWD>" roles="<ROLE_NAME>"/>
<role rolename="<ROLE_NAME>"/> <user username="<USER_NAME>" password="<USER_PWD>" roles="<ROLE_NAME>"/>
Copy to Clipboard Copied! If a user has more than one role, as shown in the following example, separate the roles with a comma:
<role rolename="admin"/> <role rolename="kie-server"/> <user username="rhdmUser" password="user1234" roles="admin,kie-server"/>
<role rolename="admin"/> <role rolename="kie-server"/> <user username="rhdmUser" password="user1234" roles="admin,kie-server"/>
Copy to Clipboard Copied! Complete one of the following steps in the
JWS_HOME/tomcat/bin
directory:On Linux or UNIX, create the
setenv.sh
file with the following content:CATALINA_OPTS="-Xmx1024m -Dorg.jboss.logging.provider=jdk -Dorg.jbpm.server.ext.disabled=true -Dorg.jbpm.ui.server.ext.disabled=true -Dorg.jbpm.case.server.ext.disabled=true"
CATALINA_OPTS="-Xmx1024m -Dorg.jboss.logging.provider=jdk -Dorg.jbpm.server.ext.disabled=true -Dorg.jbpm.ui.server.ext.disabled=true -Dorg.jbpm.case.server.ext.disabled=true"
Copy to Clipboard Copied! On Windows, add the following content to the
setenv.bat
file:set CATALINA_OPTS="-Xmx1024m -Dorg.jboss.logging.provider=jdk -Dorg.jbpm.server.ext.disabled=true -Dorg.jbpm.ui.server.ext.disabled=true -Dorg.jbpm.case.server.ext.disabled=true
set CATALINA_OPTS="-Xmx1024m -Dorg.jboss.logging.provider=jdk -Dorg.jbpm.server.ext.disabled=true -Dorg.jbpm.ui.server.ext.disabled=true -Dorg.jbpm.case.server.ext.disabled=true
Copy to Clipboard Copied!
34.2. Configuring JDBC Web Server data sources
Java Database Connectivity (JDBC) is an API specification that is used to connect programs written in Java to the data in popular databases. A data source is an object that enables a JDBC client, such as an application server, to establish a connection with a database. Applications look up the data source on the Java Naming and Directory Interface (JNDI) tree or in the local application context and request a database connection to retrieve data. You must configure data sources for KIE Server to ensure proper data exchange between the servers and the designated database.
Prerequisites
- Red Hat Decision Manager is installed on Red Hat JBoss Web Server.
-
The Red Hat Decision Manager 7.9.x Maven Repository (
rhdm-7.9.1-maven-repository.zip
) and the Red Hat Decision Manager 7.9.x Add-Ons (rhdm-7.9.1-add-ons.zip
) files have been downloaded, as described in Chapter 32, Downloading the Red Hat Decision Manager installation files. You want to configure one of the following supported databases and Hibernate dialects:
-
DB2:
org.hibernate.dialect.DB2Dialect
-
MSSQL:
org.hibernate.dialect.SQLServer2012Dialect
-
MySQL:
org.hibernate.dialect.MySQL5InnoDBDialect
-
MariaDB:
org.hibernate.dialect.MySQL5InnoDBDialect
-
Oracle:
org.hibernate.dialect.Oracle10gDialect
-
PostgreSQL:
org.hibernate.dialect.PostgreSQL82Dialect
-
PostgreSQL plus:
org.hibernate.dialect.PostgresPlusDialect
-
Sybase:
org.hibernate.dialect.SybaseASE157Dialect
-
DB2:
Procedure
Complete the following steps to prepare your database:
-
Extract
rhdm-7.9.1-add-ons.zip
in a temporary directory, for exampleTEMP_DIR
. -
Extract
TEMP_DIR/rhdm-7.9.1-migration-tool.zip
. -
Change your current directory to the
TEMP_DIR/rhdm-7.9.1-migration-tool/ddl-scripts
directory. This directory contains DDL scripts for several database types. Import the DDL script for your database type into the database that you want to use, for example:
psql jbpm < /ddl-scripts/postgresql/postgresql-jbpm-schema.sql
psql jbpm < /ddl-scripts/postgresql/postgresql-jbpm-schema.sql
Copy to Clipboard Copied! NoteIf you are using PostgreSQL or Oracle in conjunction with Spring Boot, you must import the respective Spring Boot DDL script, for example
/ddl-scripts/oracle/oracle-springboot-jbpm-schema.sql
or/ddl-scripts/postgresql/postgresql-springboot-jbpm-schema.sql
.
-
Extract
-
Extract the
rhdm-7.9.1-maven-repository.zip
offline Maven repository file. Copy the following libraries from the extracted offline Maven repository to the
JWS_HOME/tomcat/lib
folder whereVERSION
is the version of that library:org/jboss/spec/javax/transaction/jboss-transaction-api_1.2_spec/{VERSION}/jboss-transaction-api_1.2_spec-{VERSION}.jar org/jboss/integration/narayana-tomcat/{VERSION}/narayana-tomcat-{VERSION}.jar org/jboss/narayana/jta/narayana-jta/{VERSION}/narayana-jta-{VERSION}.jar org/jboss/jboss-transaction-spi/{VERSION}/jboss-transaction-spi-{VERSION}.jar
org/jboss/spec/javax/transaction/jboss-transaction-api_1.2_spec/{VERSION}/jboss-transaction-api_1.2_spec-{VERSION}.jar org/jboss/integration/narayana-tomcat/{VERSION}/narayana-tomcat-{VERSION}.jar org/jboss/narayana/jta/narayana-jta/{VERSION}/narayana-jta-{VERSION}.jar org/jboss/jboss-transaction-spi/{VERSION}/jboss-transaction-spi-{VERSION}.jar
Copy to Clipboard Copied! -
Copy your database JDBC driver to the
JWS_HOME/tomcat/lib
folder. Configure the pooling XA data source in the
JWS_HOME/tomcat/conf/context.xml
file:NoteSome of the properties in the following examples might not apply to your database server. Check the documentation for your JDBC driver to determine which properties to set.
Configure an XA data source without pooling capabilities. This XA data source is used to create new connections to the target database. In the following example, the XA datasource is
xads
and the variables are defined in Table 34.1, “XA data source variables”:<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource auth="Container" databaseName="${datasource.dbName}" description="XA Data Source" factory="org.apache.tomcat.jdbc.naming.GenericNamingResourcesFactory" loginTimeout="0" name="xads" uniqueName="xads" portNumber="${datasource.port}" serverName="${datasource.hostname}" testOnBorrow="false" type="${datasource.class}" url="${datasource.url}" URL="${datasource.url}" user="${datasource.username}" password="${datasource.password}" driverType="4" schema="${datasource.schema}" /> </Context>
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource auth="Container" databaseName="${datasource.dbName}" description="XA Data Source" factory="org.apache.tomcat.jdbc.naming.GenericNamingResourcesFactory" loginTimeout="0" name="xads" uniqueName="xads" portNumber="${datasource.port}" serverName="${datasource.hostname}" testOnBorrow="false" type="${datasource.class}" url="${datasource.url}" URL="${datasource.url}" user="${datasource.username}" password="${datasource.password}" driverType="4" schema="${datasource.schema}" /> </Context>
Copy to Clipboard Copied! Table 34.1. XA data source variables Variable Description <datasource.dbName>
The name of the database.
<datasource.port>
The port number of the database.
<datasource.hostname>
The name of the database host.
<datasource.class>
XADataSource
class of JDBC driver.<datasource.url>
The JDBC database connection URL. With some databases, the URL property is
url
and with other databases (for example H2 databases) this property isURL
.<datasource.username>
User name for the database connection.
<datasource.password>
Password for the database connection.
<datasource.schema>
The database schema.
Configure a pooling data source that relies on the XA data source for creating new connections. In this example, the data source is
poolingXaDs
,<datasource.username>
is the user name for the database connection, and<datasource.password>
is the password for the database connection:<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="poolingXaDs" uniqueName="poolingXaDs" auth="Container" description="Pooling XA Data Source" factory="org.jboss.narayana.tomcat.jta.TransactionalDataSourceFactory" testOnBorrow="true" transactionManager="TransactionManager" transactionSynchronizationRegistry="TransactionSynchronizationRegistry" type="javax.sql.XADataSource" username="${datasource.username}" password="${datasource.password}" xaDataSource="xads" /> </Context>
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="poolingXaDs" uniqueName="poolingXaDs" auth="Container" description="Pooling XA Data Source" factory="org.jboss.narayana.tomcat.jta.TransactionalDataSourceFactory" testOnBorrow="true" transactionManager="TransactionManager" transactionSynchronizationRegistry="TransactionSynchronizationRegistry" type="javax.sql.XADataSource" username="${datasource.username}" password="${datasource.password}" xaDataSource="xads" /> </Context>
Copy to Clipboard Copied! The data source is now available under the
java:comp/env/poolingXaDs
JNDI name and passes it to the KIE Server through theorg.kie.server.persistence.ds
system property as described in the next steps.NoteThe pooling data source configuration relies on additional resources that have been previously configured in
context.xml
file inkie-server
application, specificallyTransactionManager
andTransactionSynchronizationRegistry
.
Configure KIE Server to use the data source:
Open one of the following scripts in a text editor:
NoteThe
setenv.sh
orsetenv.bat
script should already exist. However, if it does not, create it.For Linux or Unix:
JWS_HOME/tomcat/bin/setenv.sh
JWS_HOME/tomcat/bin/setenv.sh
Copy to Clipboard Copied! For Windows:
JWS_HOME/tomcat/bin/setenv.bat
JWS_HOME/tomcat/bin/setenv.bat
Copy to Clipboard Copied!
Add the following properties to
CATALINA_OPS
where<hibernate.dialect>
is the Hibernate dialect for your database:CATALINA_OPTS="-Xmx1024m -Dorg.jboss.logging.provider=jdk -Dorg.kie.server.persistence.ds=java:comp/env/poolingXaDs -Dorg.kie.server.persistence.tm=JBossTS -Dorg.kie.server.persistence.dialect=${<hibernate.dialect>}"
CATALINA_OPTS="-Xmx1024m -Dorg.jboss.logging.provider=jdk -Dorg.kie.server.persistence.ds=java:comp/env/poolingXaDs -Dorg.kie.server.persistence.tm=JBossTS -Dorg.kie.server.persistence.dialect=${<hibernate.dialect>}"
Copy to Clipboard Copied!