检查我们的一台ORACLE数据库的监听日志发现有不少TNS-12502错误信息。如下所示
TNS-12502: TNS:listener received no CONNECT_DATA from client
09-DEC-2014 15:47:06 * (CONNECT_DATA=(SERVICE_NAME=epps)(CID=(PROGRAM=D:TasksFGIS2MESCEGgmt_auto.exe)(HOST=CEGWEB1)(USER=cegadmin))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.163.21.14)(PORT=2312)) * establish * epps * 0
$ oerr tns 12502
12502, 00000, "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 TNSNAMES.ORA has
// the CONNECT_DATA component of the connect descriptor.
一般出现这个错误是因为客户端tnsnames.ora中没有包含CONNECT_DATA导致,但是如上所示,客户端tnsnames.ora中已经包含了CONNECT_DATA数据,大部分时候正常,但是偶尔又会在listener.log里面发现该错误信息,而且完全没有规律可言,最后在Oracle的TNS-12502 错误原因及解决这篇文章中了解到,客户端通过telnet数据库服务器的1521端口测试连通性,也会出现如下错误。如下所示:
telnet 192.168.20.11 1521
查看/u01/app/oracle/product/10.2.0/db_1/network/log/listener.log 如下所示,你会看到TNS-12525错误信息。
12-DEC-2014 20:40:33 * <unknown connect data> * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.125.113)(PORT=52651)) * establish * <unknown sid> * 12525
TNS-12525: TNS:listener has not received client's request in time allowed
TNS-12535: TNS:operation timed out
TNS-12606: TNS: Application timeout occurred
12-DEC-2014 20:40:37 * service_update * epps * 0
但是这个跟在监听日志中发现的错误信息有所区别:TNS-12502: TNS:listener received no CONNECT_DATA from client,我统计了TNS-12502错误出现的时间点也很难发现什么规律。很奇怪的是这个错误也不影响用户的使用。到目前为止,也一直没有弄明白为什么会出现这个错误。暂且做个记录,留待以后研究解决!
参考资料:
http://www.eygle.com/archives/2006/08/oracle_tns_12502.html