Tech

20160331

ODI 12c install Bug: Cyclic dependency detected among featureset libraries oracle.odi.sdk.clientLib.jar


I am currently installing WLS 12.2.1 Enterprise with multiple products on multiple environments; During the installation on ODI over FMW  Infrastructure, and I faced the following Exception printed out on the installation log located at the tmp directory:

Caused by: oracle.sysman.oii.oiif.oiifb.OiifbEndIterateException: com.oracle.cie.gdr.libraries.LibraryHandlerException: Cyclic dependency detected among featureset libraries: [/u01/oracle/products/fmw/modules/clients/oracle.odi.sdk.clientLib.jar]

What I know about the problem:


  1. The issue happen only during the ODI 12c install, and any other product such as SOA and OSB the installation was successfully. By investigating I heard that a college could run the installation without a problem; 
  2. I looked into the Oracle Support and found that is a bug on description phase, which means it would take a long time for a final solution: Bug 22262514 : ERROR WHEN INSTALLING ODI 12.2.1 ON HP UX 11.31; 
  3. The ODI installation is the only installation with the double jars to install: 
  4. The Oracles documentation provided me with the following step to install the ODI: 
  •  /home/Oracle/jdk1.8.0_60/bin/java -jar fmw_12.2.1.0.0_odi.jar

What I was doing:

Since I had to install the application on silent mode, I had something similar to the script bellow:

#!/bin/bash 
export JAVA_HOME=/home/Oracle/jdk1.8.0_60 
export PATH=$JAVA_HOME/bin:$PATH 
java -version 
java -d64 -Xms4g -Xmx4g -jar fmw_12.2.1.0.0_odi.jar -silent etc...

As you can see, the steps were done correctly and running similar scripts worked on the SOA and OSB installation; After some long hours looking and trying to install a successful ODI install, I remember something about how the JVM actually loads classes. By following the instruction from Oracle in providing a full path of the JDK, the JVM seems to load the second fmw_12.2.1.0.0_odi2.jar, therefore the issue was on my script and how I am calling the fmw_12.2.1.0.0_odi.jar; By setting the global PATH variable, I was not allowing the java command to load all needed classes and jars. 

Therefore the solution is simple, was just changing how I was calling the java command or use the -cp to set the classpath: 

java -d64 -Xms4g -Xmx4g -cp /fmw_12.2.1.0.0_odi2.jar -jar /fmw_12.2.1.0.0_odi.jar -silent etc...

If you do the above command and still get an error like bellow, its a good change the you had an failed installation on the FMW Infrastructure previously and you need to delete and reinstall the whole environment again. 

oracle.sysman.nextgen.NextGenInstallerException: oracle.sysman.oii.oiif.oiifb.OiifbEndIterateException: com.oracle.cie.gdr.maven.PomException: Errors were found during
POM generation. Please check the logs for more informatio