每隔几秒钟listener日志中就出现一次该错误的记录,即使是在没有人使用的情况下也是如此,不过并没有发现客户端机器不能正常连接数据库的情况。

 

    Oracle关于TNS-12502错误的解释:

Error: ORA-12502 / TNS-12502

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 TNSNAMES.ORA has the CONNECT_DATA component of the connect descriptor.

 根据Oracle的说法分析,只有在TNSNAMES.ORA文件中不包含CONNECT_DATA时才会出现此问题。 但实际上当我们通过一些网络工具或HA工具等监测listener端口的时候,日志中就可能会记录该错误。以下是一个模拟的示例,在客户端通过telnet数据库服务器的1521端口测试连通性:

C:>telnet 172.16.30.11 1521

此时在日志中就会记录如下信息:

TNS-12502: TNS:listener received no CONNECT_DATA from client

10-NOV-2009 13:11:03 * 12502

TNS-12502: TNS:listener received no CONNECT_DATA from client

10-NOV-2009 13:11:13 * 12502

TNS-12502: TNS:listener received no CONNECT_DATA from client

10-NOV-2009 13:11:22 * 12502

TNS-12502: TNS:listener received no CONNECT_DATA from client

假如客户端都很正常的话,此类错误可以忽略不计,因为它并未影响到具体的应用。