Red Hat Training

A Red Hat training course is available for Red Hat Decision Manager

Installing and configuring Decision Server on IBM WebSphere Application Server

Red Hat Decision Manager 7.0

Red Hat Customer Content Services

Abstract

In this guide, you will install and configure IBM WebSphere Application Server for use with Decision Server.

Preface

This document describes how to configure IBM WebSphere Application Server (IBM WebSphere) for Decision Server and how to install Decision Server on IBM WebSphere.

Chapter 1. Introduction

1.1. Red Hat Decision Manager

Red Hat Decision Manager is an open source decision management platform that combines business rules management and complex event processing. It includes decision management and business resource optimization capabilities. With Red Hat Decision Manager, you can automate business decisions and make that logic available to the entire business.

Red Hat Decision Manager uses a centralized repository for storing all resources. This ensures consistency, transparency, and the ability to audit across the business. Business users can modify business logic and business processes without requiring assistance from IT personnel.

Red Hat Decision Manager is made up of Decision Central, Decision Server, and Red Hat Business Optimizer.

  • Decision Central is the graphical user interface where you create and manage business rules.
  • Decision Server is the server where the rules and other artifacts are stored. Decision Server is used to instantiate and execute rules and solve planning problems.
  • Red Hat Business Optimizer is a lightweight, embeddable planning engine that optimizes planning problems.

This guide explains how to install Decision Server on IBM WebSphere Application Server (IBM WebSphere).

For information about running the Decision Central standalone JAR file, see Installing Red Hat Decision Manager on premise. For information about installing Red Hat Business Optimizer, see Installing and configuring Red Hat Business Optimizer.

1.2. IBM WebSphere Application Server

IBM WebSphere is a flexible and secure web application server that hosts Java-based web applications and provides Java EE-certified run time environments. IBM WebSphere 9.0 supports Java SE 8 and is fully compliant with Java EE 7 since version 8.5.5.6.

Chapter 2. Installing IBM WebSphere

You must download and install IBM Installation Manager before installing IBM WebSphere.

2.1. Downloading and installing IBM Installation Manager

  1. Download IBM Installation Manager version 1.8.5 or later from the IBM Installation Manager and Packaging Utility download links page.
  2. Extract the downloaded archive and run the following command as the root user in the new directory:

    sudo ./install

    IBM Installation Manager opens.

  3. Go to FilePreferences and click Add Repository.

    The Add Repository dialog window opens.

  4. Enter the repository URL for IBM WebSphere 9.0. You can find all the repository URLs in the Online product repositories for WebSphere Application Server offerings page of the IBM Knowledge Center. For example:

    http://www.ibm.com/software/repositorymanager/V9WASILAN

2.2. Creating a WebSphere profile and user name

A profile defines the run time environment. The profile includes all the files that the server processes in the run time environment and that you can change. The user is required for login. In this example, we will use websphere for both the user name and password.

  1. From your terminal, navigate to the WebSphere Application Server folder location that you specified during the installation.
  2. Change to the /bin directory and run the following command:

    sudo ./manageprofiles.sh -create -profileName testprofile -adminUserName websphere -adminPassword websphere

2.3. Starting the server

  1. From your terminal, navigate to the WebSphere Application Server folder location that you specified during installation.
  2. Change to the /profiles/testprofile/bin directory and run the following command:

    sudo ./startServer.sh server1
  3. Navigate to http://TARGET_SERVER:9060/ibm/console in your web browser and log in with the user credentials created in the previous procedure. For example: http://localhost:9060/ibm/console.

    The WebSphere Integrated Solutions Console opens.

Chapter 3. Configuring IBM WebSphere for Decision Server

Before you can deploy Decision Server on IBM WebSphere, you must configure the server to accept the deployable kie-server.war file.

Prerequisites

You have successfully logged in to the IBM WebSphere’s IBM Integrated Solutions Console. The main menu on the left side of the console contains all the links necessary for configuring the application server.

Figure 3.1. IBM Integrated Solutions Console

websphere console

3.1. Increasing JVM heap size

