To be able to install ODI in a standalone agent topology, we need to perform two installations:
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+.
Download the installation file and store them in a short path without space such as C:\temp\
As stated in the introduction, two installation must be performed in two Oracle home.
The following steps must be followed then two times with
"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.
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.
set PATH=c:\OdiHome\OPatch;%PATH%
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=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.
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
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
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!
New Domain base_domain Creation Successful
Domain Location
C:/OdiHome/user_projects/domains/base_domain
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.
cd C:\OdiHomeEE
cd odi\studio
odi.exe
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.
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.>
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.
..............
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.
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.
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:
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%
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