当使用OraOLEDB测试新创建的连接时,我正在解决“网络服务名称”的一个特有问题,从而以某种方式引起了不相关的问题。我们的旧数据库名称与我们的域名相同(该域是在数据库投入生产后很晚才设计和实现的)
这是定义Oracle Net Service名称的方式:
KAZEMA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.200)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = KAZEMA)
)
)
,我们的内部域为KAZEMA.COM
。如果我尝试为ORACLE连接创建一个UDL文件,将Net Service Name命名为KAZEMA
,则会收到TNS超时错误并且对Net Service Name进行较小的更改,例如KAZEMA1
会建立连接而没有任何抱怨。 。但是,除了UDL之外,此网络服务名称不会影响VS或SSMA等(到目前为止)的任何其他连接尝试。
我对此行为做了一些解释。
答案 0 :(得分:0)
好的,对我之前的评论表示歉意,该评论在发布前并未经过两次测试。通过启用对连接尝试的跟踪,我找到了“问题”。 我在\ user \ desktop上有一个tnsnames.ora文件的副本,由于我不知道的原因,.udl文件在尝试建立连接时将tnsnames.ora的副本用作本地文件。
2018-12-09 17:23:51.970 : nnftmlf_make_local_addrfile:local names file is C:\Users\rthampi\Desktop\tnsnames.ora
2018-12-09 17:23:51.970 : nnftmlf_make_local_addrfile:exit
2018-12-09 17:23:51.970 : nlpaxini:entry
2018-12-09 17:23:51.970 : nlpaxini:exit
2018-12-09 17:23:51.970 : nnftmlf_make_system_addrfile:entry
2018-12-09 17:23:51.970 : nnftmlf_make_system_addrfile:system names file is D:\oracle\product\12.2.0\dbhome_1\network\admin\tnsnames.ora
2018-12-09 17:23:51.970 : nnftmlf_make_system_addrfile:exit
2018-12-09 17:23:51.970 : nnftboot:exit
2018-12-09 17:23:51.970 : nnftrne:entry
2018-12-09 17:23:51.970 : nnftrne:Original name: KAZEMA
此tnsnames.ora副本具有相同的网络服务名称和不同的IP地址,从而导致TNS超时错误。