Monday, 24 September 2018

Deploying IBM Operational Decision Manager to WebSphere Liberty Profile - Walkthrough

Following on from my earlier post: -

IBM Operational Decision Manager - ODM on Liberty

this is an updated version, using the later fix pack of ODM Rules.

Prepare File Systems ( as root )

mkdir /opt/ibm/ODM89
mkdir /opt/ibm/Java
chown -R wasadmin:wasadmins /opt/ibm/ODM89
chown -R wasadmin:wasadmins /opt/ibm/Java

Install Java 8

/mnt/Java8/ibm-java-jre-8.0-3.12-x86_64-archive.bin -i silent -f /mnt/ResponseFiles/ 1>console.txt 2>&1

Setup Path

vi ~/.bashrc

Append: -


source ~/.bashrc

Validate Java

java -version

java version "1.8.0_151"
Java(TM) SE Runtime Environment (build - pxa6480sr5fp6-20171124_02(SR5 FP6))
IBM J9 VM (build 2.9, JRE 1.8.0 Linux amd64-64 Compressed References 20171122_371101 (JIT enabled, AOT enabled)
OpenJ9   - 8e3c85d
OMR      - 713f08e
IBM      - c041ee8)
JCL - 20171113_01 based on Oracle jdk8u151-b12

Install WLP

jar xvf /mnt/WLP/JARs/wlp-nd-all-

Fixup Executable Bits

chmod +x /home/wasadmin/wlp/bin/server
chmod +x /home/wasadmin/wlp/bin/securityUtility

Setup Path

vi ~/.bashrc

Amend: -


source ~/.bashrc

Validate WLP

server version

