Oracle Data Integrator: ODIInvokeWebService and Java 6

July 16, 2010

Get our e-books Discover the Oracle Data Integrator 11g Repository Data Model and Oracle Data Integrator Snippets and Recipes
ODI has a built in SOAP client, the ODIInvokeWebService tool. However, there is one caveat when you try using this with Java 6/JDK 6. It simply doesn’t work and you will get the following error:
org.apache.xerces.dom.DocumentImpl.getXmlStandalone()Z
This is documented in note 1085594.1 and the suggested workaround is to fall back to an earlier version of Java. Another option of course is to install another agent that uses Java 5 alongside your Java 6 agent.
The first step we need to take is to install JDK 5. You can download JDK 5 from the Oracle website.
If repositories are running on Oracle we also need to download the compatible Oracle JDBC 5 driver. If you are running your repositories on another RDBMS get the equivalent JDBC driver.
Next, inside the oracledi folder we create a new folder and name it bin_jdk5.
We then copy the content of the bin folder into bin_jdk5.
The next step will be to create a new environment variable and name it ODI_JAVA_HOME2. The variable needs to be pointed to the JDK 5.
odi_obiee0
As a next step we need to edit the odiparams.bat file in the bin_jdk5 folder. Open the file in Notepad and replace ODI_JAVA_HOME with ODI_JAVA_HOME2
odi_obiee1
In the same file we also need to replace any occurrence of the word drivers with drivers2
odi_obiee2
Next we create a new folder drivers2 inside the oracledi folder and copy and paste the downloaded Oracle JDBC 5 driver into it. Alos copy any other drivers from the drivers folder into the drivers folder that you may want to use with this agent
odi_obiee3
Finally we create a new agent that uses the JDK 5 as a Windows service.
First edit file agentservice.bat and replace binodiparams.bat with bin_jdk5odiparams.bat as per figure below
odi_obiee4
Then we create a copy of file snpsagent.conf in folder oraclditoolswrapperconf. Replace any occurrence of drivers with drivers2.
We also replace wrapper.working.dir=../../../bin/ with wrapper.working.dir=../../../bin_jdk5/
Next we create the physical and logical agent in Topology Manager.
Finally we install the agent as a listener or scheduler agent.
odi_obiee5
In one of the next posts I will show how we can make good use of ODIInvokeWebService to query the OBIEE web services API.