程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle的TNS-12502錯誤原因及解決

Oracle的TNS-12502錯誤原因及解決

編輯:Oracle數據庫基礎

前幾天收到一位讀者朋友的來信,詢問以下問題:

在我的監聽日志中出現錯誤TNS-12502: TNS:listener received no CONNECT_DATA from clIEnt

經過查找資料了解到這種錯誤應該是客戶端tnsnames.ora中沒有寫 CONNECT_DATA的原因,我檢查過客戶端的機器沒有發現問題。

目前的現象:

1、每幾分鐘出現一次該錯誤(見附件),即使是在凌晨的時候也是,這段時間我們沒有開發人員在凌晨時候使用Oracle。

2、到目前為止也沒有發現客戶端機器不能正常連接數據庫的情況。

今天才有時間研究一下,對於TNS-12502錯誤,Oracle的解釋如下:

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.

也就是說只有在TNSNAMES.ORA文件中不包含CONNECT_DATA時會出現此問題。

那麼當通過一些網絡工具或HA工具等檢測監聽器端口時,日志中就可能記錄如上錯誤。我們可以簡單模擬一下,在客戶端通過telnet數據庫服務器的1521端口測試連通性:

C:>telnet 172.16.30.11 1521

此時在日志中就會記錄如下信息:

TNS-12502:
TNS:listener received no CONNECT_DATA from clIEnt
09-AUG-2006 16:21:03 * 12502
TNS-12502: TNS:listener received no CONNECT_DATA from clIEnt
09-AUG-2006 16:21:13 * 12502
TNS-12502: TNS:listener received no CONNECT_DATA from clIEnt
09-AUG-2006 16:21:22 * 12502
TNS-12502: TNS:listener received no CONNECT_DATA from clIEnt

如果客戶端都正常的話,此類錯誤並不會影響應用,當然也可以徹底檢查找出根本原因。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved