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

eygle發表於2019-06-22

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

在我的監聽日誌中出現錯誤TNS-12502: TNS:listener received no CONNECT_DATA from client
經過查詢資料瞭解到這種錯誤應該是客戶端tnsnames.ora中沒有寫 CONNECT_DA他的原因,我檢查過客戶端的機器沒有發現問題。
目前的現象:
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

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


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

相關文章