The default JVM heap size in IBM WebSphere may cause errors when deploying Decision Server. To avoid issues, increase the heap size:

  1. In the Integrated Solutions Console, go to ServersServer TypesWebSphere application servers.
  2. From the list of application servers, click on the server that you are going to deploy Decision Server. For example, server1.

    The configuration page for server1 opens.

  3. Under Server Infrastructure, expand Java and Process Management and click Process definition.

    Figure 3.2. Application server configuration page

    process definition
  4. Click Java Virtual Machine under Additional Properties.

    Figure 3.3. Process definition configuration page

    process definition2

    The General Properties for the JVM that is used to start the server page opens.

  5. Change both the Initial heap size and Maximum heap size to 2048. Decision Server has been tested with this value.

    Figure 3.4. JVM configuration page

    process definition3
  6. Click Apply.
  7. Click Save in the Messages window to save your changes to the master configuration.

    Figure 3.5. Messages pop-up

    messages popup
  8. Stop and restart the server in your terminal by navigating to the WebSphere Application Server /bin directory location that you specified during installation.
  9. Run the following commands:

    sudo ./stopServer.sh server1
    sudo ./startServer.sh server1

3.2. Enabling security

Enable administrative security so that you have the required permissions to create users and groups.

  1. In the main menu, click SecurityGlobal Security. Ensure that the option Enable Application Security is checked. This may already be checked and overridden at the server level.
  2. Click Security Configuration Wizard and click Next.
  3. Select the repository that contains the user information. For example, select Federated repositories for local configurations.
  4. Click Next
  5. Input the Primary administrative user name and Password.
  6. Click Next then Finish.
  7. Click Save in the Messages window to save your changes to the master configuration.

    Figure 3.6. Messages pop-up

    messages popup
  8. Stop and restart the server in your terminal by navigating to the WebSphere Application Server /bin directory location that you specified during installation.
  9. Run the following commands:

    sudo ./stopServer.sh server1
    sudo ./startServer.sh server1

    Figure 3.7. Global Security Configuration Page

    global security

3.3. Creating users and groups

  1. Paste http://TARGET_SERVER:9060/ibm/console in to your web browser and log in with the user credentials created in the previous procedure. For example: http://localhost:9060/ibm/console.

    The WebSphere Integrated Solutions Console opens.

  2. Click Users and GroupsManage Groups.
  3. Create the kie-server group by clicking Create.

    Figure 3.8. Created groups

    created groups brms
  4. Click Users and GroupsManage Users.
  5. Click Create and fill in the user credentials.

    Important

    Make sure that the selected User ID does not conflict with any known title of a role or a group.

    For example, if there is a role called kie-server, you should not create a user with the user name kie-server.

    Figure 3.9. Create User Dialog Window

    creating user
  6. Click Group Membership.
  7. Assign the user to the kie-server group and click Create.

3.4. Setting up JMS resources

Create a service bus in IBM WebSphere to send and receive JMS messages through the Decision Server if one does not already exist.

3.4.1. Creating the service bus

  1. Click Service IntegrationBusesNew.
  2. Enter a new bus name and deselect the Bus Security option.
  3. Click Next and then Finish to create the service bus.

3.4.1.1. Adding a bus member

Add a new bus member, which is a server or a cluster that is added to the service bus.

  1. Click Service IntegrationBuses and click on the service bus that you have created.
  2. Click Bus Members in the Topology section, and click Add.
  3. In the Add a New Bus Member wizard, choose the server and the type of message store for persistence. You can also specify the properties of the message store.
  4. Click Finish to add the new bus member.

3.4.2. Creating JMS connection factories

To send and receive messages from Decision Server, you must create the JMS connection factories. Connection factories are required for establishing connections when sending messages into queues.

Create the KIE.SERVER.REQUEST and KIE.SERVER.RESPONSE connection factories.

Note

The factory names shown above are suggestions only and you can change them to suit your needs and company guidelines.

  1. Click ResourcesJMSConnection Factories.
  2. Select the correct scope and click New.
  3. Select the Default Messaging Provider option and click OK.
  4. Enter the name and the JNDI name of the factory. For example:

    • Name: KIE.SERVER.REQUEST
    • JNDI name: jms/conn/KIE.SERVER.REQUEST
    Note

    The JNDI name for KIE.SERVER.RESPONSE is jms/conn/KIE.SERVER.RESPONSE.

  5. Select the service bus from the Bus Name drop-down list.

    Leave the default values for the remaining options.

  6. Click Apply and Save to save the changes to the master configuration.

