ODI - Installation with a topology for a standalone agent (version 12.1.2)

1 - About

To be able to install ODI in a standalone agent topology, we need to perform two installations:

  • the full Enterprise Installation in an Oracle home because ODI Studio is only available with this install type.
  • and the Standalone Installation install type into a second Oracle home from which you will configure your standalone agent.

3 - Steps

3.1 - Prerequisites

The installer for Oracle Data Integrator in 12c (12.1.2) does not contain its own JDK. The minimum JDK version needed to launch the installer (Section 3) is JDK 1.7.0 Update 15+.

3.2 - Get the installation file

Download the installation file and store them in a short path without space such as C:\temp\

3.3 - Installation

As stated in the introduction, two installation must be performed in two Oracle home.

The following steps must be followed then two times with

  • one Standalone installation installed in the Oracle Home C:\OdiHome
  • one Enterprise installation installed in the Oracle Home C:\OdiHomeEE

3.3.1 - Launch the installer


"C:\Program Files\Java\jdk1.7.0_51\bin\java" -jar odi_121200.jar

Steps 3: The Enterprise Installation type has the components with a red E whereas the Standalone Installation not.

3.3.2 - Patches

  • Unzip the file odi_1212_opatch.zip in a root directory (no space in the path)
  • Verify the Opatch installation

c:\OdiHome\OPatch>opatch lsinventory


Oracle Interim Patch Installer version 13.1.0.0.0
Copyright (c) 2013, Oracle Corporation.  All rights reserved.


Oracle Home       : c:\OdiHome
Central Inventory : C:\Program Files\Oracle\Inventory
   from           : n/a
OPatch version    : 13.1.0.0.0
OUI version       : 13.1.0.0.0
Log file location : c:\OdiHome\cfgtoollogs\opatch\opatch2014-03-18_11-36-45AM_1.log


OPatch detects the Middleware Home as "C:\OdiHome"

Lsinventory Output file location : c:\OdiHome\cfgtoollogs\opatch\lsinv\lsinventory2014-03-18_11-36-45AM.txt

--------------------------------------------------------------------------------

There are no Interim patches installed in this Oracle Home.


--------------------------------------------------------------------------------

OPatch succeeded.

  • Add opatch in the PATH

set PATH=c:\OdiHome\OPatch;%PATH%

  • Verify that you can reach the utilities “opatch” and “unzip” from the directory where the patches are.

C:\temp\odi_1212_opatch>where opatch
c:\OdiHome\OPatch\opatch
c:\OdiHome\OPatch\opatch.bat

C:\temp\odi_1212_opatch>where unzip
C:\app\gerard\product\12.1.0\dbhome_1\BIN\unzip.exe

  • Set Oracle_Home

set ORACLE_HOME=c:\OdiHome


c:\temp\odi_1212_opatch>opatch napply odi_1212_opatch


Oracle Interim Patch Installer version 13.1.0.0.0
Copyright (c) 2013, Oracle Corporation.  All rights reserved.


Oracle Home       : c:\OdiHome
Central Inventory : C:\Program Files\Oracle\Inventory
   from           : n/a
OPatch version    : 13.1.0.0.0
OUI version       : 13.1.0.0.0
Log file location : c:\OdiHome\cfgtoollogs\opatch\opatch2014-03-18_11-46-54AM_1.log


OPatch detects the Middleware Home as "C:\OdiHome"

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   16926420  17170540  17469061

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = 'c:\OdiHome')


Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '16926420' to OH 'c:\OdiHome'

Patching component oracle.xdk.jrf.xmlparserv2, 12.1.2.0.0...

Patching component oracle.xdk.jrf.jaxp, 12.1.2.0.0...

Verifying the update...
Applying interim patch '17170540' to OH 'c:\OdiHome'

Patching component oracle.as.common.clone, 12.1.2.0.0...

Verifying the update...
Applying interim patch '17469061' to OH 'c:\OdiHome'

Patching component oracle.fmw.upgrade, 12.1.2.0.0...

