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.
Articles Related
Steps
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+.
Get the installation file
Download the installation file and store them in a short path without space such as C:\temp\
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
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.
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
- Apply all the patches under the subdirectory odi_1212_opatch, You met get an error that is a warning. See there_is_an_error_with_library_regeneration
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.
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
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
- ODI Server Configuration. See also Windows - Installing a Loopback Adapter
- 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
Creating a Standalone Agent in the Master Repository Using ODI Studio
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. You can also use this JDBC URL connection form: jdbc:oracle:thin:@hostname:port/servicenameThe case of the user is important: SUPERVISOR is not the same that supervisor
- 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
Creating the Standalone Agent
Starting the Standalone Agent
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.>
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.
..............
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.
More
Support
“…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.
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%
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