Tuesday, 3 March 2015

IBM Operational Decision Manager 8.7 - An installation in a few steps

Following on from my previous post: -


here's a quick walkthrough an IBM ODM 8.7 installation ( Decision Server in my case ), on a Red Hat Enterprise Linux VM.

Build

Install the Binaries - wasadmin

/opt/IBM/InstallationManager/eclipse/tools/imcl -input installODM87.rsp -acceptLicense

<?xml version='1.0' encoding='UTF-8'?>
<agent-input>
  <variables>
    <variable name='sharedLocation' value='/opt/IBM/IMShared'/>
  </variables>
  <server>
    <repository location='/tmp/foobar/ProfileTemplateRules'/>
  </server>
  <profile id='Operational Decision Manager V8.7' installLocation='/opt/IBM/ODM87'>
    <data key='eclipseLocation' value='/opt/IBM/ODM87'/>
    <data key='user.import.profile' value='false'/>
    <data key='cic.selector.os' value='linux'/>
    <data key='cic.selector.arch' value='x86_64'/>
    <data key='cic.selector.ws' value='gtk'/>
    <data key='cic.selector.nl' value='en'/>
    <data key='user.lic.dsr' value='full'/>
    <data key='user.prod.dsr' value='false'/>
    <data key='user.wodm_was_home' value='/opt/IBM/WebSphere/AppServer'/>
  </profile>
  <install modify='false'>
    <!-- Decision Server Rules profile templates for WebSphere Application Server  8.7.0.0 -->
    <offering profile='Operational Decision Manager V8.7' id='com.ibm.websphere.odm.pt.rules.v87' version='8.7.0.20141114_1039' features='main.feature' installFixes='none'/>
  </install>
  <preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='${sharedLocation}'/>
  <preference name='com.ibm.cic.common.core.preferences.connectTimeout' value='30'/>
  <preference name='com.ibm.cic.common.core.preferences.readTimeout' value='45'/>
  <preference name='com.ibm.cic.common.core.preferences.downloadAutoRetryCount' value='0'/>
  <preference name='offering.service.repositories.areUsed' value='true'/>
  <preference name='com.ibm.cic.common.core.preferences.ssl.nonsecureMode' value='false'/>
  <preference name='com.ibm.cic.common.core.preferences.http.disablePreemptiveAuthentication' value='false'/>
  <preference name='http.ntlm.auth.kind' value='NTLM'/>
  <preference name='http.ntlm.auth.enableIntegrated.win32' value='true'/>
  <preference name='com.ibm.cic.common.core.preferences.preserveDownloadedArtifacts' value='true'/>
  <preference name='com.ibm.cic.common.core.preferences.keepFetchedFiles' value='false'/>
  <preference name='PassportAdvantageIsEnabled' value='false'/>
  <preference name='com.ibm.cic.common.core.preferences.searchForUpdates' value='false'/>
  <preference name='com.ibm.cic.agent.ui.displayInternalVersion' value='false'/>
  <preference name='com.ibm.cic.common.sharedUI.showErrorLog' value='true'/>
  <preference name='com.ibm.cic.common.sharedUI.showWarningLog' value='true'/>
  <preference name='com.ibm.cic.common.sharedUI.showNoteLog' value='true'/>
</agent-input>


Note - I already have IBM Installation Manager 1.8.1 and WebSphere Application Server Network Deployment 8.5.5.4 installed.

Create a standard Deployment Manager profile - wasadmin

/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -create -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/management -profileName Dmgr01 -nodeName Dmgr -isDefault -enableAdminSecurity true -adminUserName wasadmin -adminPassword passw0rd

Create a standard Node profile - wasadmin

/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -create -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/managed -profileName AppSrv01 -nodeName DecisionServerNode01

Start the Deployment Manager - wasadmin

/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/startManager.sh

Federate the Node into the Cell - wasadmin

/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/addNode.sh odm87.uk.ibm.com 8879 -profileName AppSrv01 -username wasadmin -password passw0rd

Stop the Deployment Manager - wasadmin

/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin//stopManager.sh -username wasadmin -password passw0rd

Augment Deployment Manager profile ( with ODM DS capabilities ) - wasadmin

/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -augment -profileName Dmgr01 -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/rules/management/ds/

Prepare the Cluster Template

cp /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/rules/configureDSCluster.properties .
vi configureDSCluster.properties 


