Teradata ODBC Driver load error on Linux 64 bit (OBIEE Configuration) : Specified driver could not be loaded. (HY000)

Connectivity
Enthusiast

Teradata ODBC Driver load error on Linux 64 bit (OBIEE Configuration) : Specified driver could not be loaded. (HY000)

Got the following error:

View Display Error

Odbc driver returned an error (SQLExecDirectW).

http://bidvap3.ad.ea.com:9704/analytics/res/sk_blafp/common/errorminus.gif  Error Details

Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P

State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 16001] ODBC error state: IM003 code: 0 message: [DataDirect][ODBC lib] Specified driver could not be loaded. (HY000)

Please have your System Administrator look at the log for more details on this error.

Checked driver load (ldd tdada.so) and found the following:

[biuser@linuxdev setup]$ ldd /opt/teradata/client/14.10/odbc_64/lib/tdata.so

        linux-vdso.so.1 =>  (0x00007fff70bff000)

        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fd7f2032000)

        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fd7f1e1c000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd7f1bff000)

        libdl.so.2 => /lib64/libdl.so.2 (0x00007fd7f19fa000)

        librt.so.1 => /lib64/librt.so.1 (0x00007fd7f17f2000)

        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fd7f15d9000)

        libodbcinst.so => /biapps/obiee_home/Oracle_BI1/common/ODBC/Merant/5.3/lib/libodbcinst.so (0x00007fd7f13f2000)

        libddicu26.so => not found

        libtdparse.so => not found

        libicudatatd.so.46 => /usr/lib64/libicudatatd.so.46 (0x00007fd7f0ba7000)

        libicuuctd.so.46 => /usr/lib64/libicuuctd.so.46 (0x00007fd7f091a000)

        libm.so.6 => /lib64/libm.so.6 (0x00007fd7f0696000)

        libc.so.6 => /lib64/libc.so.6 (0x00007fd7f0301000)

        /lib64/ld-linux-x86-64.so.2 (0x00000031c8c00000)

        libARicu23.so => /biapps/obiee_home/Oracle_BI1/common/ODBC/Merant/5.3/lib/libARicu23.so (0x00007fd7ef6f0000)

        libstdc++.so.5 => /usr/lib64/libstdc++.so.5 (0x00007fd7ef414000)

[biuser@linuxdev setup]$

Made the following changes in user.sh file ( /instances/instance1/bifoundation/OracleBIApplication/coreapplication/setup)

###############################################################

# Teradata: ODBC 64 bit Driver

###############################################################

LD_LIBRARY_PATH_64=/opt/teradata/client/14.10/odbc_64/lib:/opt/teradata/client/14.10/tdicu/lib64:$LD_LIBRARY_PATH_64

export LD_LIBRARY_PATH_64

LD_LIBRARY_PATH=/opt/teradata/client/14.10/odbc_64/lib:/opt/teradata/client/14.10/tdicu/lib64:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH

Test the driver load after running bi-init.sh file (which internally calls user.sh)

[biuser@linuxdev setup]$ ldd /opt/teradata/client/14.10/odbc_64/lib/tdata.so

        linux-vdso.so.1 =>  (0x00007fffeafff000)

        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f6091276000)

        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6091060000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6090e43000)

        libdl.so.2 => /lib64/libdl.so.2 (0x00007f6090c3e000)

        librt.so.1 => /lib64/librt.so.1 (0x00007f6090a36000)

        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f609081d000)

        libodbcinst.so => /opt/teradata/client/14.10/odbc_64/lib/libodbcinst.so (0x00007f60905f8000)

        libddicu26.so => /opt/teradata/client/14.10/odbc_64/lib/libddicu26.so (0x00007f608f701000)

        libtdparse.so => /opt/teradata/client/14.10/odbc_64/lib/libtdparse.so (0x00007f608f57b000)

        libicudatatd.so.46 => /opt/teradata/client/14.10/tdicu/lib64/libicudatatd.so.46 (0x00007f608ed30000)

        libicuuctd.so.46 => /opt/teradata/client/14.10/tdicu/lib64/libicuuctd.so.46 (0x00007f608eaa3000)

        libm.so.6 => /lib64/libm.so.6 (0x00007f608e81f000)

        libc.so.6 => /lib64/libc.so.6 (0x00007f608e48a000)

        /lib64/ld-linux-x86-64.so.2 (0x00000031c8c00000)

The above error is gone after making this change!!

Tags (4)
7 REPLIES
Teradata Employee

Re: Teradata ODBC Driver load error on Linux 64 bit (OBIEE Configuration) : Specified driver could not be loaded. (HY000)

TTU 14.10 ODBC(seems the version you have installed) install creates below soft links, which voids the need for LD_LIBRARY_PATH.  I am curious to know if these links were present on the system or not.  If not, I suspect the installation had some failures went unnoticed while creating the soft links

/usr/lib64/libddicu26.so -> /opt/teradata/client/ODBC_64/lib/libddicu26.so

/usr/lib64/libtdparse.so -> /opt/teradata/client/ODBC_64/lib/libtdparse.so

Enthusiast

Re: Teradata ODBC Driver load error on Linux 64 bit (OBIEE Configuration) : Specified driver could not be loaded. (HY000)

It looks like (From bi-init.sh) see below, that it is using LD_LIBRARY_PATH

case "$ANA_VARIANT" in

    Solaris)

