Tibco CIM Installation

Introduction

This is a short guide to install and configure Tibco MDM 8.3 from scratch on Windows (7 and 64 bit). The database used is Oracle 11g R2 and the application server is Jboss 7. Only the essential steps are covered. You must refer to the official documentation for production level installations. The aim here is to cut through the fog and set up MDM real quick.

Required Tools

Windows 7 64-bit OS

Oracle 11gR2 64 bit server

jdk-6u31-windows-x64

jboss-as-7.1.1.Final

TIB_rv_8.3.1_win_x86_64_vc8

TIB_tra_5.7.3_win_x86_64

TIB_ems_7.0.0_win_x86_64_vc8

TIB_mdm-JBOSS_8.3.0_win_x86_64

ThirdParty.jar

-The ThirdParty.jar is a jar file containing the following third party jar files : com.ibm.mq.jar,com.ibm.mqjms.jar,connector.jar,gnu-regexp.jar,jsse.jar,tibjms.jar,xmlc-all-runtime.jar,xmlc-base.jar,xmlc-chtml.jar,xmlc-taskdef.jar,xmlc-xerces.jar,xmlc.jar

-A slightly hard way is to download these jar files independently and consolidate into a single ThirdParty.jar file. The easier (and recommended) way is to get this file from your colleagues who have already installed MDM.

Install Oracle 11gR2

(Skip this step if you have installed Oracle already. Including this section to make this document complete)

First unpack the “win64_11gR2_database_1of2.zip” file in the directory named “database”. Also unpack the “win64_11gR2_database_2of2.zip” into the same “database” directory. (the files in both the zip files should be in the database directory)

Double click on the setup.exe file in the “database” directory and start Oracle 11gR2 installation.

Installation should be straightforward. Create the default database (named “orcl”). Provide the system user password as “orcl”.

At the end of the installation, open cmd prompt and make sure you are able to login to the orcl database:

Install TIBCO Components

Install the following in sequence.

TIB_rv_8.3.1_win_x86_64_vc8

TIB_tra_5.7.3_win_x86_64

TIB_ems_7.0.0_win_x86_64_vc8

TIB_mdm-JBOSS_8.3.0_win_x86_64

At the end of the installation, you should be having the directory C:\tibco (or any other TIBCO_HOME).

Install Jboss and JDK

Copy or unzip JBoss into the TIBCO_HOME directory.

Install JDK using “jdk-6u24-windows-x64.exe”. It is better to install into C:\JDK1.6 instead of installing inside C:\Program Files\Java (to avoid issues due to the “space” character in the “Program Files” directory name)

Set the Environment Variables

Set the MDM specific environment variables (at System level) as shown in the table below. You will have to set them at Start ->All Programs->Computer->(right click) ->Properties->Advanced System Settings->Environment Variables -> System Variables

ENVIRONMENT VARIABLE / EXAMPLE PATHs
MQ_HOME / C:\tibco\mdm\8.3
MQ_LOG / C:\tibco\mdm\8.3\log
MQ_COMMON_DIR / C:\tibco\mdm\8.3\common
MQ_CONFIG_FILE / C:\tibco\mdm\8.3\config\ConfigValues.xml
JAVA_HOME / C:\JDK1.6
EMS_HOME / C:\tibco\ems\7.0
JBOSS_HOME / C:\tibco\jboss-as-7.1.1.Final
ANT_HOME / C:\tibco\tpcl\5.7\ant\1.6
ORACLE_HOME / E:\app\apps\product\11.2.0\dbhome_1
AS_HOME / C:\tibco\mdm\8.3\bin\as\2.0
OS / Windows_NT
NODE_ID / Member1
NLS_LANG / AMERICAN_AMERICA.UTF8

Prepend the following environment paths to the PATH variable

%JAVA_HOME%\bin;%EMS_HOME%\bin;%JBOSS_HOME%\bin;%ORACLE_HOME%\bin;%AS_HOME%\bin;%AS_HOME%\lib;%AS_HOME%\lib\as-common.jar;

Perform some simple checks by opening cmd prompt and by hitting the following commands:

set : this command will show all the environment variables.

java –version :to show the java version

javac –version : to show the javac version

tibemsadmin :should take you into the TIBCO EMS administration prompt

------Skip This Step - Start ------

Merging the files in ThirdParty.jar into ECM.ear