wodm.dsrules.clusterName=DecisionServerCluster
wodm.virtualhost.name=default_host
wodm.dsrules.db.type=DB2
wodm.dsrules.db.jdbcDriverPath=/opt/IBM/WebSphere/AppServer/jdbcdrivers/DB2/
wodm.dsrules.db.name=RESDB
wodm.dsrules.db.hostname=odm87.uk.ibm.com
wodm.dsrules.db.port=60012
wodm.dsrules.db.user=db2user1
wodm.dsrules.db.password=passw0rd


Create the Decision Server cluster - wasadmin

export ODM_HOME=/opt/IBM/ODM87/
/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/configureDSCluster.sh -dmgrAdminUsername wasadmin -dmgrAdminPassword passw0rd -clusterPropertiesFile ~/configureDSCluster.properties -targetNodeName DecisionServerNode01 -dmgrHostName 
odm87.uk.ibm.com -dmgrPort 8879

Create the RESDB database - wasadmin

db2 create database RESDB automatic storage yes using codeset UTF-8 territory US pagesize 32768

db2 connect to RESDB
db2 grant dbadm on database to user db2user1
db2 terminate

db2 connect to RESDB
db2 set current schema db2user1
db2 create bufferpool BP32K size 8000 automatic pagesize 32 K
db2 terminate

db2 connect to resdb
cd /opt/IBM/ODM87/executionserver/databases/
db2 -tvf trace_db2.sql 

db2 connect to resdb user db2user1
cd /opt/IBM/ODM87/executionserver/databases/
db2 -tvf repository_db2.sql 
db2 -tvf decisionrunner_db2.sql 
db2 -tvf xomrepository_db2.sql 

And that's it .....

Functional Testing

Rule Execution Server console

https://odm87.uk.ibm.com:9443/res/protected/home.jsf

Diagnostics View


REST API tool


Hosted Transparent Decision Service


Deployment Manager


24 comments:

Guru Ji said...

Sunil,

Can you please send me the installation and configuration steps for ODM 8.7 Decision Center and ODM Decision Server to crosairs@gmail.com or please direct me to the sources.

Thank you

Dave Hay said...

Who is Sunil ?

nethaji said...

HI Dave,

This is Nethaji
I like your posts and technical articles.
I am new to ODM Installation.
can you provide any article like what is decision center , decision server.
How deployments carry out , application access.

Last thing Deciosion Center/Server with 2 node clustered environment.

I will be happy if i got any info. :)

Thanks.

Dave Hay said...

Hi

Thanks for your comments.

I'd suggest that you start here: -

IBM Operational Decision Manager Developer Center

and: -

IBM Operational Decision Manager training paths

Cheers, Dave

nethaji said...

