fbpx
+55 (11) 4506-3239

5 fev 2012

Falha ao executar mark_managers no TDI

//
Comments0
Um dos processos de pré-instalação do Lotus Connections é voltado a popular a base de dados PEOPLEDB com informações do LDAP. Esse processo é executado através do servidor onde está instalado o TDI (Tivoli Directory Integrator). Para isso, existem duas formas de popular a base de dados PEOPLEDB.

1 – Via wizard
2 – Manualmente

Em ambos os casos ocorre a conexão ao banco de dados onde se encontra a base PEOPLEDB. No Oracle, este banco normalmente chama-se PROFUSER.
Neste caso, a população está sendo feita de forma manual. É um procedimento mais trabalhoso, porém de melhor resultado já que os atributos e configurações específicos são adicionados tendo uma configuração personalizada.
Após preencher o documento map_dbrepos_from_source.properties com todas as informações e mapeamento dos atributos e o documento profiles_tdi.properties com as informações dos servidores de LDAP e Banco de Dados, fui executar o comando ./mark_managers.sh

No momento da execução, ocorreu o seguinte erro.

Cannot load JDBC driver class ‘oracle.jdbc.OracleDriver’
java.lang.UnsupportedClassVersionError: (oracle/jdbc/OracleDriver) bad major version at offset=6
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:258)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:589)
at java.net.URLClassLoader.access$400(URLClassLoader.java:123)
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1034)
at java.security.AccessController.doPrivileged(AccessController.java:279)
at java.net.URLClassLoader.findClass(URLClassLoader.java:491)
at java.lang.ClassLoader.loadClass(ClassLoader.java:631)
at java.lang.ClassLoader.loadClass(ClassLoader.java:623)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:623)
at java.lang.ClassLoader.loadClass(ClassLoader.java:597)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:130)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:760)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:210)

De acordo com o erro, o problema ocorre no momento de carregar o drive do banco de dados Oracle. Portando o problema está com o drive do Oracle.

Identificando o problema

1 – Verificar qual a versão do Java do TDI. Para isso, navegue até /opt/IBM/TDI/V7.0/jvm/jre/bin/
2 – Execute o comando ./java –version

Neste caso, a versão é 1.5

Java(TM) 2 Runtime Environment, Standard Edition (build pxa64dev-20081129a (SR9-0 ))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux amd64-64 j9vmxa6423-20081129 (JIT enabled)
J9VM – 20081126_26240_LHdSMr

O problema ocorre devido ao tipo de drive que foi carregado no momento da execução do comando ./mark_managers.sh. O drive está de acordo com a versão do Oracle, porém não está de acordo com a versão do Java do TDI.

Corrigindo o problema

1 – Navegue até o diretório /opt/IBM/TDI/V7.0/jvm/jre/lib/ext
2 – Copie o drive ojdbc14.jar para o diretório /opt/IBM/TDI/V7.0/jvm/jre/lib/ext
3 – Remova o drive ojdbc6.jar.
4 – Execute novamente o comando ./mark_managers.sh

Drives JDBC para Oracle, podem ser adquiridos gratuitamente através do site do fabricante.
Oracle JDBC Dowload