Chapter 6. Installing and running the headless Decision Manager controller with IBM WebSphere Application Server

To use the KIE Server REST API or Java Client API to interact with KIE Server, install the headless Decision Manager controller with IBM WebSphere Application Server. The headless Decision Manager controller manages KIE 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.

Note

For optimal results, install KIE Server and the headless Decision Manager controller on different servers in production environments. In development environments, you can install KIE Server and the headless Decision Manager controller on the same server.

Prerequisites

Procedure

  1. 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.8
  2. Download Red Hat Decision Manager 7.8.0 Add-Ons.
  3. Extract the downloaded rhdm-7.8.0-add-ons.zip file to a temporary directory.
  4. Extract the rhdm-7.8.0-add-ons.zip file to a temporary directory. In the following examples this directory is called TEMP_DIR.
  5. Extract the rhdm-7.8.0-add-ons/rhdm-7.8.0-controller-ee7.zip file.
  6. Repackage the controller.war directory:

    1. Navigate to the TEMP_DIR/rhdm-7.8.0-add-ons/rhdm-7.8.0-controller-ee7/controller.war directory.
    2. Select the contents of the TEMP_DIR/rhdm-7.8.0-add-ons/rhdm-7.8.0-controller-ee7/controller.war directory and create the controller.zip file.
    3. Rename controller.zip to controller.war. This is the file that you will use to deploy the headless Decision Manager controller.
    4. Optionally, copy the new controller.war file to a location that is more convenient to deploy from.
  7. In the WebSphere Integrated Solutions Console, navigate to ApplicationsApplication TypesWebSphere Enterprise Applications.
  8. Click Install.
  9. Navigate to the controller.war file that you repackaged and select it to upload.
  10. Select Fast Path and click Next.

    The Install New Application wizard opens.

  11. Change the Application Name to controller and click Next.
  12. Map the headless Decision Manager controller modules to servers according to your specific requirements and click Next.
  13. 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 the jms/cf/KIE.SERVER.REQUEST JNDI name for the KIE.SERVER.REQUEST connection factory.
  14. In the Map Virtual Hosts for Web Modules section, keep the default values and click Next.
  15. Set the context root to controller.
  16. In the Metadata for Modules section, keep the default values and click Next.
  17. 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 KIE Server class loading to set parent classes to load last.

Procedure

  1. Navigate to ApplicationsApplication TypesWebSphere Enterprise Applications and click kie-server.
  2. Click Class Loading and Update Detection under the Detail Properties heading on the left.
  3. 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.
  4. 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.

Note

For optimal results, install KIE Server and the headless Decision Manager controller on different servers in production environments. In development environments, you can install KIE 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.

Prerequisites

  • KIE Server and the headless Decision Manager controller are installed on the application server instance.

Procedure

  1. 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

    NameRequirement

    org.kie.server.user

    A user with the kie-server role

    org.kie.server.pwd

    The password for the user specified in the org.kie.server.user property

  2. Specify the following JVM property values on the application server instance where KIE Server is installed:

    Table 6.2. Required properties for KIE Server when headless Decision Manager controller is installed

    NameRequirement

    org.kie.server.controller.user

    A user with the kie-server role

    org.kie.server.controller.pwd

    The password for the user specified for the org.kie.server.controller.user property

    org.kie.server.id

    The ID or name of the KIE Server installation, such as rhdm700-decision-server-1

    org.kie.server.location

    The URL of the KIE 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 KIE Server host, for example, localhost or 192.7.8.9.

    <PORT> is the port of the KIE 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.

Prerequisites

  • The headless Decision Manager controller is installed on the IBM WebSphere Application Server instance.

Procedure

  1. In the WebSphere Integrated Solutions Console, create the kie-server group and a user for that group, as described in Creating the KIE Server group and role.
  2. Navigate to ApplicationsApplication TypesWebSphere Enterprise Applications and select the newly installed headless Decision Manager controller.
  3. Under Detail Properties, click Security Role to User/Group Mapping.
  4. Select the kie-server role and click Map Groups to search for the kie-server group.
  5. 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.

  6. 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

  • KIE 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 KIE Server host, for example, localhost or 192.7.8.9.

<PORT> is the port of the KIE 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 KIE Server instance.

Note

Alternatively, you can use the KIE 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.