Fatal NI connect error 12170

germany006發表於2013-10-12
轉載地址:

今天在一臺伺服器的日誌檔案中,發現如下資訊:

Fatal NI connect error 12170.
 
  VERSION INFORMATION:
    TNS for Linux: Version 11.1.0.7.0 - Production
    Unix Domain Socket IPC NT Protocol Adaptor for Linux: Version 11.1.0.7.0 - Production
    Oracle Bequeath NT Protocol Adapter for Linux: Version 11.1.0.7.0 - Production
    TCP/IP NT Protocol Adapter for Linux: Version 11.1.0.7.0 - Production
  Time: 08-NOV-2011 13:57:10
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12535
     
TNS-12535: TNS:operation timed out
    ns secondary err code: 12560
    nt main err code: 505
     
TNS-00505: Operation timed out
    nt secondary err code: 110
    nt OS err code: 0
  Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.100.107.62)(PORT=52357))

檢視mos,有幸發現關於該錯誤的相關文章
Fatal NI connect error 12170′, ‘TNS-12535: TNS:operation timed out’ Reported in 11g Alert Log [ID 1286376.1]
做了一些摘要,算是給自己做個記錄,也給不能訪問mos的朋友一個參考

1、適用範圍

Oracle Net Services - Version: 11.1.0.6 to 11.2.0.2 - Release: 11.1 to 11.2
Oracle Server - Enterprise Edition - Version: 11.1.0.6 to 11.2.0.2   [Release: 11.1 to 11.2]
Information in this document applies to any platform.

2、問題原因

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:
 
#define 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 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.
3、解決問題
To revert to Oracle Net Server tracing/logging, set following parameter in the server's sqlnet.ora :
 
DIAG_ADR_ENABLED = OFF
 
Also, to back out the ADR diag for the Listener component, set following parameter in the server's listener.ora:
 
DIAG_ADR_ENABLED_ = OFF
 
   - Where the would be replaced with the actual name of the configured listener(s) in the listener.ora configuration file.  For example, if the listener name is 'LISTENER', the parameter would read:
 
DIAG_ADR_ENABLED_LISTENER = OFF
 
-Reload or restart the TNS Listener for the parameter change to take effect.
說明:這個問題是由於Automatic Diagnostic Repository中的 Oracle Net diagnostic在預設的情況下是開啟的,當資料庫和客戶端的連線超過特定時間,就會把這樣的資訊寫入到alert日誌中,所以這不是一個致命的問題,如果偶爾出現,可以忽略有點類此ora-3136的錯誤

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28371090/viewspace-774210/,如需轉載,請註明出處,否則將追究法律責任。

相關文章