ODI – Oracle Data Quality (Trillium) configuration issues on Solaris 10 : Error creating Loader Connection pkgOracleAdapter.so ld.so.1 libclntsh.so.10.1

Oracle Data Quality and Profiling is product from Trillium and Oracle ship it as part of Oracle Data Integrator (ODI) software. More on ODI here and here 

ODI – Oracle Data Integrator
ODP – Oracle Data Profiling
ODQ – Oracle Data Quality

Entity creation failed while creating Loader Connection to Data source (Oracle Database) – For more information on Entity, Metabase or Loader Connection in ODQ/ODP check Chapter 3 of Getting Started with Oracle Data Profiling and Oracle Data Quality for Data Integrator Guide here
.

How to connect to Oracle Database from ODQ/ODP (define Loader Connection) :
1.
Install Oracle Database Client on Server where ODQ/ODP is running (ODQ/ODP user should at least have read access on tnsnames.ora and library files).
2. Define ORACLE_HOME variable in .TSDiscovery file under user owing ODQ/ODP software.
3. Define TNS alias (tnsnames.ora) in Oracle Database Client to connect to remote Oracle Database
4. Create a Metabase (or use existing metabase) using Metabase Manager
5. Define Load Connection using : Tools -> Add Loader Connection

.
Oracle Data Quality
.

6. Create Entity and use Loader Connection created above.

Entity creation failed with error message, on checking logs on ODQ/ODP server under

$ORACLE_ODI_INSTALLATION/ oracledq/ metabase_data/ logs/ mtb_server.log

_________________

2009-12-15 11:50:03 22277 WARNING CONNECT Remote oracle connection failure, couldn’t load file “/u01/ oracledq/ metabase_server/ metabase/ lib/ pkgOracleAdapter/ pkgOracleAdapter.so”: ld.so.1: server.bin: fatal: libclntsh.so.10.1: open failed: No such file or directory – couldn’t load file “/u01/ oracledq/ metabase_server/ metabase/ lib/ pkgOracleAdapter/ pkgOracleAdapter.so”: ld.so.1: server.bin: fatal: libclntsh.so.10.1: open failed: No such file or directory
_________________

Issue : libclntsh.so.10.1 exists under $ORACLE_CLIENT/[lib or lib32] but $ORACLE_HOME variable was not defined under .TSDiscovery

Fix : Stop Oracle Data Quality and Profiling Server , add ORACLE_HOME variable in .TSDiscovery and start ODQ/ODP server

.

What is .TSDiscovery file in ODQ/ODP component of ODI ?

.TSDiscovery is hidden file (as represented by dot in front) on Unix/Linux server under $HOME for user owning ODI (with ODQ/ODP) or Oracle Data Quality & Profiling product.
     ODQ/ODP server uses  TSDiscovery file to gather environment information like LD_LIBRARY_PATH, TS_QUALITY, ODI_JAVA_HOME or ORACLE_HOME .

.

References

There was an issue loading your timed LeadBox™. Please check plugin settings.

About the Author Atul Kumar

Oracle ACE, Author, Speaker and Founder of K21 Technologies & K21 Academy : Oracle Gold Partner specialising in Design, Implement, and Trainings.

follow me on:

Leave a Comment:

3 comments
Sanjeev Nanda says April 1, 2010

Can we use ODI – Oracle Data Integrator
in Oracle Apps for migrations of one module from one instance to other.

Regards
Sanjeev

Reply
prakash says July 27, 2010

Hi Atul,
We are getting the following error while creating the entities in Oracle Data Profiling & Quality:

Authentication failed. couldn’t load file “/opt/oracle/odi/oracled
q/metabase_server/metabase/lib/pkgOracleAdapter/pkgOracleAdap
ter.so”: ld.so.1: server.bin: fatal: /opt/oracle/11.2.0/client/lib/libc
lntsh.so.10.1: wrong ELF class: ELFCLASS64

Also we already added the required entries in .TSDiscovery file.
$ cat .TSDiscovery
ORACLE_HOME=/opt/oracle/11.2.0/client
export ORACLE_HOME
LD_LIBRARY_PATH=/opt/oracle/odi/oracledq/quality_server/tsq11r5s/S
oftware/bin:/opt/oracle/11.2.0/client/lib:/opt/oracle/odi/oracledq/m
etabase_server/metabase/lib
export LD_LIBRARY_PATH
TS_QUALITY=/opt/oracle/odi/oracledq/quality_server/tsq11r5s/Software
export TS_QUALITY

Here is the ldd
$ ldd pkgOracleAdapter.so
libclntsh.so.10.1 => /opt/oracle/11.2.0/client/lib/lib
clntsh.so#.10.1 – wrong ELF class: ELFCLASS64
libdb-3.3.so => /opt/oracle/odi/oracledq/metabase
_server/metabase/lib/libdb-3.3.so
libicuuc.so.36 => /opt/oracle/odi/oracledq/metabase_
server/metabase/lib/libicuuc.so.36
libicui18n.so.36 => /opt/oracle/odi/oracledq/metabase_server/metabase/lib/libicui18n.so.36
libintl.so.3 => /opt/oracle/odi/oracledq/metabase_server/metabase/lib/libintl.so.3
libpthread.so.1 => /usr/lib/libpthread.so.1
libCrun.so.1 => /usr/lib/libCrun.so.1
libc.so.1 => /lib/libc.so.1
libicudata.so.36 => /opt/oracle/odi/oracledq/metabase_server
/metabase/lib/libicudata.so.36
libm.so.1 => /usr/lib/libm.so.1
libm.so.2 => /lib/libm.so.2
/platform/SUNW,SPARC-Enterprise/lib/libc_psr.so.1

Thanks,
Prakash.

Reply
Atul Kumar says July 27, 2010

@ Prakash,
wrong ELF class: ELFCLASS64 means wrong bit (32 or 64) for library file.

libclntsh.so.10.1 => /opt/oracle/11.2.0/client/lib/libclntsh.so.10.1 – wrong ELF class: ELFCLASS64

Change /opt/oracle/11.2.0/client/lib/libclntsh.so.10 to /opt/oracle/11.2.0/client/lib32/libclntsh.so.10

i.e. LD_LIBRARY_PATH

and see is that fixes issue

Reply
Add Your Reply