Oracle 失败 "Unable to retrieve text of NETWORK/NCR message 65535",似乎没有读取 initSID.ora
Oracle failing with "Unable to retrieve text of NETWORK/NCR message 65535", seemingly not reading initSID.ora
第一次使用 Oracle 设置 ODBC link。我已经在 listener.ora、tnsnames.ora 和 \hs\admin 中设置了初始化文件,但是数据库 link 总是失败:
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
没有出现跟踪文件,这让我觉得甚至没有读取 init 文件。我可以使用 Access 连接到 ODBC 数据库,所以我知道它可以工作。 ODBC 驱动程序和 DG4ODBC 都是 64 位的。
这是我目前尝试过的方法:
- 我将两个文件中的 HOST 设置为主机名、IP 地址和 [HOSTNAME].[DOMAIN].local,但没有任何变化。
- 我把tnsnames.ora和listener.ora中的连接地址(PROTOCOL/HOST/PORT)改成了一样的,但没有改变。
- 我用随机垃圾替换了侦听器的 HOST,然后 TNSPING 失败了,否则它不会这样做。
- 我在hs\admin中复制了tnsnames.ora.sample、initgd4odbc.ora和listener.ora.sample文件,并在最后建立了一个没有ODBC源的测试连接;但它以同样的方式失败,没有生成跟踪文件。
- 我在 listener.ora 中为 SID_NAME 和 tnsnames.ora 中的 CONNECT_DATA 中的 SID 放置了随机字符,但仍然出现相同的错误,似乎没有其他影响。
这是ora文件。为保护机密性,一些名称已更改,但其他方面未受影响。
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.[DOMAINNAME].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.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLSONLY:C:\app\[MYUSERNAME]\virtual\product.2.0\dbhome_1\bin\oraclr12.dll")
)
(SID_DESC=
(SID_NAME=EXTLINK)
(ORACLE_HOME=C:\app\[MYUSERNAME]\virtual\product.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
连接字符串:
CREATE PUBLIC DATABASE LINK EXTLINK CONNECT TO "Username" IDENTIFIED BY "Pass" USING 'EXTLINK';
改为安装 18c XE,它运行良好,对我来说已经足够了。不过,我不知道为什么它一开始就失败了。
第一次使用 Oracle 设置 ODBC link。我已经在 listener.ora、tnsnames.ora 和 \hs\admin 中设置了初始化文件,但是数据库 link 总是失败:
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
没有出现跟踪文件,这让我觉得甚至没有读取 init 文件。我可以使用 Access 连接到 ODBC 数据库,所以我知道它可以工作。 ODBC 驱动程序和 DG4ODBC 都是 64 位的。
这是我目前尝试过的方法:
- 我将两个文件中的 HOST 设置为主机名、IP 地址和 [HOSTNAME].[DOMAIN].local,但没有任何变化。
- 我把tnsnames.ora和listener.ora中的连接地址(PROTOCOL/HOST/PORT)改成了一样的,但没有改变。
- 我用随机垃圾替换了侦听器的 HOST,然后 TNSPING 失败了,否则它不会这样做。
- 我在hs\admin中复制了tnsnames.ora.sample、initgd4odbc.ora和listener.ora.sample文件,并在最后建立了一个没有ODBC源的测试连接;但它以同样的方式失败,没有生成跟踪文件。
- 我在 listener.ora 中为 SID_NAME 和 tnsnames.ora 中的 CONNECT_DATA 中的 SID 放置了随机字符,但仍然出现相同的错误,似乎没有其他影响。
这是ora文件。为保护机密性,一些名称已更改,但其他方面未受影响。
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.[DOMAINNAME].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.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLSONLY:C:\app\[MYUSERNAME]\virtual\product.2.0\dbhome_1\bin\oraclr12.dll")
)
(SID_DESC=
(SID_NAME=EXTLINK)
(ORACLE_HOME=C:\app\[MYUSERNAME]\virtual\product.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
连接字符串:
CREATE PUBLIC DATABASE LINK EXTLINK CONNECT TO "Username" IDENTIFIED BY "Pass" USING 'EXTLINK';
改为安装 18c XE,它运行良好,对我来说已经足够了。不过,我不知道为什么它一开始就失败了。