Verifying the update...
Patches 16926420,17170540,17469061 successfully applied.
Log file location: c:\OdiHome\cfgtoollogs\opatch\opatch2014-03-18_11-46-54AM_1.log

OPatch succeeded.

3.4 - Create the Master and Work Repository schemas

Create the Master and Work Repository schemas with the utility tool RCU.


set JAVA_HOME=C:\Progr~1\Java\jdk1.7.0_51
set set ORACLE_HOME=
cd c:\OdiHome\oracle_common\bin
rcu

Note for me, all Password = manager1
  • Step 2 : Select
    • System Load and Product Load Concurrently, if you have DBA permission and privileges, . This procedure assumes that you have the necessary privileges.
    • Prepare Scripts for System Load if not. This option will generate a SQL script.
  • Components:

  • Custom Variables

  • Tablespace

3.5 - Creating a new domain with its node manager (Standalone Agent Installation Configuration)

  • Staring the configuration wizard

REM Go to the standalone oracle home installation
cd c:\OdiHome
REM Go to the bin dir of common
cd oracle_common\common\bin
REM start the wizard
config.cmd

  • Create a new domain in the location: C:\OdiHome\user_projects\domains\mydomain (mydomain is the default value of wlst function)
  • Selecting the Configuration Template: Oracle Data Integrator - Standalone Agent - 12.1.2.0 [odi]
  • Selecting the JDK: Oracle Hot Spot
  • Specifying the Datasource Configuration Type. The RCU Data option instructs the Configuration Wizard to connect to the database and Service Table (STB) schema to automatically retrieve schema information for the schemas needed to configure the domain.

  • Component Data Source

  • JDBC Test

  • System component

  • Configuration Node Manager Type: Select Per Domain as the Node Manager type, then specify the Node Manager credentials. You will be asked for these credentials when starting your system component with the startComponent command.

  • Create the domain: Press the button !

Preparing...
Extracting Domain Contents...
Creating Domain Security Information...
Saving the Domain Information...
Storing Domain Information...
String Substituting Domain Files...
Performing OS Specific Tasks...
Performing Post Domain Creation Tasks...
Domain Created Successfully!

  • Domain Configuration Succeeded

New Domain base_domain Creation Successful
Domain Location 
C:/OdiHome/user_projects/domains/base_domain

3.6 - Creating a Standalone Agent in the Master Repository Using ODI Studio

3.6.1 - Connect to repository

A physical agent corresponds to a single standalone agent or a Java EE agent. A physical agent should have a unique name in the topology.

As part of its startup sequence, an agent connects to the Master Repository to see if there is a physical agent defined with its name. If it finds its entry, the agent continues with startup and, once started, it reads all the scheduled jobs of itself from the repository and starts processing.

If there is no physical agent entry for an agent, then the agent startup fails.

  • Starting ODI Studio

cd C:\OdiHomeEE
cd odi\studio
odi.exe

  • During the first start, you need to give the JDK path: C:\Program Files\Java\jdk1.7.0_51
  • Creating a Login. File > New > Create a New ODI Repository Login > OK. <note tip>You can also use this JDBC URL connection form: jdbc:oracle:thin:@hostname:port/servicename</note><note warning>The case of the user is important: SUPERVISOR is not the same that supervisor</note>

  • Specifying a New Wallet Password: Without. If you want to keep your Oracle Data Integrator and repository passwords encrypted, select Store passwords in secure wallet

  • Connect to Repository

3.6.2 - Creating the Standalone Agent

3.6.3 - Starting the Standalone Agent

3.6.3.1 - with Node Manager
  • Start your per-domain Node Manager, go to the DOMAIN_HOME/bin directory.

cd C:/OdiHome/user_projects/domains/mydomain
cd bin
startNodeManager.cmd

To run it as a service See: “Running Node Manager as a Startup Service” in Administering Node Manager for Oracle WebLogic Server.

  • After the Node Manager is started, start your standalone agent by going to the DOMAIN_HOME/bin directory and running the following commands:

