Posted on 2011-05-18 11:46
IceWee 閱讀(866)
評(píng)論(0) 編輯 收藏 所屬分類:
Database
ORA-12516: TNS: 監(jiān)聽程序找不到符合協(xié)議堆棧要求的可用處理程
以前沒有遇到過這個(gè)錯(cuò)誤,一般常見的就是ORA-12514,這個(gè)錯(cuò)誤是第一次遇到,我們是用SSH框架的,數(shù)據(jù)庫(kù)鏈接由spring來管理,所以不擔(dān)心連接不能及時(shí)釋放的問題。但是現(xiàn)在數(shù)據(jù)庫(kù)不只是我們做web的在使用,還有做通訊的同事,今天上午突然發(fā)現(xiàn)PL/SQL連不上數(shù)據(jù)庫(kù)了,報(bào)的就是這個(gè)錯(cuò)誤。
網(wǎng)上查找資料發(fā)現(xiàn)出現(xiàn)這個(gè)問題是由于Oracle的會(huì)話數(shù)不夠?qū)е碌?,使用命?#8220;show parameter processes;”,返回
NAME TYPE VALUE
----------------------------------- ------------- ------------
aq_tm_processes integer 0
db_writer_processes integer 1
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 150
可見當(dāng)前最大連接數(shù)是150,于是我到數(shù)據(jù)庫(kù)服務(wù)器使用DBA登陸,結(jié)果也登陸不上,報(bào)錯(cuò)ORA-12520,看來問題很嚴(yán)重??!我查看了listener.log,發(fā)現(xiàn)有個(gè)IP創(chuàng)建了很多的鏈接,最終鎖定問題原因,就是因?yàn)橥聸]有及時(shí)釋放連接導(dǎo)致連接數(shù)不夠。解決此法最好是程序上注意,使用后及時(shí)釋放,如果你寫的是循環(huán),那就很危險(xiǎn)了。也可以修改最大連接數(shù),如果服務(wù)器能頂?shù)米 ?/p>