Thanks a lot Dave.
I am following your post i have small doubt installing profile templates.
Since ODM needs WAS default templates to be used.
I can see you created the profiles with WAS built in deployment manager and custom node profiles.
There are augmenting with DC or DS profiles.
My doubt was rather then augmenting WAS profiles , can't we create DC deployment manager/DS deployment magaer , DC custom node / DS custom node profiles to avoid augmentation.
I dont have any setup installation available on my machine to see really in PMT tool :(.

so kindly need your answers on above.

Thanks a Lot.

Dave Hay said...

Hi Nethaji

This may help: -

Configuring the Decision Center consoles by using profile templates

I'll also post my own notes in the next comment.

Dave

Dave Hay said...

Nethaji

Here're some of my notes from the last 8.7 build: -

Create WAS Profiles

/opt/ibm/WebSphere/AppServer/bin/manageprofiles.sh -create -templatePath /opt/ibm/WebSphere/AppServer/profileTemplates/management -profileName Dmgr01 -nodeName Dmgr -isDefault -enableAdminSecurity true -adminUserName wasadmin -adminPassword passw0rd

/opt/ibm/WebSphere/AppServer/bin/manageprofiles.sh -create -templatePath /opt/ibm/WebSphere/AppServer/profileTemplates/managed -profileName AppSrv01 -nodeName Node1

Start Deployment Manager

/opt/ibm/WebSphere/AppServer/profiles/Dmgr01/bin/startManager.sh

Federate Node into Cell

/opt/ibm/WebSphere/AppServer/profiles/AppSrv01/bin/addNode.sh `hostname` 8879 -profileName AppSrv01 -username wasadmin -password passw0rd

Stop Deployment Manager

/opt/ibm/WebSphere/AppServer/profiles/Dmgr01/bin/stopManager.sh -username wasadmin -password passw0rd

Augment Deployment Manager Profile with DC and DS Capabilities

/opt/ibm/WebSphere/AppServer/bin/manageprofiles.sh -augment -profileName Dmgr01 -templatePath /opt/ibm/WebSphere/AppServer/profileTemplates/rules/management/dc/

/opt/ibm/WebSphere/AppServer/bin/manageprofiles.sh -augment -profileName Dmgr01 -templatePath /opt/ibm/WebSphere/AppServer/profileTemplates/rules/management/ds/

Create DC Cluster

export ODM_HOME=/opt/ibm/ODM87/
/opt/ibm/WebSphere/AppServer/profiles/Dmgr01/bin/configureDCCluster.sh -dmgrAdminUsername wasadmin -dmgrAdminPassword passw0rd -clusterPropertiesFile ~/configureDCCluster.properties -targetNodeName Node1 -dmgrHostName odm87.uk.ibm.com -dmgrPort 8879

Stop Deployment Manager

/opt/ibm/WebSphere/AppServer/profiles/Dmgr01/bin/stopManager.sh -username wasadmin -password passw0rd

Create DS Cluster

/opt/ibm/WebSphere/AppServer/profiles/Dmgr01/bin/configureDSCluster.sh -dmgrAdminUsername wasadmin -dmgrAdminPassword passw0rd -clusterPropertiesFile ~/configureDSCluster.properties -targetNodeName Node1 -dmgrHostName odm87.uk.ibm.com -dmgrPort 8879

Create Database Artefacts

su - db2inst1

db2 create database RTSDB automatic storage yes using codeset UTF-8 territory GB pagesize 32768

db2 create database RESDB automatic storage yes using codeset UTF-8 territory GB pagesize 32768

db2 connect to RESDB user db2inst1 using passw0rd

db2 create bufferpool BP32K size 8000 automatic pagesize 32K

db2 connect to RTSDB
db2 grant dbadm on database to user db2user1
db2 terminate
db2 connect to RESDB
db2 grant dbadm on database to user db2user1
db2 terminate

db2 connect to RTSDB user db2user1 using passw0rd
db2 -tvf rule-team-server.sql

db2 connect to RESDB user db2inst1 using passw0rd
db2 -tvf /opt/ibm/ODM87/executionserver/databases/trace_db2.sql

db2 connect to RESDB user db2user1 using passw0rd
db2 -tvf /opt/ibm/ODM87/executionserver/databases/trace_db2.sql

db2 -tvf /opt/ibm/ODM87/executionserver/databases/repository_db2.sql

db2 -tvf /opt/ibm/ODM87/executionserver/databases/xomrepository_db2.sql

db2 -tvf /opt/ibm/ODM87/executionserver/databases/decisionrunner_db2.sql

nethaji said...

Dear Dave,

Perfect Sir thanks a lot for u r url :).
your blogs increased my knowledge in odm.

Regards,
Nethaji

Dave Hay said...

Hi Nethaji, glad to be of service, Sir :-)

nethaji said...

Hi Dave
I am about to start on integration designer on administration part.

I can some good articles and IBM knowledge based url

Any issues on admin side if you have any blogs pls share

Thanks
Nethaji

Dave Hay said...

Nethaji

Sorry, I'm unsure as to what you're asking ?

If you're after content pertaining to BPM development, try this: -

IBM Business Process Manager Developer Center

alongside: -

IBM Operational Decision Manager Developer Center

Cheers, Dave

Unknown said...

Can you pls share me the link for downloading the installation files for 8.7.1 ?
Thanks.

Dave Hay said...

Hi Prasun

It depends; as an IBM customer, you can download it from Passport Advantage, assuming that you're suitably entitled.

If you're an IBM ISV/Business Partner, you can visit the Software Access Catalog, again if you're suitably entitled.

This may also help: -

Operational Decision Manager Download Documents

Cheers, Dave

nethaji said...

Dear Dave

I know you were expert in BPM Administation.
I have interview this week i know you might taken and attended lot many interviews.
so please could you share the recurrent topics / interview questions you are aware off.

Thanks
Nethaji

Dave Hay said...

Hi Nethaji

