Step 3: Deploying the Decision Center WAR files

You copy the Decision Center archives to the apps directory of your WebSphere Liberty profile server.

Procedure

  1. Add the following to the jvm.options file. The first two lines concern the heap size, and the next two concern UTF-8 encoding:
    -Xmn2048m
    -Xms4096m
    -Xmx8192m
    -Dclient.encoding.override=UTF-8
    -Dfile.encoding=UTF-8

    You must set the encoding to UTF-8 in the jvm.options file before you start the server.

  2. Copy from <InstallDir>/teamserver/applicationservers/WLP to <WLP_HOME>/usr/servers/<SERVER_NAME>/apps the Decision Center applications:
    • decisioncenter.war - The Business console.
    • decisioncenter-api.war - The REST API tool.
    Important: Deploying the WAR files sets the persistence locale. After you save a rule to the database, you must not change the persistence locale. If you want to install Decision Center in a language other than English, see Setting the persistence locale.
  3. In <WLP_HOME>/usr/servers/<SERVER_NAME>/server.xml, add the following:
    1. Enable additional features that are required for Decision Center:
      <!-- Enable features -->
      <featureManager>
               <feature>servlet-6.0</feature>
               <feature>pages-3.1</feature>
               <feature>jdbc-4.3</feature>
               <feature>appSecurity-5.0</feature>
               <feature>concurrent-3.0</feature>
               <feature>jndi-1.0</feature>
               <feature>ssl-1.0</feature>
               <feature>transportSecurity-1.0</feature>
      </featureManager>
      
      Note: You may need to enable the version of these features by running a command such as <WLP_HOME>/bin/installUtility install servlet-6.0 pages-3.1 jdbc-4.3 appSecurity-5.0 jndi-1.0 concurrent-3.0 ssl-1.0.
    2. Tell the session management not to throw an exception for unauthorized requests, but to invalidate the session instead:
      <httpSession cookieName="DCSESSIONID"
       invalidateOnUnauthorizedSessionRequestException="true"/>
    3. Specify the address and port number on which the server listens:
      <httpEndpoint id="defaultHttpEndpoint"
           host="*"
           httpPort="9081"
           httpsPort="9443"/>
    4. Make sure that your data source is defined (see Step 1: Creating a data source).
    5. Define the configuration for the web container for all applications:
      <webContainer deferServletLoad="false"
          enableDefaultIsElIgnoredInTag="true"
          enableJspMappingOverride="true"/>
      Note: Set deferServletLoad to false to load the applications at deployment time (longer deployment time), or true to load the applications at first access (longer first access time). Set the other two options to true to ensure that JSP comes from the applications.
    6. Declare the two Decision Center applications, set the classloader order to ParentLast, and bind the applications to user groups according to your security realm (Step 2: Configuring user access to Decision Center). The following examples show how to bind the applications so that you have an administrative power user and regular users.

      For a basic user registry:

      <!-- Business console -->
      <application type="war" id="decisioncenter"
         name="decisioncenter"
         location="${server.config.dir}/apps/decisioncenter.war">
            <classloader delegation="parentLast" />
         <application-bnd>
           <security-role name="rtsAdministrator">
             <group name="AdminGroup"/>
           </security-role>
           <security-role name="rtsInstaller">
             <group name="InstallGroup"/>
           </security-role>
           <security-role name="rtsUser">
             <special-subject type="ALL_AUTHENTICATED_USERS" />
           </security-role>
         </application-bnd>
      </application>
      
      <!-- DC REST API -->
      <application type="war" id="decisioncenter-api"
         name="decisioncenter-api"
         location="${server.config.dir}/apps/decisioncenter-api.war">
            <classloader delegation="parentLast" />
         <application-bnd>
           <security-role name="rtsAdministrator">
             <group name="AdminGroup"/>
           </security-role>
           <security-role name="rtsInstaller">
             <group name="InstallGroup"/>
           </security-role>
           <security-role name="rtsUser">
             <special-subject type="ALL_AUTHENTICATED_USERS" />
           </security-role>
         </application-bnd>
      </application>
      
      For an LDAP:
      <!-- Business console -->
      <application type="war" id="decisioncenter"
         name="decisioncenter"
         location="${server.config.dir}/apps/decisioncenter.war">
            <classloader delegation="parentLast" />
         <application-bnd>
         <security-role name="rtsAdministrator">
          <group name="AdminGroup"
            id="AdminGroup"
            access-id="group:odmrealm/CN=AdminGroup,ou=groups,dc=example,dc=com"/>
         </security-role>
         <security-role name="rtsInstaller">
          <group name="InstallGroup"
            id="InstallGroup"
            access-id="group:odmrealm/CN=InstallGroup,ou=groups,dc=example,dc=com"/>
         </security-role>
           <security-role name="rtsUser">
             <special-subject type="ALL_AUTHENTICATED_USERS" />
           </security-role>
         </application-bnd>
      </application>
      
      <!-- DC REST API -->
      <application type="war" id="decisioncenter-api"
         name="decisioncenter-api"
         location="${server.config.dir}/apps/decisioncenter-api.war">
            <classloader delegation="parentLast" />
         <application-bnd>
         <security-role name="rtsAdministrator">
          <group name="AdminGroup"
            id="AdminGroup"
            access-id="group:odmrealm/CN=AdminGroup,ou=groups,dc=example,dc=com"/>
         </security-role>
         <security-role name="rtsInstaller">
          <group name="InstallGroup"
            id="InstallGroup"
            access-id="group:odmrealm/CN=InstallGroup,ou=groups,dc=example,dc=com"/>
         </security-role>
           <security-role name="rtsUser">
             <special-subject type="ALL_AUTHENTICATED_USERS" />
           </security-role>
         </application-bnd>
      </application>
      
  4. Save the file.

What to do next

To verify the deployment of Decision Center, start your Liberty server and then enter the URLs of the three applications in a web browser:
  • Business console - https://localhost:9081/decisioncenter.
  • REST API tool - https://localhost:9081/decisioncenter-api.
You can change the connector port in the server.xml file.

You can now complete the Decision Center configuration in the next step.