cancel
Showing results for 
Search instead for 
Did you mean: 

Oracle Driver ODBC linux Mobilink

Former Member
4,898

I am unable to load libdboraodbc when in RedHat 6 Enterprise Edition .

i updated my odbcinst with the location and server name and password. but when i use SQL Anywhere 16 and try and open a connection from oracle to sybase it says cann't load libdboraodbc .

also the Oracle people are using a service name rather than server name.

Pls suggest me a way to end my problems.

VolkerBarth
Contributor

Have you had a look at that doc page?

SQL Anywhere 16 - Oracle ODBC driver

It explains the required configuration settings, among other the ServiceName parameter.

jeff_albion
Advisor
Advisor
0 Kudos

Also notably, there's a slight typo on this doc page:

Driver=full-path/libdboraodbc12_r.so

should be:

Driver=full-path/libdboraodbc16_r.so

Accepted Solutions (0)

Answers (1)

Answers (1)

jeff_albion
Advisor
Advisor

cann't load libdboraodbc

The driver should be loaded from LD_LIBRARY_PATH - have you sourced the SQL Anywhere environment first? This should include the lib32 or lib64 directory, depending on which bitness you're using of the MobiLink server - make sure to match bitnesses for the version of the MobiLink server to the library you're trying to load (e.g. 32-bit for 32-bit and 64-bit for 64-bit).

Once the "SQL Anywhere 16 - Oracle" driver is loaded (libdboraodbc16_r.so), it will then attempt to dynamically load the library libclntsh.so from the LD_LIBRARY_PATH environment variable - note that this library is provided by Oracle and is not provided by SAP. To obtain this library from Oracle, you will need to have a version of the Oracle OCI libraries (e.g. the 'Instant Client') available on the machine (found here for Linux). Again, make sure the bitness of the Oracle Instant Client library matches the bitness of the MobiLink server. Once the Oracle Instant Client libraries are available (be sure to also include the Instant Client library on LD_LIBRARY_PATH) you will need to create a sybolic link from the specific version of the Instant Client library you have installed to the more generic libclntsh.so. i.e. You will have to create one of the following links in the Oracle Instant Client directory:

ln -s libclntsh.so.10.1 libclntsh.so
ln -s libclntsh.so.11.1 libclntsh.so
ln -s libclntsh.so.12.1 libclntsh.so


From there, everything else is loaded from ORACLE_HOME / TNS_ADMIN (for finding tnsnames.ora) as part of the Oracle libraries. i.e.

$ ORACLE_HOME=/opt/oracle/instantclient_12_1
$ export ORACLE_HOME
$ TNS_ADMIN=/opt/oracle/config
$ export TNS_ADMIN
Former Member

thank you so much ,

i would like to tell you that i have sourced the SQL Anywhere environment

i the DMS team has aready installed the client, i m not allowed to but any driver from my side. but since i ran SQL developer on the x64 system i am sure the oracle client is already present in the system.

now ln -s libclntsh.so.10.1 libclntsh.so ln -s libclntsh.so.11.1 libclntsh.so ln -s libclntsh.so.12.1 libclntsh.so

do i need to do these in ORACLE of system ? libclntsh.so.10.1 is present where ?

jeff_albion
Advisor
Advisor
0 Kudos

i the DMS team has aready installed the client, i m not allowed to but any driver from my side. but since i ran SQL developer on the x64 system i am sure the oracle client is already present in the system.

I would get in contact with your 'DMS' team to confirm what is currently installed on the machine and how it is configured. As I mentioned, you need minimally the Oracle Instant Client (link provided above) or full Oracle client installed.

Again, once the Oracle client is installed, there IS NO libclntsh.so file provided from Oracle that our driver is trying to link against. You MUST create this symbolic link YOURSELF using the version of the Oracle Instant client you have installed (e.g. one of libclntsh.10.1, libclntsh.11.1, libclntsh.12.1).

You need to create the symbolic link in the Oracle Instant Client directory on the machine where the MobiLink server is installed. The Instant Client directory must then be present on the LD_LIBRARY_PATH environment variable.