3.4.3. Creating JMS queues

JMS queues are the destination end points for point-to-point messaging.

Create the KIE.SERVER.REQUEST (for requests) and KIE.SERVER.RESPONSE (for responses) queues.

  1. Click ResourcesJMSQueues.
  2. Select the correct scope and click New.
  3. Select the Default Messaging Provider option and click OK.
  4. Enter the name and the JNDI name of the queue, for example:

    • Name: KIE.SERVER.REQUEST
    • JNDI name: jms/KIE.SERVER.REQUEST
    Note

    All of the JNDI names follow the same convention as the example above.

  5. From the Bus Name drop-down list, select the service bus created earlier.
  6. From the Queue Name drop-down list, select the Create Service Integration Bus Destination.

    The Create New Queue form opens to assist you with creating a new service integration bus.

  7. Enter a unique identifier and select the bus member that you created earlier.
  8. Click Apply and Save to save the changes to the master configuration.

3.4.4. Creating JMS activation specifications

A JMS activation specification is required and is the bridge between the queue and the message-driven bean.

For Decision Server, create the KIE.SERVER.REQUEST (for requests) and KIE.SERVER.RESPONSE (for responses) activation specifications.

  1. Click ResourcesJMSActivation Specifications.
  2. Select the correct scope and click New.
  3. Select the Default Messaging Provider option and click OK.
  4. Enter the name and the JNDI name of the activation specification, for example:

    • Name: KIE.SERVER.REQUEST
    • JNDI name: jms/activation/KIE.SERVER.REQUEST
    Note

    All of the JNDI names of other activation specifications follow the same convention as the example above.

  5. From the Destination Type drop-down list, select Queue.
  6. Enter the Destination lookup (as created in the previous procedure), for example jms/KIE.SERVER.REQUEST.
  7. Select the service bus from the Bus Name drop-down list.

    Leave the default values for the remaining options.

  8. Click Apply and Save to save the changes to the master configuration.

You have successfully completed the JMS configuration required for setting up Decision Server on IBM WebSphere.

3.4.5. Adding custom Java Virtual Machine (JVM) properties

You must add custom properties to the JVM that is used to start IBM WebSphere.

  1. Click ServersServer TypesWebSphere Application Servers.
  2. In the list of application servers, choose the server on which you are going to deploy Decision Server.
  3. Under the Server Infrastructure, click Java and Process ManagementProcess Definition.
  4. Click Java Virtual Machine in the Additional Properties section.

    This opens the configuration properties for the JVM that is used to start IBM WebSphere.

  5. Click Custom Properties under Additional Properties.
  6. Create the following properties by clicking NewCustom JVM Properties.

    Table 3.1. Required properties for Decision Server

    NameValueDescription

    org.jboss.logging.provider

    jdk

    This property is only required where a CA SiteMinder TAI (SMTAI) is installed in the environment. Using this property forces Hibernate to use JDK instead of log4j for logging within Dashbuilder. CA SiteMinder TAI (SMTAI) contains an old version of log4j, which causes conflicts.

    org.apache.wink.jaxbcontextcache

    off

    This property ensures that the IBM WebSphere Apache Wink framework does not cache JAXBContexts, which negatively impacts the performance and interferes with the custom-type serialization for the REST API.

    kie.server.jms.queues.response

    jms/conn/KIE.SERVER.RESPONSE

    The JNDI name of connection factory for responses used by the Decision Server.

    org.kie.server.domain

    WSLogin

    JAAS LoginContext domain used to authenticate users when using JMS.

    org.jbpm.server.ext.disabled

    true

    Disables Decision Central features, which are not supported in RHDM. If not set, Decision Server will work, but will show error messages during start up.

    org.jbpm.ui.server.ext.disabled

    true

    Disables Decision Central features, which are not supported in RHDM. If not set, Decision Server will work, but will show error messages during start up.

    org.jbpm.case.server.ext.disabled

    true

    Disables Decision Central features, which are not supported in RHDM. If not set, Decision Server will work, but will show error messages during start up.

  7. Click Save to save the changes to the master configuration.
  8. Restart IBM WebSphere for these changes to take effect.