In cmd prompt, navigate to :%MQ_HOME%

Create a directory named thirdPartyLibrary :md thirdPartyLibrary

Copy the ThirdParty.jar file to the thirdPartyLibrary directory. You will have the jar file’s full path as: %MQ_HOME%\thirdPartyLibrary\ThirdParty.jar

Now navigate to :%MQ_HOME%\build\custom, and run the following script:

customUtil.bat –mergeExternalLibrary

Follow the instructions given by customUtil.bat, until the files in the ThirdParty.jar file are merged into ECM.ear file.

------Skip This Step - End ------

Database Specific Configurations in CIM:

Go to the folder: %MQ_HOME%\db\oracle\configure and open the file createtablespace.sqlin a text editor.

Modify the path of the tablespace data files, as shown below:

FIND / C:\oracle\product\10.2.0\oradata\orcl6
REPLACE / E:\app\apps\oradata\orcl

Now open cmd prompt. Navigate to the directory :%MQ_HOME%\db\oracle\configure

Run the batch file :doall.bat

You will be asked to provide some input, as shown below:

"specify the sys dba user : "
<System username>
"specify the sys dba password : "
<System password>
"specify the instance name : "
<System Instance Name>
"specify the new user to create : "
cimuser
"specify the password to new user : "
Cimuser
"Specify the name for the MDM instance : "
Demo
"Specify the Description for the MDM instance : "
Demo Instance created for Tibco 8.3

After providing the input, you will see that the tablespaces are getting created. The script then runs for about a minute, creating the cimuser, the CIM specific tables, and imports all the seed data. Make sure you don’t see any errors.

Try connecting to sqlpluscimuser/Cimuser@Demo to check if the Oracle MDM instance got created successfully.

Creating EMS Queues for CIM

Make sure you have installed EMS, and that the EMS server is running (default port is 7222)

Open cmd prompt, and navigate to :%MQ_HOME%\bin

Create the CIM specific EMS queues using the below command (or you can also copy paste the create queue commands after logging into tibemsadmin):

tibemsadmin -server "tcp://localhost:7222" -user admin -password "" -script C:\tibco\mdm\8.3\bin\createQueues.txt

In the above case, the EMS username is admin and has no password. If you do have a password, change it accordingly.

Configuring CIM for JBoss 7 Application Server

Class loading in AS7 is considerably different than in previous versions of JBoss AS. Class loading is now based on the JBoss Modules project

Steps to be followed

1.Creating a Module

i) For Oracle Database, create the below directory structure

1. Go to $JBOSS_HOME\modules\com

2. Create the following three hierarchal folders:

— oracle > ojdbc6 > main

ii) Download and Copy Jar Files

Oracle Database

Copy the ojdbc6.jar file from $ORACLE_HOME\jdbc\lib\ and copy it to the

following locations:

• $JBOSS_HOME\modules\com\oracle\ojdbc6\main

• $JBOSS_HOME\standalone\deployments

iii) Create a new module.xml file under $JBOSS_HOME\modules\com\oracle\ojdbc6\main with the below content.

For Oracle database

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

<module xmlns="urn:jboss:module:1.1" name="com.oracle.ojdbc6">

resources

<resource-root path="ojdbc6.jar"/>

<!-- Insert resources here -->

</resources>

dependencies

<module name="javax.api"/>

</dependencies>

</module>

2.Configuring Tibco MDM for JBOSS Application Server

Step 1 - Create Admin User

create an admin user to set the configuration parameter using the JBoss Admin web console

On the command line, type $JBOSS_HOME/bin.

Enter the following command:

— For Windows: add-user.bat

— For UNIX and Linux: add-user.sh

The following two options are displayed in the command line:

— a> Management User <mgmtusers.properties

— b> Application User <application-users.properties

3.Type a. The utility prompts for the Realm name.

The default name of the realm for management users is ManagementRealm,therefore do not enter any values and accept the default

Type the user name, password, and confirm password.

The Admin user is successfully created.

Step 2 - Start JBoss Application Server

Before you start the JBoss Application Server, you need to modify the

standalone.xml file to enable the access to the Remote server.

$JBOSS_HOME/standalone/configuration directory.

Change the value of an interface attribute from management to public in the following property:

socket-binding name="management-http" interface="public"

port="${jboss.management.http.port:9990}"/>