if [ "$ANA_SERVER_64" = "1" ]; then

  ANA_LIB_PATH=LD_LIBRARY_PATH_64

else

  ANA_LIB_PATH=LD_LIBRARY_PATH

fi

;;

    HPUX)

ANA_LIB_PATH=SHLIB_PATH

;;

    AIX)

ANA_LIB_PATH=LIBPATH

;;

    Linux)

ANA_LIB_PATH=LD_LIBRARY_PATH

;;

    *)

;;

esac

I ran the ldd again after running bi-init.sh, which gives the following output

[biuser@linuxdev setup]$ ldd /opt/teradata/client/14.10/odbc_64/lib/tdata.so

        linux-vdso.so.1 =>  (0x00007fff1c26a000)

        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f2553a70000)

        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f255385a000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f255363d000)

        libdl.so.2 => /lib64/libdl.so.2 (0x00007f2553438000)

        librt.so.1 => /lib64/librt.so.1 (0x00007f2553230000)

        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f2553017000)

        libodbcinst.so => /biapps/obiee_home/Oracle_BI1/common/ODBC/Merant/5.3/lib/libodbcinst.so (0x00007f2552e30000)

        libddicu26.so => /opt/teradata/client/14.10/odbc_64/lib/libddicu26.so (0x00007f2551f39000)

        libtdparse.so => /opt/teradata/client/14.10/odbc_64/lib/libtdparse.so (0x00007f2551db3000)

        libicudatatd.so.46 => /opt/teradata/client/14.10/tdicu/lib64/libicudatatd.so.46 (0x00007f2551568000)

        libicuuctd.so.46 => /opt/teradata/client/14.10/tdicu/lib64/libicuuctd.so.46 (0x00007f25512db000)

        libm.so.6 => /lib64/libm.so.6 (0x00007f2551057000)

        libc.so.6 => /lib64/libc.so.6 (0x00007f2550cc2000)

        /lib64/ld-linux-x86-64.so.2 (0x00000031c8c00000)

        libARicu23.so => /biapps/obiee_home/Oracle_BI1/common/ODBC/Merant/5.3/lib/libARicu23.so (0x00007f25500b1000)

        libstdc++.so.5 => /usr/lib64/libstdc++.so.5 (0x00007f254fdd5000)

Also, 

[biuser@linuxdev setup]$ nqcmd -d TeradataTestDS -u usr1 -p pwd1 -s myquery.sql > myresults.out

works fine.


Teradata Employee

Re: Teradata ODBC Driver load error on Linux 64 bit (OBIEE Configuration) : Specified driver could not be loaded. (HY000)

Please check if these links are present on the machine. 

/usr/lib64/libddicu26.so -> /opt/teradata/client/ODBC_64/lib/libddicu26.so

/usr/lib64/libtdparse.so -> /opt/teradata/client/ODBC_64/lib/libtdparse.so

Enthusiast

Re: Teradata ODBC Driver load error on Linux 64 bit (OBIEE Configuration) : Specified driver could not be loaded. (HY000)

yes these seems to be present....

[biuser@linuxdev ~]$ ls -l /usr/lib64/libddicu26.so

lrwxrwxrwx 1 root root 46 Mar 11 13:22 /usr/lib64/libddicu26.so -> /opt/teradata/client/ODBC_64/lib/libddicu26.so

[biuser@linuxdev ~]$ ls -l /usr/lib64/libtdparse.so

lrwxrwxrwx 1 root root 46 Mar 11 13:22 /usr/lib64/libtdparse.so -> /opt/teradata/client/ODBC_64/lib/libtdparse.so

[biuser@linuxdev ~]$

Teradata Employee

Re: Teradata ODBC Driver load error on Linux 64 bit (OBIEE Configuration) : Specified driver could not be loaded. (HY000)

without setting LD_LIBRARY_PATH (or modify it not to include TD ODBC paths), please run /opt/teradata/client/14.10/odbc_64/bin/tdxodbc provide the ODBC DSN, database user-id and password when it prompts to verify the connection.

Enthusiast

Re: Teradata ODBC Driver load error on Linux 64 bit (OBIEE Configuration) : Specified driver could not be loaded. (HY000)

[biuser@linuxdev setup]$ strace -o /tmp/straceout.log /opt/teradata/client/14.10/odbc_64/bin/tdxodbc

Enter Data Source Name: mydsn

Enter UserID: usr1

Enter Password:

Connecting with SQLConnect(DSN=mydsn,UID=usr1,PWD=*)...

.....ODBC connection successful.

ODBC version        = -03.52.0000-

DBMS name           = -Teradata-

DBMS version        = -13.10.0308  13.10.03.08-

Driver name         = -tdata.so-

Driver version      = -14.10.00.00-

Driver ODBC version = -03.51-

(type quit to terminate adhoc)

Enter SQL string : sel count(*) from testtable;

Executing SQLExecDirect("sel count(*) from testtable;")...

SQL Statement [1]: 1 rows affected.

Count(*)

31528

Enter SQL string : exit

'exit' command detected

ODBC connection closed.

[biuser@linuxdev setup]$

Teradata Employee

Re: Teradata ODBC Driver load error on Linux 64 bit (OBIEE Configuration) : Specified driver could not be loaded. (HY000)

Thanks.  The successful connection test proves that there is no need to update LD_LIBRARY_PATH to include TD ODBC paths.  Please try the same from your other connectivity test tool, and the actual application.