您好,登錄后才能下訂單哦!
項目環(huán)境
數(shù)據(jù)庫:oracle
中間件:WAS
2. 問題描述
2015.05.21(是個好日子),早上發(fā)現(xiàn)was后臺報錯如下:
[15-5-21 7:31:01:171 CST] 00000027 SystemErr R com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@498e498e -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
3.問題解決過程
從網(wǎng)上百度下這個錯誤,分析大致如下:
原因是 hibernate 使用c3p0連接orcale數(shù)據(jù)后不會釋放 , c3p0的最大連接數(shù)為100,但顯然c3p0有Bug,導(dǎo)致數(shù)據(jù)庫連接池不夠用,導(dǎo)致進程鎖死。
后換Proxool后,觀察正常。
參考網(wǎng)址:http://blog.csdn.net/chinesesword/article/details/7902702
http://blog.sina.com.cn/s/blog_5491164b0100sxtc.html
http://myzee.blog.163.com/blog/static/2088712420121110139423/
http://www.blogjava.net/liuyimx/articles/296849.html
綜合參考網(wǎng)站,修改了oracle的連接數(shù)如下:
1、修改Oracle最大連接數(shù)的方法
a、以sysdba身份登陸PL/SQL 或者 Worksheet
b、查詢目前連接數(shù)
show parameter processes;
c、更改系統(tǒng)連接數(shù)
alter system set processes=1000 scope=spfile;
d、創(chuàng)建pfile
create pfile from spfile;
e、重啟Oracle服務(wù)或重啟Oracle服務(wù)器
修改后,當時報錯指向是c3p0的設(shè)置參數(shù),沒有報APPARENT DEADLOCK!!!錯誤,但是過了幾個小時后開始報APPARENT DEADLOCK!!!錯誤
聯(lián)系開發(fā)人員開發(fā)人員告知:
在\WEB-INF\classes\hibernate.cfg.xml文件中去掉相關(guān)配置
<!--<property name="hibernate.c3p0.min_size">5</property>-->
<!-- <property name="hibernate.c3p0.max_size">500</property>-->
<!-- <property name="hibernate.c3p0.timeout">1800</property>-->
<!-- <property name="hibernate.c3p0.max_statements">50</property> -->
---即將hibernate配置文件中的c3p0配置參數(shù)注釋掉
重啟was ,然后跑個etl任務(wù)測試下,沒有發(fā)現(xiàn)再次報此錯誤。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。