Now start the JBOSS Application Server, by running the standalone.bat or ./standalone.sh present in JBOSS_HOME/bin.

For remote server: standalone.bat -b 0.0.0.0 or ./standalone.sh -b

0.0.0.0

The JBoss Application Server starts.

Step 3 - Run the JBoss Application Console

Login to JBOSS Application Console using the protocol://host:port/console URL and the admin credentials created in above steps.

Step 4 - Specify System Properties

Under the Profile Section, In the General Configuration section, set the system properties as below

ENVIRONMENT VARIABLE / EXAMPLE PATHs
MQ_HOME / C:/tibco/mdm/8.3
MQ_LOG / C:/tibco/mdm/8.3/log
MQ_COMMON_DIR / C:/tibco/mdm/8.3/common
MQ_CONFIG_FILE / C:/tibco/mdm/8.3/config/ConfigValues.xml
ORACLE_HOME / E:/app/apps/product/11.2.0/dbhome_1
NODE_ID / Member1
log4j.ignoreTCL / True
org.apache.tomcat.util.http.Parameters.MAX_COUNT / 5000

Note: The path separator must contain forward slash instead of backward slash. For

example, for MQ_COMMON_DIR - C:/tibco/mdm/8.3/common

Step 5 – Create JDBC Data Sources

In the Profile panel, under Connector > Data Sources, add the MDM Data source

Name / JNDI Name
MDMDataSource / java:jboss/eCMDataSource

Complete the setup by providing the below values in the Next screens

Driver : ojdbc6.jar

Connection URL :jdbc:oracle:thin:@localhost:1521:<dbinstance_name

Username:dbinstance_username

Password: <dbinstance_password

Specify Pool Size

Min. Pool Size = 50, Max. Pool Size = 150

Click on ‘Enable’ to enable the eCMDataSource

Step 6 - Configure Transaction Isolation

Step 7 - Change Deployment Timeout

Under Core > Deployment Scanners

Step 8 - Specify Transaction timeout

In the standalone.xml file located at $JBOSS_HOME\standalone\configuration\ , Go to <subsystem xmlns="urn:jboss:domain:transactions:1.1">

section, and set the following parameter from “300” to “7200” at the end of the section:

<coordinator-environment default-timeout="7200"/>

And Save it.

Create Module.XML in com.tibco.main as below.

EMS Related Libararies- Required if you are using TIBCO EMS as JMS vendor.

Copy the tibjms.jar and tibcrypt.jar from %EMS_HOME%/lib to %JBOSS_HOME%/modules/com/tibco/mdm/main directory

Create a new module.xml in %JBOSS_HOME%/modules/com/tibco/mdm/main location with the below contents.

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

<module xmlns="urn:jboss:module:1.1" name="com.tibco.mdm">

resources

<resource-root path="tibjms.jar"/>

<resource-root path="tibcrypt.jar"/>

</resources>

dependencies

<module name="javax.api" />

<module name="javax.jms.api" />

<module name="javax.resource.api" />

<!-- These are required for EMS with SSL -->

<!--<system export="true">

paths

<path name="sun/security/ssl" />

<path name="com/sun/net/ssl/internal/ssl" />

<path name="sun/security/util" />

<path name="sun/security/validator" />

<path name="sun/security/provider" />

<path name="javax/net/ssl" />

<path name="sun/net/www/protocol/https" />

</paths>

</system> -->

</dependencies>

</module>

Configure this module as global module in standalone.xml.

Go to

%JBOSS_HOME%/ standalone /configuration directory.

Open standalone.xml file and go to --> subsystem

xmlns="urn:jboss:domain:ee:1.0" section and add the following lines:

<subsystem xmlns="urn:jboss:domain:ee:1.0">

global-modules

<module name="com.tibco.mdm" slot="main"/>

</global-modules>

</subsystem>

'com.tibco.mdm' module has been created & configured. Whenever a OOB

functionality needs to be configured which requires some external jars then the jar

files will be copied in this module.

Deploying TIBCO MDM on JBoss Application Server

To deploy TIBCO MDM on JBoss Application Server:

1. Deploy TIBCO MDM by copying the ECM.ear file from $MQ_HOME to the

$JBOSS_HOME/standalone/deployments directory.

2. Start the JBoss Application Server by running standalone.bat present in $JBOSS_HOME/bin. Ensure that EMS server is running prior to this.

