Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-28500: connection from ORACLE to a non-Oracle system returned this message: [ -> Oracle ODBC to

Vlad DBAJan 15 2019 — edited Jan 17 2019

Hello experts,

Kindly ask for your help!

Am struggling with this error message:

I tried to use different libraries in the odbc.ini file, as below indicated.

Each one returned a different error message. None worked.

ORA-28500: connection from ORACLE to a non-Oracle system returned this message:

[

Config files indicated below:

  • /etc/odbc.ini

[SAP_IQ16]

Driver=/opt/sybase/IQ-16_0/lib64/libdbodbc11.so

UID=<username>

PWD=<password>

DatabaseName=<SID_of_SAP_IQ_db>

DatabaseFile=/opt/sybase/IQ-16_0/dwhdb.db                        

CommLinks=tcpip(MyIP=<IP_address_of_where_I_am>;IP=<IP_of_SAP_IQ16_server>:<PORT_of_SAP_IQ_server>; )

ServerName=dwhdb

#Driver=/opt/sqlanywhere16/lib64/libdbodbc16.so

  • /etc/odbcinst.ini

# Example driver definitions

# Driver from the postgresql-odbc package

# Setup from the unixODBC package

[PostgreSQL]

Description     = ODBC for PostgreSQL

Driver          = /usr/lib/psqlodbc.so

Setup           = /usr/lib/libodbcpsqlS.so

Driver64        = /usr/lib64/psqlodbc.so

Setup64         = /usr/lib64/libodbcpsqlS.so

FileUsage       = 1

# Driver from the mysql-connector-odbc package

# Setup from the unixODBC package

[MySQL]

Description     = ODBC for MySQL

Driver          = /usr/lib/libmyodbc5.so

Setup           = /usr/lib/libodbcmyS.so

Driver64        = /usr/lib64/libmyodbc5.so

Setup64         = /usr/lib64/libodbcmyS.so

FileUsage       = 1

#Driver created manually for SAP_IQ

[dwhdb]

Description     = Sybase SAP IQ 16

Driver          = /opt/sybase/IQ-16_0/lib64/libiqodbc.so

Setup           = /opt/sybase/IQ-16_0/lib64/libiqodbc.so

FileUsage       = 1

  • $ORACLE_HOME/hs/admin/initdwhdb.ora:

# HS init parameters

#

HS_FDS_CONNECT_INFO = dwhdb

HS_FDS_TRACE_LEVEL = 4

#HS_FDS_SHAREABLE_NAME = /opt/sybase/IQ-16_0/lib64/libodbc.so

HS_FDS_SHAREABLE_NAME = /opt/sybase/IQ-16_0/lib64/libiqodbc.so

#HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so.2

HS_LANGUAGE=AMERICAN_AMERICA.AL32UTF8

#

# ODBC specific environment variables

#

#set ODBCINI=/etc/odbc.ini

set ORACLE_HOME=/CRM/oracle/product/11/gw

set SYBASE_JRE7=/opt/sybase/shared/JRE-7_0_7_64BIT

set OLDPWD=/CRM/oracle/.sqlanywhere16

set LD_LIBRARY_PATH=/opt/sybase/IQ-16_0/bin64:/opt/sybase/IQ-16_0/lib64:/CRM/oracle/product/11/gw/lib:/CRM/oracle/product/11/db/lib:/lib:/usr/lib:/usr/lib64

set PATH=/opt/sybase/IQ-16_0/lib64:/opt/sybase/IQ-16_0/bin64:/CRM/oracle/product/11/gw/bin:/CRM/oracle/product/11/db/bin:/usr/sbin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/lib64:/usr/local/sbin:/usr/sbin:/sbin:/CRM/oracle/bin:/CRM/oracle/product/11/db/OPatch

set SYBASE_JRE7_64=/opt/sybase/shared/JRE-7_0_7_64BIT

set ODBCINI=/etc/odbc.ini

set SYBASE_JRE7_32=/opt/sybase/shared/JRE-7_0_7_32BIT

HS_FDS_SUPPORT_STATISTICS = FALSE

  • $ORACLE_HOME_of_Oracle_gateway/network/admin/listener.ora

   (SID_DESC=

         (SID_NAME=dwhdb)

         (ORACLE_HOME=/CRM/oracle/product/11/gw)

         (PROGRAM=/CRM/oracle/product/11/gw/bin/dg4odbc)

         (ENVS ="LD_LIBRARY_PATH=/opt/sybase/IQ-16_0/bin64:/opt/sybase/IQ-16_0/lib64:/CRM/oracle/product/11/gw/lib:/CRM/oracle/product/11/db/lib:/lib:/usr/lib:/usr/lib64:$ORACLE_HOME/lib")

  • Please note that isql works OK.

isql -v SAP_IQ16

+---------------------------------------+

| Connected!                            |

|                                       |

| sql-statement                         |

| help [tablename]                      |

| quit                                  |

|                                       |

+---------------------------------------+

SQL> quit

  • Tried to see what libraries is isql using and make sure to include the one that it is using, as kindly suggested by a colleague on this forum! Thank you for that! Unfortunately, it did not do the trick, as below indicated:

which isql

/usr/bin/isql

ldd /usr/bin/isql

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

        libodbc.so.2 => /usr/lib64/libodbc.so.2 (0x00000039ca400000)

        libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00000039d6000000)

        libreadline.so.6 => /lib64/libreadline.so.6 (0x00000039ca000000)

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

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

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

        libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000039d5c00000)

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

Trace files and the error messages got when using different libraries:

  • Trace file while using libiqodbc.so in the initdwhdb.ora parameter file:

          HS_FDS_SHAREABLE_NAME = /opt/sybase/IQ-16_0/lib64/libiqodbc.so

##>Connect Parameters (len=31)<##

## DSN=dwhdb;

#! UID=<username>;

#! PWD=*

Exiting hgogenconstr, rc=0 at 2019/01/15-18:25:29

Entered hgopoer at 2019/01/15-18:25:29

hgopoer, line 231: got native error -95 and sqlstate 0; message follows...

[

Exiting hgopoer, rc=0 at 2019/01/15-18:25:29

hgocont, line 2831: calling SqlDriverConnect got sqlstate 0

Exiting hgocont, rc=28500 at 2019/01/15-18:25:29 with error ptr FILE:hgocont.c LINE:2851 FUNCTION:hgocont() ID:Something other than invalid authorization

Exiting hgolgon, rc=28500 at 2019/01/15-18:25:29 with error ptr FILE:hgolgon.c LINE:806 FUNCTION:hgolgon() ID:Calling hgocont

Entered hgoexit at 2019/01/15-18:25:29

Exiting hgoexit, rc=0

  • Trace file while using libodbc.so in the initdwhdb.ora parameter file:

HS_FDS_SHAREABLE_NAME = /opt/sybase/IQ-16_0/lib64/libodbc.so

##>Connect Parameters (len=31)<##

## DSN=dwhdb;

#! UID=<username>;

#! PWD=*

Exiting hgogenconstr, rc=0 at 2019/01/15-18:26:58

Entered hgopoer at 2019/01/15-18:26:58

hgopoer, line 231: got native error -95 and sqlstate 0; message follows...

[

Exiting hgopoer, rc=0 at 2019/01/15-18:26:58

hgocont, line 2831: calling SqlDriverConnect got sqlstate 0

Exiting hgocont, rc=28500 at 2019/01/15-18:26:58 with error ptr FILE:hgocont.c LINE:2851 FUNCTION:hgocont() ID:Something other than invalid authorization

Exiting hgolgon, rc=28500 at 2019/01/15-18:26:58 with error ptr FILE:hgolgon.c LINE:806 FUNCTION:hgolgon() ID:Calling hgocont

Entered hgoexit at 2019/01/15-18:26:58

Exiting hgoexit, rc=0

PS: all libraries referenced in /opt/sybase/IQ-16_0/lib64 are actually symbolic links to the same one library, /libdbodbc16.so:

ls -larth *odbc*

-rwxr-xr-x 1 root root 427K Feb 26  2013 libdbodbc16.so

-rwxr-xr-x 1 root root 9.7M Feb 26  2013 libdbodbc16_n.so

-rwxr-xr-x 1 root root 9.8M Feb 26  2013 libdbodbc16_r.so

-rwxr-xr-x 1 root root 2.5M Feb 26  2013 libdbodbcinst16_r.so

-rwxr-xr-x 1 root root 9.8M Feb 26  2013 libdbodbcansi16_r.so

-rwxr-xr-x 1 root root 2.7M Feb 26  2013 libdbjodbc16.so

lrwxrwxrwx 1 root root   16 Jan 10 09:50 libodbc.000 -> ./libdbodbc16.so

lrwxrwxrwx 1 root root   16 Jan 10 09:50 libiqodbc.000 -> ./libdbodbc16.so

lrwxrwxrwx 1 root root   16 Jan 10 09:50 libdbodbc11.000 -> ./libdbodbc16.so

lrwxrwxrwx 1 root root   16 Jan 10 09:50 libdbodbc12.000 -> ./libdbodbc16.so

lrwxrwxrwx 1 root root   16 Jan 14 15:24 libodbc.so -> ./libdbodbc16.so

lrwxrwxrwx 1 root root   16 Jan 14 15:24 libiqodbc.so -> ./libdbodbc16.so

lrwxrwxrwx 1 root root   16 Jan 14 15:24 libdbodbc11.so -> ./libdbodbc16.so

lrwxrwxrwx 1 root root   16 Jan 14 15:24 libdbodbc12.so -> ./libdbodbc16.so

  • Trace file while using the libodbc.so.2 in the initdwhdb.ora parameter file, the one that is referenced by isql in the ldd command:

ldd /usr/bin/isql

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

        libodbc.so.2 => /usr/lib64/libodbc.so.2 (0x00000039ca400000)

        libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00000039d6000000)

        libreadline.so.6 => /lib64/libreadline.so.6 (0x00000039ca000000)

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

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

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

        libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000039d5c00000)

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

HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so.2

##>Connect Parameters (len=31)<##

## DSN=dwhdb;

#! UID=<username>;

#! PWD=*

Exiting hgogenconstr, rc=0 at 2019/01/15-18:34:15

Entered hgopoer at 2019/01/15-18:34:15

hgopoer, line 231: got native error 0 and sqlstate I; message follows...

[

Exiting hgopoer, rc=0 at 2019/01/15-18:34:15

hgocont, line 2831: calling SqlDriverConnect got sqlstate I

Exiting hgocont, rc=28500 at 2019/01/15-18:34:15 with error ptr FILE:hgocont.c LINE:2851 FUNCTION:hgocont() ID:Something other than invalid authorization

Exiting hgolgon, rc=28500 at 2019/01/15-18:34:15 with error ptr FILE:hgolgon.c LINE:806 FUNCTION:hgolgon() ID:Calling hgocont

Entered hgoexit at 2019/01/15-18:34:15

Exiting hgoexit, rc=0

  • DB link creation DDL:

CREATE PUBLIC DATABASE LINK DWHDB_LINK CONNECT TO "<username>" IDENTIFIED BY <PWD> USING 'dwhdb';

Thank you, experts!

Really looking forward to your expert opinion!

This post has been answered by Vlad DBA on Jan 17 2019
Jump to Answer
Comments
Post Details
Added on Jan 15 2019
4 comments
2,084 views