Chapter 4. Downloading and extracting Decision Server

You must download and extract Decision Server prior to installing it on IBM WebSphere.

4.1. Downloading Decision Server

Download the deployable Decision Server package file for IBM WebSphere from the Red Hat Customer Portal.

  1. Log in to the Red Hat Customer Portal.
  2. Click DOWNLOADS at the top of the page.
  3. On the Product Downloads page that opens, navigate to the JBOSS INTEGRATION AND AUTOMATION section, and click Red Hat Decision Manager.
  4. On the Software Downloads page, if necessary select Decision Manager from the Product menuand 7.0 from the Version menu.
  5. Download the following product distributions:

    • Red Hat Decision Manager Decision Server for All Supported EE7 Containers (rhdm-7.0.0.GA-kie-server-ee7.zip)
    • Red Hat Decision Manager 7.0.0 Add Ons (rhdm-7.0.0.GA-add-ons.zip)
  6. Extract these files to a temporary directory. For example, TEMP_DIR.

4.2. Extracting Decision Server

The downloaded installation ZIP file for Decision Server (rhdm-7.0.0.GA-kie-server-ee7.zip) contains the Red Hat Decision Manager WAR deployable archive (kie-server.war).

From the terminal, extract the downloaded ZIP file to gain access the deployable WAR files:

unzip rhdm-7.0.0.GA-kie-server-ee7.zip -d TEMP_DIR

Navigate to the TEMP_DIR > kie-server.war folder and run the following command:

