How to configure connection accessing Sybase Anywhere from Sybase IQ via ODBC on Linux

odbcsybasesybase-sql-anywheresybaseiq

I'm trying to access an ASA16 server from IQ16 via ODBC driver. Both servers are installed on the same Linux box.

I've installed unixodbc-bin and added a file .odbc.init into home of user running the databases:

[mes_input]
Driver=/opt/sqlanywhere16/lib64/libdbodbc16_r.so
uid=dba
pwd=SQL
EngineName=mes_input
CommLinks=tcpip(host=127.0.0.1;port=49152)
AutoStop=no
DatabaseName=mes_input

The ASA is running on 49152 on that box; IQ is running default 2638.

Also I've added an entry into interfaces file locking like that:

mes_input
        master tcp ether myserver 49152
        query tcp ether myserver 49152

Back on IQ I can add via Sybase Central the remote server as well as tables from this box. Also testing the connection and is showing no error.

But when I'm now trying to copy some data from ASA via e.g.

INSERT locale_table LOCATION 'mes_input.mes_input' 'SELECT * FROM table'

I'm getting:

Connectivity libraries cannot be found (check your dynamic library
search path).  Selects from attached databases are not possible without
these libraries.  
-- (hqmlib/hqm_cpm.cxx 146)
SQLCODE=-1003005, ODBC 3-Status="HY000"
Zeile 1, Spalte 1

Something I've missed or missconfigured?

Best Answer

Checked official documentation for this error and could see it as below:

Source the SAP IQ setup scripts using the same user that starts the SAP IQ server.

This will set the LD_LIBRARY_PATH and other important environment variables.

The error could be happening due to not setting/wrongful setting of appropriate environment variables on the host on which SAP IQ is running.

You need to set the environment variables on Linux Box.

You may do below for setting these variables:

Change to the SAP IQ parent installation directory and execute one of the following: For the tcsh or C (csh) shell, enter:

source ./IQ.csh

For the Korn (ksh), Bash, or Bourne (sh) shells, enter:

source ./IQ.sh

Hope this helps.