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.