萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> Oracle的TNS-12502錯誤原因及解決

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

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

在我的監聽日志中出現錯誤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

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

copyright © 萬盛學電腦網 all rights reserved