參考文章:
原因:數(shù)據(jù)庫(kù)down掉了,或者網(wǎng)絡(luò)斷了,連接connection無(wú)效,未驗(yàn)證,拋出此異常。當(dāng)數(shù)據(jù)庫(kù)連接因?yàn)槟撤N原因斷掉(有可能時(shí)網(wǎng)絡(luò)問(wèn)題,導(dǎo)致App Server跑了一天后,第二天再跑馬上爆錯(cuò)誤),再?gòu)腃onnection Pool中獲取連接而又不做Validate,這時(shí)候取得的Connection實(shí)際上已經(jīng)是無(wú)效的了,從而導(dǎo)致程序一跑,馬上爆Connect Reset錯(cuò)誤。
在Tomcat的Server.xml中添加_testOnBorrow,_testOnReturn,_testWhileIdle,并且都設(shè)置為true,同時(shí)validationQuery添加驗(yàn)證語(yǔ)句可避免“Connection Reset”error。
<Resource name="lda/raw"
type="javax.sql.DataSource"
password="lda_master"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="30" minIdle="2" maxWait="60000" maxActive="1000"
testOnBorrow="true" testWhileIdle="true" validationQuery="select 1 from dual"
username="lda_master" url="jdbc:oracle:thin:@192.160.100.107:15537:lcststd"/>
Gavin