cd C:/OdiHome/user_projects/domains/mydomain
cd bin
startComponent.cmd OracleDIAgent1


Starting System Component OracleDIAgent1 ...
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSpinning; support was removed in 7.0_40

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Reading domain from C:/OdiHome/user_projects/domains/mydomain

Please enter your password :
Connecting to Node Manager ...
Successfully Connected to Node Manager.
Starting server OracleDIAgent1 ...

You can see more verbose in the nodemanager.log:


<INFO> <mydomain> <OracleDIAgent1> <Creating directory "C:\OdiHome\user_projects\domains\mydomain\system_components\ODI\OracleDIAgent1\logs">
<INFO> <mydomain> <OracleDIAgent1> <Creating directory "C:\OdiHome\user_projects\domains\mydomain\system_components\ODI\OracleDIAgent1\security">
<INFO> <mydomain> <OracleDIAgent1> <Creating directory "C:\OdiHome\user_projects\domains\mydomain\system_components\ODI\OracleDIAgent1\data\nodemanager">
<INFO> <mydomain> <OracleDIAgent1> <Creating directory "C:\OdiHome\user_projects\domains\mydomain\system_components\ODI\OracleDIAgent1\tmp">
<INFO> <mydomain> <OracleDIAgent1> <Creating directory "C:\OdiHome\user_projects\domains\mydomain\servers\domain_bak">
<INFO> <mydomain> <OracleDIAgent1> <Creating directory "C:\OdiHome\user_projects\domains\mydomain\servers\domain_bak\config_prev">
<INFO> <INS:>
<INFO> <INS:Trying to use OracleDIAgent as instance name.>
<INFO> <INS:>
<INFO> <ERRS:org.apache.commons.cli.MissingArgumentException: Missing argument for option:INSTANCE>
<INFO> <ERRS:	at org.apache.commons.cli.Parser.processArgs(Parser.java:354)>
<INFO> <ERRS:	at org.apache.commons.cli.Parser.processOption(Parser.java:410)>
<INFO> <ERRS:	at org.apache.commons.cli.Parser.parse(Parser.java:193)>
<INFO> <ERRS:	at org.apache.commons.cli.Parser.parse(Parser.java:112)>
<INFO> <ERRS:	at oracle.odi.param.CliParameterReader.<init>(CliParameterReader.java:69)>
<INFO> <ERRS:	at oracle.odi.param.AgentWarClassPathFileReader.<init>(AgentWarClassPathFileReader.java:18)>
<INFO> <ERRS:	at oracle.odi.param.ParameterHelper.init(ParameterHelper.java:99)>
<INFO> <ERRS:	at oracle.odi.Agent.main(Agent.java:654)>
<INFO> <INS:>
<INFO> <INS:	DESCRIPTION>
<INFO> <INS:		Starts an agent. See Oracle Data Integrator documentation for the>
<INFO> <INS:		detailed syntax.>
<INFO> <INS:>
<INFO> <INS:	SYNTAX>
<INFO> <INS:		agent.(cmd|sh) -NAME=<agent name> [-PORT=<port>] [-PROTOCOL=<protocol>] [-JMXPORT=<jmxport>]>
<INFO> <INS:			[-ODI_CONNECTION_RETRY_COUNT=<nn>] [-ODI_CONNECTION_RETRY_DELAY=<nn>]>
<INFO> <INS:		PORT     represents the listening port. It should match the port value>
<INFO> <INS:			specified against the physical agent defined in Topology.>
<INFO> <INS:		PROTOCOL represents the listening protocol, HTTP or HTTPS.>
<INFO> <INS:			Its default value is HTTP.>
<INFO> <INS:		NAME     represents the name of this physical agent. It should>
<INFO> <INS:			match the name of a physical agent defined in Topology.>
<INFO> <INS:			User must have created an agent with this name using>
<INFO> <INS:			configuration wizard.>
<INFO> <INS:		JMXPORT  represents the JMX port used for JMX notifications etc.>
<INFO> <INS:			Its default value is calculated as PORT + 1000,>
<INFO> <INS:			or 20810 if the calculated value is greater than 65535>
<INFO> <INS:		ODI_CONNECTION_RETRY_COUNT   represents the number of times a connection>
<INFO> <INS:			to the ODI Repository will be retried. Its default value is 10>
<INFO> <INS:		ODI_CONNECTION_RETRY_DELAY   represents the number of milliseconds between>
<INFO> <INS:			connection retries to the ODI Repository. Its default value is 7000>
<INFO> <INS:>
<INFO> <ERRS:2014-04-02 15:56:33.396 NOTIFICATION New data source: [DEV_ODI_REPO/*******@jdbc:oracle:thin:@localhost:1521/PDBORCL.HOTITEM.LOCAL]>
<INFO> <ERRS:2014-04-02 15:56:36.392 NOTIFICATION ODI-1128 Agent OracleDIAgent1 is starting. Container: STANDALONE. Agent Version: 12.1.2 - 17/09/2013. Port: 20910. JMX Port: 21910.>
<INFO> <INS:Allowing : 127.0.0.1,192.168.1.35,127.0.0.1>
<ERRS:2014-04-02 15:56:44.301 NOTIFICATION New data source: [DEV_ODI_REPO/*******@jdbc:oracle:thin:@(description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(service_name=PDBORCL.HOTITEM.LOCAL)(server=dedicated)))]>
<INFO> <ERRS:2014-04-02 15:56:45.003 NOTIFICATION ODI-1111 Agent OracleDIAgent1 started. Agent version: 12.1.2 - 17/09/2013. Port: 20910. JMX Port: 21910.>
<INFO> <mydomain> <OracleDIAgent1> <The server 'OracleDIAgent1' is running now.>

3.6.3.2 - without Node Manager

cd C:/OdiHome/user_projects/domains/mydomain
cd bin
agent.cmd -NAME=OracleDIAgent1


2014-03-20 12:07:44.842 NOTIFICATION New data source: [DEV_ODI_REPO/*******@jdbc:oracle:thin:@localhost:1521/PDBORCL.HOTITEM.LOCAL]
2014-03-20 12:07:46.793 NOTIFICATION ODI-1128 Agent OracleDIAgent1 is starting. Container: STANDALONE. Agent Version: 12.1.2 - 17/09/2013. Port: 20910. JMX Port: 21910.
Allowing : 127.0.0.1,192.168.1.34,127.0.0.1
*sys-package-mgr*: processing new jar, 'C:\OdiHome\odi\agent\lib\endeca-server-driver.jar'
*sys-package-mgr*: processing new jar, 'C:\OdiHome\odi\agent\lib\endeca_bulk_load-7.6.jar'
*sys-package-mgr*: processing new jar, 'C:\OdiHome\odi\agent\lib\guava-14.0.jar'
*sys-package-mgr*: processing new jar, 'C:\OdiHome\odi\agent\lib\httpclient-4.0.3.jar'
*sys-package-mgr*: processing new jar, 'C:\OdiHome\odi\agent\lib\httpcore-4.0.1.jar'
*sys-package-mgr*: processing new jar, 'C:\OdiHome\odi\agent\lib\log4j-1.2.15.jar'
*sys-package-mgr*: processing new jar, 'C:\OdiHome\odi\agent\lib\slf4j-api-1.7.2.jar'
*sys-package-mgr*: processing new jar, 'C:\OdiHome\odi\agent\lib\slf4j-log4j12-1.7.2.jar'
2014-03-20 12:07:56.800 NOTIFICATION New data source: [DEV_ODI_REPO/*******@jdbc:oracle:thin:@(description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(service_name=PDBORCL.HO
M.LOCAL)(server=dedicated)))]
2014-03-20 12:08:00.512 NOTIFICATION ODI-1111 Agent OracleDIAgent1 started. Agent version: 12.1.2 - 17/09/2013. Port: 20910. JMX Port: 21910.
2014-03-20 12:08:00.515 NOTIFICATION ODI-1136 Starting Schedulers on Agent OracleDIAgent1.
2014-03-20 12:08:02.053 NOTIFICATION ODI-1137 Scheduler started for work repository WORKREP on Agent OracleDIAgent1.
..............

3.6.3.3 - Testing the agent

In order to test that the agent is started, you can ping it with this URl: http://localhost:20910/oraclediagent/ where the application context “oraclediagent” is given in the Odi Studio agent configuration windows.

4 - More

5 - Support

5.1 - "...di_1212_opatch\etc\config\inventory" does not exist.

During the opatch installation, you can get the following error:


Failed to load the patch object.  Possible causes are:
  The specified path is not an interim Patch shiphome
  Meta-data files are missing from the patch area
  Patch location = C:\Users\gerard\Desktop\ofm_odi_generic_12.1.2.0.0_disk1_1of1\odi_1212_opatch\odi_1212_opatch
  Details = PatchObject constructor: Input file "C:\Users\gerard\Desktop\ofm_odi_generic_12.1.2.0.0_disk1_1of1\odi_1212_opatch\odi_1212_opatch\etc\config\action
eneric_12.1.2.0.0_disk1_1of1\odi_1212_opatch\odi_1212_opatch\etc\config\inventory" does not exist.

NApply could not load patch from location 'C:\Users\gerard\Desktop\ofm_odi_generic_12.1.2.0.0_disk1_1of1\odi_1212_opatch\odi_1212_opatch'
UtilSession failed: PatchObject constructor: Input file "C:\Users\gerard\Desktop\ofm_odi_generic_12.1.2.0.0_disk1_1of1\odi_1212_opatch\odi_1212_opatch\etc\confi
fm_odi_generic_12.1.2.0.0_disk1_1of1\odi_1212_opatch\odi_1212_opatch\etc\config\inventory" does not exist.
Log file location: c:\OdiHome\cfgtoollogs\opatch\opatch2014-03-18_11-43-05AM_1.log

The solution is to move the directory containing the patch in a path without space as the documentation states:


NOTE: On WINDOWS, the prefrred location is the drive root directory. For example, "C:\PATCH_TOP" and avoid choosing locations like, "C:\Documents and Settings\username\PATCH_TOP".  This is necessary due to the 256 characters limitation on windows  platform.

5.2 - Cannot find the file specified when starting RCU

When starting the RCU utility, you get this kind of message;


The file .... can not be found.

This message is caused by the fact that you JAVA_HOME has a space in the path and that the dos script doesn't handle it (even with quotes).

To resolve this issue, just modify the rcu.bat script by:

  • suppressing the JAVA_HOME variable
  • and just adding it in the PATH.

REM @if  "%JAVA_HOME%" == "" set JAVA_HOME=%JRE_DIR%
REM @if not "%JAVA_HOME%" == "" if exist "%JAVA_HOME%\jre\bin\javaw.exe" set JAVA_HOME=%JAVA_HOME%\jre\
set PATH=C:\Program Files\Java\jdk1.7.0_51\bin\;%PATH%

5.3 - There is an error with library regeneration

During the patch installation, you may get this error:


There is an error with library regeneration, please refer to the log file for details. OPatch will continue applying the patch.


OPatch failed with error code = 1

Due to this error, the patch is not applied to all affected libraries. This leads to an inconsistent state of the environment.

Normally, you had to rollback the patch in order to restore the pre-patch environment but for the patch 16926420, this must be considered as a warning See There is an error with library regeneration, please refer to the log file for details. OPatch will continue applying the patch.' Signalled When Applying ODI 12.1.2 Patch 16926420

How to rollback:


opatch rollback -id 17170540

where the patch id can be found with the lsinventory command (

It's not the unique patch id

)


opatch lsinventory

6 - Documentation / Reference


Data Science
Data Analysis
Statistics
Data Science
Linear Algebra Mathematics
Trigonometry

Powered by ComboStrap