Oracle的TNS-12502錯誤原因及解決方法
錯誤現象:
1、每隔幾分鐘出現一次上面的錯誤,即使在沒有人使用Oracle的情況下也會出現。
2、直到現在也沒有發現客戶端機器不能正常連接數據庫的情況。
錯誤分析:
Oracle關于TNS-12502錯誤的解釋:
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
假如客戶端都很正常的話,此類錯誤可以忽略不計,因為它并不會影響到具體的應用。