Problem using DG4ODBC with named SQL Server instance

I am running DG4ODBC on a 64 bit LINUX machine with the Microsoft SQL Server driver installed. I have successfully tested this with a SQL Server instance that was not named (GENERALI_DSN).The named instance gives the following when trying to query:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[unixODBC][Microsoft][SQL Server Native Client 11.0]Login timeout expired {HYT00}[unixODBC][Microsoft][SQL Server Native Client 11.0]SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].  {08001,NativeErr = -1}[unixODBC][Microsoft][SQL Server Native Client 11.0]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. {08001,NativeErr = -1}
ORA-02063: preceding 2 lines from DEVMISC
odbc.ini
[GENERALI_DSN]
Driver                  = SQL Server Native Client 11.0
Server                  = CLTDMJCWBYZ.eu.scor.local
User                    = everest
Password                = everest
Database                = Everest_Generali
[DEVMISC_DSN]
Driver                  = SQL Server Native Client 11.0
Server                  = [USVCLTDEVSQL02\DEVMISC]
User                    = link_user
Password                = password1
Database                = DBA
initDG4ODBC2.ora
# HS init parameters
HS_FDS_CONNECT_INFO = DEVMISC_DSN
HS_FDS_TRACE_LEVEL = DEBUG
HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
# ODBC specific environment variables
set ODBCINI=/home/oracle/.odbc.ini
listener.ora
SID_LIST_LISTENER_GW =
   (SID_LIST =
      (SID_DESC =
       (SID_NAME=DG4ODBC)
      (ORACLE_HOME=/home/oracle/product/11.2.0)
      (ENV=LD_LIBRARY_PATH=/usr/lib64:/home/oracle/product/11.2.0/lib:/opt/micro
soft/sqlncli/lib)
      (PROGRAM=dg4odbc)
      (SID_DESC =
       (SID_NAME=DG4ODBC2)
      (ORACLE_HOME=/home/oracle/product/11.2.0)
      (ENVS=LD_LIBRARY_PATH=/usr/lib64:/home/oracle/product/11.2.0/lib:/opt/micr
osoft/sqlncli/lib)
      (PROGRAM=dg4odbc)
LISTENER_GW =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = usvcltprdoragw)(PORT = 1521))
tnsnames.ora
DG4ODBC =
   (DESCRIPTION=
      (ADDRESS=(PROTOCOL=tcp)(HOST=usvcltprdoragw)(PORT=1521))
      (CONNECT_DATA=(SID=DG4ODBC))
      (HS=OK)
DG4ODBC2 =
   (DESCRIPTION=
      (ADDRESS=(PROTOCOL=tcp)(HOST=usvcltprdoragw)(PORT=1521))
      (CONNECT_DATA=(SID=DG4ODBC2))
      (HS=OK)
I can't figure out why the named instance does not work but the other one does. Any help would be greatly appreciated!
Advertisement
Reply

Did you check with the ODBC test utility isql (it is installed by default when you install the unixODBC Driver manager) if your ODBC driver can connect at all to that named instance? I have some doubts that it will work either as there was a blog commented by a MS engineer:
Introducing the new Microsoft ODBC Drivers for SQL Server - Microsoft SQLNCli team blog - Site Home - MSDN Blogs
who states that named instance connections are not supported using that driver.
- Klaus