Loading
0

Fatal NI connect error 12170.

前段时间将数据库升级到了11.2.0.3,查看alert.log有发现连续报以下错误信息:

上MOS查到文档 ID 1286376.1说这个信息大多数是正常的与超时有关的消息,这个消息指出了一个经历了超时的客户端,这个客户端试图连接但是没有得到响应,或者由于被连接的主机没有响应导致的一个已建立的连接失败,这个信息被写到alert.log里是因为使用了11g新的ADR自动诊断资料库功能,那个功能是被默认启用的,原文如下:

These time out related messages are mostly informational in nature.  The messages indicate the specified client connection (identified by the 'Client address:' details) has experienced a time out.  The 'nt secondary err code' identifies the underlying network transport, such as (TCP/IP) timeout limits after a client has abnormally terminated the database connection.

The 'nt secondary err code' translates to underlying network transport timeouts for the following Operating Systems:

For the Solaris system: nt secondary err code: 145:
ETIMEDOUT 145 /* Connection timed out */

For the Linux operating system: nt secondary err code: 110
ETIMEDOUT 110 Connection timed out

For the HP-UX system: nt secondary err code: 238:
ETIMEDOUT 238 /* Connection timed out */

For AIX: nt secondary err code: 78:
ETIMEDOUT 78 /* Connection timed out */

For Windows based platforms: nt secondary err code: 60 (which translates to Winsock Error: 10060)

Description:  A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

The reason the messages are written to the alert log is related to the use of the new 11g Automatic Diagnostic Repository (ADR) feature being enabled by default.  See (Doc ID 454927.1).

根据MOS提供的解决方法是设置Oracle Net的配置参数使它的诊断追踪信息不再写入到alert.log中,需要修改两个地方:

1.在服务端的sqlnet.ora文件中设置以下参数

2.在服务端的listener.ora中设置以下参数

这个<listenername>根据你实际的监听名称来替换,比如你的监听名称叫'LISTENER',那么这个参数就设置为

3.reload或者restart监听使配置生效

 

 

请尊重我们的辛苦付出,未经允许,请不要转载 Ask600 的文章!