从networking共享上的应用程序连接失败

编辑:我testing了更多…如果我从Windows目录nslookup复制到我映射的networking驱动器,它不能'parsing主机名:

H:\nslookup dbserver (null) UnKnown Address: 192.168.0.195 

如果我使用默认nslookup从C ::

 C:\>nslookup dbserver Server: dnsserver.dom.local Address: 192.168.0.195 Name: dbserver.dom.local Address: 192.168.0.231 

所以和oracle没有任何关系,我会改变标题和标签。


我的同事创build的应用程序使用安装的Oracle客户端连接到远程Oracle-DB。 从DFS上映射的驱动器(在两台服务器上)运行这些应用程序会导致连接成功。 从另一台服务器(独立文件服务器)上的映射驱动器运行它们将导致连接。 我通过Wireshark跟踪它,发现甚至没有尝试build立连接(根本没有oracle-packets正在退出客户端)。

我禁用了数据库服务器,filter和客户端上的防火墙,但无济于事。 所有映射的networking驱动器(DFS和标准文件服务器)已被放入Intranet区域。

如果我从本地Oracle客户端安装中使用tnsping ,则可以parsing主机:

 OK (20 ms) 

如果我使用tnsping放置到文件服务器上映射的networking驱动器,我不能:

 TNS-12545: Connect failed because target host or object does not exist 

到同一个Oracle-DB。

我在这里不知所措,看看下面失败的尝试日志摘录:

 nfun2awanm: Getting the path of sqlnet.ora nnfun2awanm: Getting the adapter name nnfun2awanm: exit nsmal: 216 bytes at 0x75e228 nscall: connecting... snlinGetAddrInfo: entry snlinGetAddrInfo: getaddrinfo() failed with error 11003 snlinGetAddrInfo: exit nlad_expand_hst: GetAddrInfo call failed nladini: entry nladini: exit nladget: entry nladget: exit nsmal: 89 bytes at 0x7b2c48 nsc2addr: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbserver)(PORT=1521))(CONNECT_DATA=(SID=instance))) nttbnd2addr: entry snlinGetAddrInfo: entry snlinGetAddrInfo: getaddrinfo() failed with error 11001 snlinGetAddrInfo: exit nttbnd2addr: looking up IP addr for host: dbserver snlinGetAddrInfo: entry snlinGetAddrInfo: getaddrinfo() failed with error 11003 snlinGetAddrInfo: exit nttbnd2addr: *** hostname lookup failure! *** nttbnd2addr: exit nserror: nsres: id=0, op=77, ns=12545, ns2=12560; nt[0]=515, nt[1]=1003, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0 nsmfr: 89 bytes at 0x7b2c48 nscall: connecting... nladget: entry nladget: exit 

与成功的绷带相比:

 nnfun2awanm: Getting the path of sqlnet.ora nnfun2awanm: Getting the adapter name nnfun2awanm: exit nsmal: 216 bytes at 0x31426e8 nscall: connecting... snlinGetAddrInfo: entry snlinGetAddrInfo: exit snlinGetNameInfo: entry snlinGetNameInfo: exit snlinFreeAddrInfo: entry snlinFreeAddrInfo: exit nladini: entry nladini: exit nladget: entry nladget: exit nsmal: 95 bytes at 0x30f3158 nsc2addr: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.231)(PORT=1521))(CONNECT_DATA=(SID=instance))) nttbnd2addr: entry snlinGetAddrInfo: entry snlinGetAddrInfo: exit nttbnd2addr: using host IP address: 192.168.0.231 snlinFreeAddrInfo: entry snlinFreeAddrInfo: exit nttbnd2addr: exit nsmal: 996 bytes at 0x3142bc8 nsmal: 2120 bytes at 0x3142fb8 nsmal: 84 bytes at 0x3143948 nsopen: opening transport... nttcon: entry nttcon: toc = 1 nttcnp: entry nttcnp: exit nttcni: entry nttcni: Tcp conn timeout = 60000 (ms) nttctl: entry nttctl: Setting connection into non-blocking mode nttcni: trying to connect to socket 564. ntt2err: entry ntt2err: exit ntctst: size of NTTEST list is 1 - not calling poll nttctl: entry nttctl: Clearing non-blocking mode snlinGetNameInfo: entry snlinGetNameInfo: exit nttcni: connected on ipaddr 192.168.0.99 nttcni: exit nttcon: set TCP_NODELAY on 564 nttcon: exit nsopen: transport is open 

通过将这些结果粘贴到serverfault,我意识到成功的尝试可以通过DNSparsing主机名,失败的不能。 所以它似乎甚至不涉及Oracle?

这是一个主机名parsing问题,如你所想,在独立的服务器上。

使用名称dbserver的独立服务器上的TNS别名似乎与使用IP 192.168.0.231的tnsping正在工作的服务器上的别名不同。

您可以修改独立服务器上的tnsnames.ora文件以使用IP 192.168.0.231或向hosts文件添加条目以parsing名称dbserver