前几天收到一位读者朋友的来信询问以下问题
在我的监听日志中出现错误TNS: TNS:listener received no CONNECT_DATA from client
经过查找资料了解到这种错误应该是客户端tnsnamesora中没有写 CONNECT_DATA的原因我检查过客户端的机器没有发现问题
目前的现象
每几分钟出现一次该错误(见附件)即使是在凌晨的时候也是这段时间我们没有开发人员在凌晨时候使用Oracle
到目前为止也没有发现客户端机器不能正常连接数据库的情况
今天才有时间研究一下对于TNS错误Oracle的解释如下
Error:ORA / TNS
Text:TNS:listener received no CONNECT_DATA from client
Cause:No CONNECT_DATA was passed to the listener
Action:Check that the service name resolved from TNSNAMESORA has the
CONNECT_DATA component of the connect descriptor
也就是说只有在TNSNAMESORA文件中不包含CONNECT_DATA时会出现此问题
那么当通过一些网络工具或HA工具等检测监听器端口时日志中就可能记录如上错误我们可以简单模拟一下在客户端通过telnet数据库服务器的端口测试连通性
C:\>telnet
此时在日志中就会记录如下信息
TNS
: TNS:listener received no CONNECT_DATA from client
AUG :: *
TNS: TNS:listener received no CONNECT_DATA from client
AUG :: *
TNS: TNS:listener received no CONNECT_DATA from client
AUG :: *
TNS: TNS:listener received no CONNECT_DATA from client
如果客户端都正常的话此类错误并不会影响应用当然也可以彻底检查找出根本原因