Launch the application using the URL Login using super user (tibcocim@tadmin/euc!1d)

Issues? Use the Checklist

Here is a checklist which you can use to debug and isolate issues

CHECK / Yes/No
Oracle server / database is up?
You are able to login to database?
Faced any issues while running doall.bat? CIM specific tables have been created in the database?
EMS server is up?
You are able to connect to ems server using tibemsadmin or GEMS?
MDM specific queues have been created? show queues
MDM specific topics are available?show topics
ALL the environment 13 variables are set correctly?
The PATH environment variable has all the CIM, ORACLE.JBOSS, AS specific paths? : echo %PATH%
The configvalues.xml file is edited correctly to include the database parameters?
The ojdbc6.jar file is copied to the %JBOSS_HOME%/ lib directory?
Check Module.xml to see if all the required jars are included.
The “updated” ECM.ear file present in the directory: %JBOSS_HOME%/server/<CIM_SERVER>/deploy?

Installing MDM:

Follow the above steps provided for installing cim and then after that follow the below steps:

1.Copy the ECM.ear file to the following location C:\tib\mdm\8.3

2.Install Microsoft loop back adapter (via Device Manager – right click add..) and configure all the network parameters(single case, multicast) in configvalues.xml and the default port number of the loop back adapter is 50000.

Click the Start menu.

Search for “cmd".

Right-click on “cmd” and select “Run as Administrator”

Enter “hdwwiz.exe”

In the "Welcome to the Add Hardware Wizard", click Next.

Select "Install the hardware that I manually select from a list (Advanced)" and click Next.

Scroll down and select "Network adapters" and click Next.

Select under Manufacturer "Microsoft" and then under Network Adapter "Microsoft Loopback Adapter" and click Next.

Now Open Network and Sharing Centre and right click on Microsoft Loopback Adapter and set the properties for TCP/IP4.

IP - 10.10.10.10, subnet – 255.255.255.0

3.Run batch file of Jboss_Home bin and if the installation is successful then the Cim GUI will open and will be able to login. (If an error comes while running batch file i.e if the batch file stops after pointing to the run.conf.bat then the java home path should be checked so that it will not point to two java paths).

4.Install Cim Business Studio for developing projects.

5.Sometimes if Data Source upload fails, edit MQ_CONFIG_FILE for Database Parameters: %MQ_CONFIG_FILE% , that is the file C:\tibco\MDM\8.3\config\ConfigValues.xml has some database properties which should to be modified. For some reason, this step is not available in the CIM installation document. But here are the properties that need to be edited :

PROPERTY / Example VALUE
com.tibco.cim.database.name / ORCLCIM
com.tibco.cim.database.user / Cimuser
com.tibco.cim.database.password / Cimuser
com.tibco.cim.database.docroot / D:\CIM_SETUP\Oacle\oradata\ORCLCIM

Note: It is best to modify the above properties via the Configurator tool.

6.Launch Cim Configurator by using default username and pwd as admin and admin. For launching Cim configurator first C:\tib\MDM\8.3\configurator\tomcat\bin\startup.bat should be run or it can run by using start –tibco-cim-configurator-startserver. If starting the server gives an JRE path error then setenv.bat (C:\tib\MDM\8.3\configurator\tomcat\bin) should be checked for the jre path if it points to some other path then the path should be changed to C:\jdk1.6.0_31. Then the configurator will be launched successfully.

Jar – cfv thirdparty.jar *.* (creating jars)

War – cfvthirdparty.war *.* (creating wars)

Jar – cfv thirdparty.jar D:\eml\*.*

7.After installation, on the CIM UI start up page (Inbox, or while creating user or role) the below error is encountered

JAV-8001: Unexpected error. Class: 'com.tibco.mdm.ui.workflow.engine.workitem.WorkListHandlerServlet' and method name: 'list'. Additional information: java.lang.NullPointerException

OR

XMLDOCUMENT: java.lang.NullPointerException

Solution: Add the below property tag in the standalone.xml present in $JBOSS_HOME\standalone\\configuration

remote connector-ref="remoting-connector" thread-pool-name="default"/>

thread-pools

<thread-pool name="default">

<max-threads count="10"/>

keepalive-time time="100" unit="milliseconds"/>

</thread-pool>

</thread-pools>

<in-vm-remote-interface-invocation pass-by-value="false"/>

</subsystem>

Restart the CIM application.