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