zip -r kie-server.war ./*

Chapter 5. Installing Decision Server

Now that the basic configuration is complete and IBM WebSphere is ready to deploy Red Hat Decision Manager, you can upload the deployable WAR file that was extracted earlier. The Red Hat Decision Manager ZIP file for IBM WebSphere contains the deployable WAR file for Decision Server.

  1. Click ApplicationsApplication TypesWebSphere Enterprise Applications.

    This shows you all of the existing applications in the system and enables you to install a new one.

  2. Click Install.
  3. Upload the Decision Server WAR file (kie-server.war) from the local file system.
  4. Select Fast Path and click Next.

    The Install New Application wizard opens.

  5. Change the Application Name to kie-server and click Next.
  6. Map the Decision Server modules to servers according to your specific requirements and click Next.
  7. In the Bind Listeners for Message-Driven Beans, select Activation Specification for both beans and enter jms/activation/KIE.SERVER.REQUEST in the Target Resource JNDI Name field.
  8. Enter the jms/conn/KIE.SERVER.REQUEST JNDI name for the KIE.SERVER.REQUEST connection factory.
  9. In the Map Virtual Hosts for Web Modules section, keep the default values and click Next.
  10. Set the context root to kie-server.
  11. In the Metadata for Modules section, keep the default values and click Next.
  12. Click Finish to install the Decision Server.
  13. Click Save to save the changes to the master configuration.

5.1. Mapping Groups to Roles

Map the kie-server role to a user or a group.

  1. Go back to the main configuration page for the newly installed kie-server application (ApplicationsApplication TypesWebSphere Enterprise Applications).
  2. Click Security Role to User/Group Mapping under Detail Properties.
  3. Select the kie-server role and click Map Groups to search for the kie-server group.
  4. 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 the Decision Server. . Click Save and start the kie-server application.

Check whether the Decision Server REST API works by sending a GET request at http://TARGET_SERVER:PORT/kie-server/services/rest/server.

Chapter 6. Installing and running the standalone Decision Server Controller

You can configure Decision Server to run in managed or unmanaged mode. If Decision Server is unmanaged, you must manually create and maintain containers. If Decision Server is managed, the standalone Decision Server Controller manages the Decision Server configuration and you interact with the Controller to create and maintain containers.

The standalone Decision Server Controller is integrated with Decision Central. If you install Decision Central, use the Exection Server page to create and maintain containers. However, if you do not install Decision Central, you can install the standalone Decision Server Controller and use the REST API or the Decision Server Java Client API to interact with it.

6.1. Downloading and extracting the Controller

You must download and extract the standalone Decision Server Controller before installing it on IBM WebSphere.

  1. Log in to the Red Hat Customer Portal.
  2. Click DOWNLOADS at the top of the page.
  3. On the Product Downloads page that opens, navigate to the JBOSS INTEGRATION AND AUTOMATION section, and click Red Hat Decision Manager.
  4. On the Software Downloads page, if necessary select Decision Manager from the Product menu and 7.0 from the Version menu.
  5. Click Download next to Red Hat Decision Manager 7.0.0 Add Ons.
  6. Unzip the rhdm-7.0.0.GA-add-ons.zip file. The rhdm-7.0-controller-ee7.zip file is in the unzipped directory.
  7. Extract the rhdm-7.0-controller-ee7.zip file to a temporary directory, for example, TEMP_DIR.
  8. Navigate to the TEMP_DIR/controller.war folder and run the following command:

    zip -r controller.war ./*

6.2. Setting environment variables for the Controller

Set the environment variables listed in this section.

Prerequisites

  • Decision Server installed on an IBM WebSphere instance
  • The Controller installed on an IBM WebSphere instance

    Note

    Red Hat recommends that you install Decision Server and the standalone Decision Server Controller on different servers in production environments. However, if you install Decision Server and the standalone Decision Server Controller on the same server, for example in a development environment, make these changes on the same IBM WebSphere instance.

  • On Decision Server nodes, a user with the kie-server role
  • On the Controller server nodes, a user with the kie-server role

Procedure

  1. Specify the following JVM property values on the IBM WebSphere instance where the Controller is installed:

    • 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 IBM WebSphere instance where Decision Server is installed:

    • 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 Decision Server installation, for example, rhdm700-decision-server-1
    • org.kie.server.location: http://<HOST>:<PORT>/kie-server/services/rest/server
    • org.kie.server.controller: The URL of the standalone Decision Server Controller, for example http://<HOST>:<PORT>/controller/rest/controller

      In the preceding examples:

    • <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, 8080.

6.3. Installing the Controller

This section describes how to install the Controller on IBM WebSphere Application Server.

You can install the Controller and use the REST API or the Decision Server Java Client API to interact with it.

Prerequisites

  • An IBM WebSphere instance configured as described in this document
  • Sufficient user permissions to complete the installation
  • The rhdm-7.0-controller-ee7.zip file, extracted and repacked to the controller.war file

Procedure

  1. Click ApplicationsApplication TypesWebSphere Enterprise Applications.

    This shows you all of the existing applications in the system and enables you to install a new one.

  2. Click Install.
  3. Upload the Controller WAR file (controller.war) from the local file system.
  4. Select Fast Path and click Next.

    The Install New Application wizard opens.

  5. In the Map Virtual Hosts for Web Modules section, keep the default values and click Next.
  6. Set the context root to controller.
  7. In the Metadata for Modules section, keep the default values and click Next.
  8. Click Finish to install the controller.
  9. Click Save to save the changes to the master configuration.

6.3.1. Mapping Groups to Roles

Map the controller role to a user or a group.

Procedure

  1. Go back to the main configuration page for the newly installed kie-server application (ApplicationsApplication TypesWebSphere Enterprise Applications).
  2. Click Security Role to User/Group Mapping under Detail Properties.
  3. Select the kie-server role and click Map Groups to search for the kie-server group.
  4. Move the controller group from the Available list to the Selected list and click OK. This mapping gives the previously created administrator user access to the Decision Server.
  5. Click Save and start the kie-server application.

6.3.2. Verifying the installation

After you install and start the controller, verify that it works correct.

Procedure

  1. To verify that the Controller is working on IBM WebSphere, enter the following command:

    curl -X GET "http://<HOST>:<PORT>/controller/rest/controller/management/servers" -H  "accept: application/xml" -u '<CONTROLLER>:<CONTROLLER_PWD>'

    In this command, replace <CONTROLLER> and <CONTROLLER_PWD> with the user credentials that you created in this section.

    The output of this command provides information about the Decision Server instance.

  2. Check whether the Controller REST API works by sending a GET request at http://TARGET_SERVER:PORT/kie-server/services/rest/server.

Appendix A. Versioning information

Documentation last updated on: Monday, October 1, 2018.

Legal Notice

Copyright © 2018 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.