WebSphere Application Server ( on IBM J9 VM, version pxa6480sr3fp12-20160919_01 (SR3 FP12) (en_GB)

See what's available to install

/opt/ibm/InstallationManager/eclipse/tools/imcl listAvailablePackages -repositories /mnt/ODM891/disk1/DecisionServerRules/repository.config,/mnt/ODM892/DS/updates/repository.config

Install ODM

/opt/ibm/InstallationManager/eclipse/tools/imcl -input /mnt/ResponseFiles/installODM8921_RES.rsp -acceptLicense

Installed to the /opt/ibm/ODM89 directory.

Validate WARs

ls -al /opt/ibm/ODM89/executionserver/applicationservers/WLP855/

-rw-r--r-- 1 wasadmin wasadmins 52157759 Sep 24 17:45 DecisionRunner.war
-rw-r--r-- 1 wasadmin wasadmins 40631899 Sep 24 17:45 DecisionService.war
-rw-r--r-- 1 wasadmin wasadmins 31488087 Jul 20 18:23 res.war
-rw-r--r-- 1 wasadmin wasadmins 52751122 Sep 24 17:45 testing.war


Validate Derby

ls -al /opt/ibm/ODM89/shared/tools/derby/lib/derby.jar

-rw-r--r-- 1 wasadmin wasadmins 2838580 Jul 23 11:56 /opt/ibm/ODM89/shared/tools/derby/lib/derby.jar

Create WLP server

server create odm

Deploy Apps

cp /opt/ibm/ODM89/executionserver/applicationservers/WLP855/res.war /home/wasadmin/wlp/usr/servers/odm/apps/
cp /opt/ibm/ODM89/executionserver/applicationservers/WLP855/DecisionService.war /home/wasadmin/wlp/usr/servers/odm/apps/

Deploy Derby

mkdir /home/wasadmin/wlp/usr/shared/resources/derby
cp /opt/ibm/ODM89/shared/tools/derby/lib/derby.jar /home/wasadmin/wlp/usr/shared/resources/derby

Configure server.xml

vi /home/wasadmin/wlp/usr/servers/odm/server.xml

Amend to: -

<?xml version="1.0" encoding="UTF-8"?>
<server description="new server">


    <httpEndpoint id="defaultHttpEndpoint"
                  httpsPort="10443" />

    <jdbcDriver id="DerbyJdbcDriver" libraryRef="DerbyLib"/>
    <library id="DerbyLib" filesetRef="DerbyFileset"/>
    <fileset id="DerbyFileset" dir="${shared.resource.dir}/derby" includes="derby.jar"/>
    <dataSource id="derbyEmbedded" isolationLevel="TRANSACTION_READ_COMMITTED" jndiName="jdbc/resdatasource" jdbcDriverRef="DerbyJdbcDriver">

    <basicRegistry id="basic" realm="customRealm">
        <user name="resAdmin" password="resAdmin"/>
        <user name="resDeploy" password="resDeploy"/>
        <user name="resMonitor" password="resMonitor"/>
        <group name="resAdministrators">
                    <member name="resAdmin"/>
        <group name="resDeployers">
                    <member name="resDeploy"/>
        <group name="resMonitors">
                    <member name="resMonitor"/>

    <application type="war" id="res" name="res" location="${server.config.dir}/apps/res.war">
               <security-role name="resAdministrators">
                       <group name="resAdministrators"/>
               <security-role name="resDeployers">
                       <group name="resDeployers"/>
               <security-role name="resMonitors">
                       <group name="resMonitors"/>

    <application type="war" id="DecisionService"

    <applicationManager autoExpand="true"/>

    <keyStore id="defaultKeyStore" password="{xor}Lz4sLChvLTs=" />


Create SSL Certificate

/home/wasadmin/wlp/bin/securityUtility createSSLCertificate --server=odm --password=passw0rd --validity=365

Creating keystore /home/wasadmin/wlp/usr/servers/odm/resources/security/key.jks

Created SSL certificate for server odm. The certificate is created with,OU=odm,O=ibm,C=us as the SubjectDN.

Add the following lines to the server.xml to enable SSL:

    <keyStore id="defaultKeyStore" password="{xor}Lz4sLChvLTs=" />


Start WLP

server start odm

Starting server odm.
Server odm started with process ID 117294.


Monitor Logs

cat /home/wasadmin/wlp/usr/servers/odm/logs/console.log

Launching odm (WebSphere Application Server on IBM J9 VM, version pxa6480sr3fp12-20160919_01 (SR3 FP12) (en_GB)
[AUDIT   ] CWWKE0001I: The server odm has been launched.
[AUDIT   ] CWWKZ0058I: Monitoring dropins for applications.
[AUDIT   ] CWWKS4104A: LTPA keys created in 0.464 seconds. LTPA key file: /home/wasadmin/wlp/usr/servers/odm/resources/security/ltpa.keys
[AUDIT   ] CWWKT0016I: Web application available (default_host):
[AUDIT   ] CWWKZ0001I: Application DecisionService started in 0.943 seconds.
[AUDIT   ] CWWKT0016I: Web application available (default_host):
[AUDIT   ] CWWKZ0001I: Application res started in 2.474 seconds.
[AUDIT   ] CWWKF0012I: The server installed the following features: [jsp-2.3, concurrent-1.0, servlet-3.1, ssl-1.0, jndi-1.0, distributedMap-1.0, appSecurity-2.0, jdbc-4.1, el-3.0].
[AUDIT   ] CWWKF0011I: The server odm is ready to run a smarter planet.
[WARNING ] XOM repository set in database persistence mode: Apache Derby - (1582446)
[ERROR   ] Initialization failed
The persistence check failed. Diagnostic report:
DAO Class Name = ilog.rules.res.persistence.impl.jdbc.IlrGenericRepositoryDAO
Database Product Name = Apache Derby
Database Product Version = - (1582446)
Driver Name = Apache Derby Embedded JDBC Driver
Driver Product Version = - (1582446)
Ruleset enabled view test passed = False
RuleApp properties table test passed = False
RuleApps table test passed = False
Ruleset properties table test passed = False
Ruleset resources table test passed = False
Rulesets table test passed = False
Is Transaction Supported = True
JDBC URL = jdbc:derby:/home/wasadmin/wlp/usr/shared/config//derby/resdb
Username = resdbUser.

cat /home/wasadmin/wlp/usr/servers/odm/logs/messages.log

product = WebSphere Application Server (wlp-
wlp.install.dir = /home/wasadmin/wlp/
java.home = /opt/ibm/Java/jre
java.version = 1.8.0
java.runtime = Java(TM) SE Runtime Environment (pxa6480sr3fp12-20160919_01 (SR3 FP12))
os = Linux (3.10.0-862.11.6.el7.x86_64; amd64) (en_GB)
process =
[24/09/18 17:51:42:380 BST] 00000001           A CWWKE0001I: The server odm has been launched.
[24/09/18 17:51:43:306 BST] 00000001           I CWWKE0002I: The kernel started after 1.087 seconds
[24/09/18 17:51:43:445 BST] 00000022            I CWWKF0007I: Feature update started.
[24/09/18 17:51:44:215 BST] 0000001b  I CWWKS0007I: The security service is starting...
[24/09/18 17:51:44:450 BST] 00000027                    I CWWKO0219I: TCP Channel defaultHttpEndpoint has been started and is now listening for requests on host *  (IPv6) port 10080.
[24/09/18 17:51:44:456 BST] 0000001b        A CWWKZ0058I: Monitoring dropins for applications.

[24/09/18 17:51:49:283 BST] 0000002e                              I SRVE0242I: [res] [/res] [FacesServlet]: Initialization successful.

Access RES

(1) Need to authenticate as resAdmin
(2) Need to run through "Installation Settings Wizard" to set up database
(3) Deploy Rule App e.g. HelloWorldRuleApp_19012016.jar
(4) Use HTDS to test Rule App via REST

<?xml version="1.0" encoding="UTF-8"?><par:Response xmlns:par="">
  <par:response>Hello David Hay</par:response>

(5) Monitor logs for output

cat /home/wasadmin/wlp/usr/servers/odm/logs/console.log

Hello David Hay!

cat /home/wasadmin/wlp/usr/servers/odm/logs/messages.log

[24/09/18 17:56:01:858 BST] 00000065 SystemOut                                                    O Hello David Hay!

URL for HTDS: -

Operational Decision Manager V8.9.2 Download Document

How to install ODM 8.9.0 in silent mode in command line ?

ODM Rules Fixpack - via IBM Fix Central

Operational Decision Manager - Profile Template for Decision Server for Rules V8.9.2.1

Operational Decision Manager - Profile Template for Decision Center V8.9.2.1

Operational Decision Manager - Decision Server for Rules V8.9.2.1 for Linux x86

Operational Decision Manager - Decision Center V8.9.2.1 for Linux x86

-rw-r--r--@ 1 davidhay  staff  3778625885 24 Sep 18:27
-rw-r--r--@ 1 davidhay  staff  3492719362 24 Sep 18:25

No comments:

LinuxONE for Dummies

As more companies transform their infrastructures with hybrid cloud services, they require environments that protect the safety of their ...