(ODBC) Oracle not reading initSID.ora
gatesps Oct 15, 2019 4:21 PMFirst time setting up an ODBC link with Oracle. I've set up the listener.ora, tnsnames.ora, and the init file in \hs\admin, but the database link always fails with:
An error was encountered performing the requested operation:
ORA-28545: error diagnosed by Net8 when connecting to an agent
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: preceding 2 lines from EXTLINK
28545. 0000 - "error diagnosed by Net8 when connecting to an agent"
*Cause: An attempt to call an external procedure or to issue SQL
to a non-Oracle system on a Heterogeneous Services database link
failed at connection initialization. The error diagnosed
by Net8 NCR software is reported separately.
*Action: Refer to the Net8 NCRO error message. If this isn't clear,
check connection administrative setup in tnsnames.ora
and listener.ora for the service associated with the
Heterogeneous Services database link being used, or with
'extproc_connection_data' for an external procedure call.
Vendor code 28545
No trace file appears, which makes me think that the init file isn't even being read. I can connect to the ODBC database using Access, so I know it works. The ODBC drivers and DG4ODBC are both 64-bit.
Any ideas what I'm doing wrong? This is on a 64-bit fresh install of Oracle 12.2.0.1.0 on Windows 10. I've changed some names for confidentiality reasons, but the code is otherwise untouched. The DSN is EXTLINK.
tnsnames.ora:
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.[DOMAIN_NAME].local)
)
)
EXTLINK=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST = [HOSTNAME])(PORT=1521))
(CONNECT_DATA=(SID=EXTLINK))
(HS=OK)
)
listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\[MYUSERNAME]\virtual\product\12.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\[MYUSERNAME]\virtual\product\12.2.0\dbhome_1\bin\oraclr12.dll")
)
(SID_DESC=
(SID_NAME=EXTLINK)
(ORACLE_HOME=C:\app\[MYUSERNAME]\virtual\product\12.2.0\dbhome_1)
(PROGRAM=dg4odbc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = [HOSTNAME])(PORT = 1521))
)
)
CONNECT_TIMEOUT_LISTENER = 0
%ORACLE_HOME\hs\admin\initEXTLINK.ora:
# Windows
HS_FDS_CONNECT_INFO = EXTLINK
HS_FDS_TRACE_LEVEL = 255
HS_FDS_FETCH_ROWS=1
HS_KEEP_REMOTE_COLUMN_SIZE = LOCAL
#HS_NLS_NCHAR=UCS2
HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P1
Connect string:
CREATE PUBLIC DATABASE LINK EXTLINK CONNECT TO "Username" IDENTIFIED BY "Pass" USING 'EXTLINK';