
Image from Oracle HA Guide
This post covers Oracle Data Integrator (ODI) High Availability (HA)
deployment, for overview of ODI 11g components check my previous post
here
ODI high availability uses WebLogic ( with Java EE Agent) which give
you Load Sharing, Connection Pooling, and ability to re-start
automatically using WebLogic Server.
For these reasons my personal recommendation is to move from Standalone Agent (old way of running Agents) to Java EE Agent .
Here are some key points from deploying ODI in High Availability (HA), documentation
here
- ODI in High Availability (HA) requires WebLogic and Coherence (Coherence is part of WebLogic Installer). There are three type of WebLogic Installers a) WebLogic only b) WebLogic with Coherence c) WebLogic with Coherence and OEPE (Eclipse Plug-In) so use b or c type WebLogic Installer
- If you are new to WebLogic Domain or WebLogic Cluster feature then first check WebLogic Domain, Managed Server, and Cluster here
- ODI in High Availability (HA) uses WebLogic’s cluster feature (two
or more managed server configured in one cluster) where ODI Java Agent
run on each managed server.
- Coherence is used enable communication among
cluster members (two managed servers with Java EE Agent). Coherence
cache is also used to handle scheduler life-cycle (scheduler service uniqueness and migration).
- ODI can be configured in HA either during initial configuration
(during WebLogic domain creation) or later (using extend domain feature
of WebLogic)
- Load balancer (or HTTP Server in HA) is configured to forward
request to WebLogic Managed Servers (running ODI) in cluster. While
defining Agents in ODI Studio, you must use Load Balancer host and port number and NOT individual managed server host/port.
.
High Level Steps to configure ODI in HA
1. Install Oracle RAC Database (this will hold Work and Master Repository Schema)
2. Run RCU to create ODI schema, more on RCU
here
3.Install WebLogic on Server1 (this step will create middleware home i.e. MW_HOME)
4. Install ODI on Server1 (install this under MW_HOME), select installation type Java EE Installation
5. Repeat step 3 and 4 on Server2 (
If
you are intelligent like my client then used shared file system between
server1 & server2, then no need to install on server2. Simply
register ORACLE_HOME for ODI and oracle_common with oraInventory on
server2)
6.On server1, run
config.sh from $ODI_ORACLE_HOME/common/bin and select following from domain template
- Oracle Enterprise Manager Plug-in for ODI
- Oracle Enterprise Manager Plug-in
- Oracle Data Integrator Console
- Oracle Data Integrator Agent
- Oracle JRF
7. When you come to screen optional configuration screen - select “
Managed Server, Cluster and Machines”
8. On managed server screen add managed server on second node (screen shown below is from my
IDAM 11g book so change setting as per your server and port number)
9. On cluster screen, define a cluster and add these two managed servers in cluster (screen shown below is from my
IDAM 11g book so change setting as per your requirement)
10.After domain creation, configure load balancer
(or Oracle HTTP Server - OHS) to forward request to these two managed
servers in cluster. If you are planning to use OHS then check steps on
how to configure OHS in front of WebLogic Cluster using mod_wl_ohs
here
11.Using ODI studio, create Agents in Work
Repository (when prompted for hostname and port, use Load balancer or
OHS host and port). Use steps mentioned
here
12. Create WLS template for Java EE Agent as explained
here . This step will create jar file.
13.Create Credential Store (username password for
WebLogic Server and Repository), either via Weblogic Scripting Tool
(WLST) or via Enterprise Manager
here (section 2.5.3)
14.Deploy WLS template created in step 12 by running
config.sh again and this time select extend domain and in domain source
screen select “Base this domain on an existing template” (select jar
file created in step 12)
15. Start Managed Servers (MS) i.e. first MS on server1 and second MS on server 2
16. Test ODI Agent by URL
http://loadbalancerhost:loadbalancerport/oraclediagent