I'd start with the IBM BPM education roadmap, including Introducing IBM Business Process Manager and Administration of IBM Business Process Manager Standard V8.5.6.

In addition, there are plenty of Redbooks, including Business Process Management Design Guide: Using IBM Business Process Manager

Cheers, Dave

Dave Hay said...

PS Good luck :-)

Madhav said...

Hi Dave,

I am new to ODM. I was trying to configure profiles. I need to configure it with MSSQL.
I have created two profiles one for deployment manager and other for custom profile for application server. I augmented DMGR profile for Decision center and Decision server both. when I try to augment custom profile, it says in log file, it may be already augmented or profile does not exist. While augmenting DMGR profile, I have used properties files using configureDC/DS cluster command, properties files has all the MS SQL details, but it could not give any good news.

Do we need to augment custom profile for decision server and decision center?
Do we need to follow any order while augmenting?
What is the procedure to link it with MS SQL?

Can you please guide me?

Best Regards.
Arun

Dave Hay said...

Arun ( Madhav ? )

The process is effectively the same, regardless of whether you're using DB2 or SQL Server ( assuming that SQL Server *is* supported ).

What exception do you see ?

Cheers, Dave

Madhav said...

Dear Dave,

I executed :

was_bin> manageprofiles.bat -augment -templatePath "C:\IBM_INSTALL\IBMODM851\WebSphere\AppServer\profileTemplates\rules\default\ds" -dsHome "C:\IBM_INSTALL\IBMODM851\ODM851" -profileName AppSrvProfile

Response: "INSTCONFFAILED: Profile augmentation failed."

Above error I am getting while augmenting custom profile.

I am a bit confused, do we need to augment custom profile for decision server and decision center both?

Can you share some link which I can follow for MS SQL configuration?

Best Regards,
Madhav


Dave Hay said...

Hi Madhav

It's my view that you augment the Deployment Manager profile to add DC and DS capabilities, as per these examples: -

/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -augment -profileName Dmgr01 -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/rules/management/dc/

/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -augment -profileName Dmgr01 -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/rules/management/ds/

Cheers, Dave

Madhav said...

Hi Dave,

I have already augmented DMGR profile with DS and DC, is that enough? We dont need to create other profile?

How can we link MS SQL can you please guide?

Best Regards,
Madhav

Dave Hay said...

Hi Madhav

Nope, in my view, you only augment the DM profile for the DC and DS capabilities.

Please refer to the ODM 8.5.1 documentation here: -

https://www.ibm.com/support/knowledgecenter/SSQP76_8.5.1/com.ibm.help.doc/kc_welcome.html

Cheers, Dave

Unknown said...

Hello Dave , I followed the steps given by you and when i tried hitting a rule for testing I got below error

com.ibm.db2.jcc.am.SqlException: An error occurred during implicit system action type "2". Information returned for the error includes SQLCODE "-204", SQLSTATE "42704" and message tokens "DB2RES.EXECUTION_TRACES".. SQLCODE=-727, SQLSTATE=56098, DRIVER=3.61.65

Caused by: com.ibm.db2.jcc.am.SqlSyntaxErrorException: "DB2RES.EXECUTION_TRACES" is an undefined name.. SQLCODE=-204, SQLSTATE=42704, DRIVER=3.61.65


Then I verified that table was not present under schema db2res. After looking into comments I ran one more command

>> db2 connect to resdb user db2res using db2res
>> db2 -tvf trace_db2.sql

After that i started getting different error as below

com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException: One or more values in the INSERT statement, UPDATE statement, or foreign key update caused by a DELETE statement are not valid because the primary key, unique constraint or unique index identified by "2" constrains table "DB2RES.EXECUTION_TRACES" from having duplicate values for the index key.. SQLCODE=-803, SQLSTATE=23505, DRIVER=3.61.65


Please suggest the way forward .

Dave Hay said...

Hey Unknown (!)

Thanks for your comment and your interest

TBH I wrote that post back in 2015, and haven't worked with IBM ODM etc. since I moved out of Cloud Services in late 2018.

At a guess, you need to drop and recreate the RESDB.

However, I'd definitely suggest starting with the documentation e.g. Creating a schema for the Rule Execution Server database

Alternatively contact IBM Support and raise a support ticket.

If needed, I can have one of my former IBM Services colleagues contact you, if you/your client would prefer a chargeable engagement.

Cheers, Dave

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...