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:
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.
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
In the same file we also need to replace any occurrence of the word drivers with drivers2
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
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
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.
In one of the next posts I will show how we can make good use of ODIInvokeWebService to query the OBIEE web services API.