Database link to SQL Server Init error
666660Oct 22 2008 — edited Feb 12 2009Hi all,
i´m tryng to create a dblink between Oracle 10.2.0 in a RHEL4 and a SQL Server.
I can connect using isql but when i try using sqlplus i obtain this error:
SQL> CREATE DATABASE LINK dbl
CONNECT TO "user"
IDENTIFIED BY "pwd"
USING 'hsodbc'; 2 3 4
Enlace con la base de datos creado.
SQL> SELECT * FROM Table_1@dbl;
SELECT * FROM Table_1@dbl
*
ERROR en línea 1:
ORA-28545: error diagnosticado por Net8 al conectar a un agente (error in Net8 while connecting an agent)
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: 2 lines precediendo a DBL
This is the error explanantion in Oracle Docs:
I think the problem is the ini file inithsodbc.ora.
----------------------------------------
inithsodbc.ora
----------------------------------------
# This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent.
#
# HS init parameters
# AAB - Parametros para asociar un agente ODBC al HS
HS_FDS_CONNECT_INFO = MSQLS
HS_FDS_TRACE_LEVEL = ON
HS_FDS_SHAREABLE_NAME =/usr/local/freetds/lib/libtdsodbc.so
HS_AUTOREGISTER = true
#
# ODBC specific environment variables
#
set ODBCINI=/home/oracle/.odbc.ini
----------------------------------------
listener.ora
----------------------------------------
# listener.ora Network Configuration File: /app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = STA2)
(ORACLE_HOME = /app/oracle/oracle/product/10.2.0/db_1)
)
(SID_DESC = (SID_NAME=hsodbc)
(ORACLE_HOME=/app/oracle/oracle/product/10.2.0/db_1)
(PROGRAM=hsodbc)
(ENVS=LD_LIBRARY_PATH=/app/oracle/oracle/product/10.2.0/db_1/lib:/usr/local/lib)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = nemesisgr2.hi.inet)(PORT = 1521))
)
)
----------------------------------------
tnsnames.ora
----------------------------------------
# tnsnames.ora Network Configuration File: /app/oracle/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
DEVSTA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = nemesisgr.hi.inet)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = devSTA)
)
)
STA2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = nemesisgr2.hi.inet)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = STA2)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
STA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = nemesisgr2.hi.inet)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = STA)
)
)
#AAB - Descripcion de servicio para conectar con SQLServer
HSODBC = (DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)
(HOST=nemesisgr2.hi.inet)
(PORT=1521)
)
(CONNECT_DATA = (SID=hsodbc)
)
(HS = OK)
)
ODBC Files
----------------------------------------
odbc.ini
----------------------------------------
[ODBC Data Sources]
MSQLS = Microsoft SQL Server
[MSQLS]
Driver = /usr/local/freetds/lib/libtdsodbc.so
Description = Microsoft SQL Server
Trace = No
Servername = sqlserver
Database = master
[Default]
Driver = /usr/local/freetds/lib/libtdsodbc.so
----------------------------------------
odbcinst.ini
----------------------------------------
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/libodbcpsql.so
Setup = /usr/lib/libodbcpsqlS.so
FileUsage = 1
[MSQLSDRIVER]
Description = Driver for MS SQL Server
Driver = /usr/local/freetds/lib/libtdsodbc.so
Setup = /usr/lib64/libtdsS.so
FileUsage = 1
UsageCount = 5
----------------------------------------
freetds.conf
----------------------------------------
# $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $
#
# This file is installed by FreeTDS if no file by the same
# name is found in the installation directory.
#
# For information about the layout of this file and its settings,
# see the freetds.conf manpage "man freetds.conf".
# Global settings are overridden by those in a database
# server specific section
[global]
# TDS protocol version
; tds version = 4.2
# Whether to write a TDSDUMP file for diagnostic purposes
# (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff
# Command and connection timeouts
; timeout = 10
; connect timeout = 10
# If you get out-of-memory errors, it may mean that your client
# is trying to allocate a huge buffer for a TEXT field.
# Try setting 'text size' to a more reasonable limit
text size = 64512
# A typical Sybase server
[egServer50]
host = symachine.domain.com
port = 5000
tds version = 5.0
# A typical Microsoft server
[egServer70]
host = ntmachine.domain.com
port = 1433
tds version = 7.0
# Test MS SQl Server
[sqlserver]
Database = master
host = pruebas.hi.inet
port = 1433
tds version = 7.0
Any ideas??
Thanks in advance.
Alex