Chapter 6. Installing and running the headless Decision Manager controller with IBM WebSphere Application Server
To use the Decision Server REST API or Java Client API to interact with Decision Server, install the headless Decision Manager controller with IBM WebSphere Application Server. The headless Decision Manager controller manages Decision Server configuration in a centralized way so that you can use the headless Decision Manager controller to create and maintain containers and perform other server-level tasks.
For optimal results, install Decision Server and the headless Decision Manager controller on different servers in production environments. In development environments, you can install Decision Server and the headless Decision Manager controller on the same server.
Prerequisites
- The IBM WebSphere Application Server instance is configured as described in Chapter 4, Configuring IBM WebSphere Application Server for Decision Server.
- Decision Server is installed on the IBM WebSphere Application Server instance.
- You have sufficient user permissions to complete the installation.
Procedure
Navigate to the Software Downloads page in the Red Hat Customer Portal (login required), and select the product and version from the drop-down options:
- Product: Decision Manager
- Version: 7.3
- Download Red Hat Decision Manager 7.3.0 Add-Ons.
-
Extract the downloaded
rhdm-7.3.0-add-ons.zip
file to a temporary directory. -
Extract the
rhdm-7.3.0-add-ons.zip
file to a temporary directory. In the following examples this directory is calledTEMP_DIR
. -
Extract the
rhdm-7.3.0-add-ons/rhdm-7.3.0-controller-ee7.zip
file. Repackage the
controller.war
directory:-
Navigate to the
TEMP_DIR/rhdm-7.3.0-add-ons/rhdm-7.3.0-controller-ee7/controller.war
directory. -
Select the contents of the
TEMP_DIR/rhdm-7.3.0-add-ons/rhdm-7.3.0-controller-ee7/controller.war
directory and create thecontroller.zip
file. -
Rename
controller.zip
tocontroller.war
. This is the file that you will use to deploy the headless Decision Manager controller. -
If desired, copy the new
controller.war
file to a location that is more convenient to deploy from.
-
Navigate to the
-
In the WebSphere Integrated Solutions Console, navigate to Applications
Application Types WebSphere Enterprise Applications. - Click Install.
-
Navigate to the
controller.war
file that you repackaged and select it to upload. Select Fast Path and click Next.
The Install New Application wizard opens.
-
Change the Application Name to
controller
and click Next. - Map the headless Decision Manager controller modules to servers according to your specific requirements and click Next.
-
For Bind Listeners for Message-Driven Beans, select Activation Specification for both beans, enter
jms/activation/KIE.SERVER.REQUEST
in the Target Resource JNDI Name field, and enter thejms/cf/KIE.SERVER.REQUEST
JNDI name for theKIE.SERVER.REQUEST
connection factory. - In the Map Virtual Hosts for Web Modules section, keep the default values and click Next.
-
Set the context root to
controller
. - In the Metadata for Modules section, keep the default values and click Next.
- Click Finish to install the headless Decision Manager controller and click Save to save the changes to the master configuration.
6.1. Configuring class loading for the headless Decision Manager controller
After the headless Decision Manager controller is installed, you must configure Decision Server class loading to set parent classes to load last.
Procedure
-
Navigate to Applications
Application Types WebSphere Enterprise Applications and click kie-server
. - Click Class Loading and Update Detection under the Detail Properties heading on the left.
- In the properties, change Class Loader Order to Classes loaded with local class loader first (parent last) and WAR Class Loader Policy to Single class loader for application.
- Save the changes to the master configuration.
6.2. Setting system properties for the headless Decision Manager controller
After you install the headless Decision Manager controller, set the system properties listed in this section on your application server or servers to enable proper interaction with the headless Decision Manager controller.
For optimal results, install Decision Server and the headless Decision Manager controller on different servers in production environments. In development environments, you can install Decision Server and the headless Decision Manager controller on the same server. In either case, be sure to make these property changes on all application servers where the headless Decision Manager controller is installed.
Prerequisite
Decision Server and the headless Decision Manager controller are installed on the application server instance.
Procedure
Specify the following JVM property values on the application server instance where the headless Decision Manager controller is installed:
Table 6.1. Required properties for the headless Decision Manager controller Name Requirement org.kie.server.user
A user with the
kie-server
roleorg.kie.server.pwd
The password for the user specified in the
org.kie.server.user
propertySpecify the following JVM property values on the application server instance where Decision Server is installed:
Table 6.2. Required properties for Decision Server when headless Decision Manager controller is installed Name Requirement org.kie.server.controller.user
A user with the
kie-server
roleorg.kie.server.controller.pwd
The password for the user specified for the
org.kie.server.controller.user
propertyorg.kie.server.id
The ID or name of the Decision Server installation, such as
rhdm700-decision-server-1
org.kie.server.location
The URL of the Decision Server,
http://<HOST>:<PORT>/kie-server/services/rest/server
org.kie.server.controller
The URL of the headless Decision Manager controller,
http://<HOST>:<PORT>/controller/rest/controller
<HOST>
is the ID or name of the Decision Server host, for example,localhost
or192.7.8.9
.<PORT>
is the port of the Decision Server host, for example,7001
.
6.3. Mapping the headless Decision Manager controller group and role
After the headless Decision Manager controller is installed, in the WebSphere Integrated Solutions Console, you must create the kie-server
group and then map the kie-server
role to the kie-server
group.
Prerequisite
- The headless Decision Manager controller is installed on the IBM WebSphere Application Server instance.
Procedure
-
In the WebSphere Integrated Solutions Console, create the
kie-server
group and a user for that group, as described in Creating the Decision Server group and role. -
Navigate to Applications
Application Types WebSphere Enterprise Applications and select the newly installed headless Decision Manager controller. - Under Detail Properties, click Security Role to User/Group Mapping.
-
Select the
kie-server
role and click Map Groups to search for thekie-server
group. Move the
kie-server
group from the Available list to the Selected list and click OK.This mapping gives the previously created administrator user access to Decision Manager.
- Click Save to complete the mapping.
6.4. Verifying the installation
After you install the headless Decision Manager controller and define the required system properties and role requirements on the application server, verify that the headless Decision Manager controller works correctly.
Prerequisites
- Decision Server and the headless Decision Manager controller are installed on the application server instance.
- You have set all required system properties and role requirements for the headless Decision Manager controller on the application server.
Procedure
In your command terminal, enter the following command to verify that the headless Decision Manager controller is working:
curl -X GET "http://<HOST>:<PORT>/controller/rest/controller/management/servers" -H "accept: application/xml" -u '<CONTROLLER>:<CONTROLLER_PWD>'
<HOST>
is the ID or name of the Decision Server host, for example, localhost
or 192.7.8.9
.
<PORT>
is the port of the Decision Server host, for example, 7001
.
<CONTROLLER>
and <CONTROLLER_PWD>
are the user credentials that you created in this section.
The command should return information about the Decision Server instance.
Alternatively, you can use the Decision Server Java API Client to access the headless Decision Manager controller.
If the headless Decision Manager controller is not running, stop and restart the application server instance and try again to access the headless Decision Manager controller URL or API.