秋日里的螢火蟲
BlogJava
首頁
新隨筆
新文章
聯(lián)系
聚合
管理
posts - 42,comments - 83,trackbacks - 0
<
2011年3月
>
日
一
二
三
四
五
六
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
本Blog文章為fjin原創(chuàng),轉(zhuǎn)載請注明出處及作者. MSN: jinfh77@hotmail.com
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(16)
給我留言
查看公開留言
查看私人留言
隨筆分類
Database (5)
FJin Dev (1)
Java Technology (7)
Sharing(1)
Unix && Linux
Weblogic (26)
隨筆檔案
2013年10月 (1)
2011年3月 (1)
2010年9月 (1)
2009年12月 (1)
2009年9月 (4)
2009年8月 (2)
2009年7月 (3)
2009年6月 (5)
2009年5月 (2)
2009年4月 (3)
2009年2月 (2)
2009年1月 (3)
2008年12月 (1)
2008年11月 (4)
2008年10月 (2)
2008年9月 (7)
文章分類
Database
FJin Dev
Java Technology
Unix && Linux
Weblogic
文章檔案
2009年1月 (1)
搜索
最新評論
1.?re: Weblogic10.3.5 數(shù)據(jù)庫連接被異常回收問題解析
感覺寫的非常好,很有用
--Celia_Chung
2.?re: 和JMS Message Cosumer相關(guān)的幾個問題[未登錄]
評論內(nèi)容較長,點擊標(biāo)題查看
--daniel
3.?re: 關(guān)于Java中的遞歸調(diào)用
遞歸有沒在詳細(xì)的解釋呢
--maco
4.?re: 關(guān)于weblogic中使用Dom4j、Xerces導(dǎo)致執(zhí)行線程掛起的問題
niu
--,,,
5.?reool shrinking(disabling)問題分析
我只能旁觀了,發(fā)表不了任何意見哈,因為不懂。
--power cord
閱讀排行榜
1.?java.lang.ClassNotFoundException和java.lang.NoClassDefFoundError的區(qū)別(9679)
2.?關(guān)于通過JDBC調(diào)用SQLServer 存儲過程出現(xiàn)“服務(wù)器無法繼續(xù)該事務(wù)的問題”----[SQLServer]The server failed to resume the transaction. Desc:**************(9105)
3.?Weblogic10.3.5 數(shù)據(jù)庫連接被異常回收問題解析(7682)
4.?weblogic92連接池的連接數(shù)異常問題(7143)
5.?Weblogic Apache Plugin由HALF_OPEN_SOCKET_RETRY引起的“No backend server available”(6652)
評論排行榜
1.?關(guān)于JMS Message Pending的問題(9)
2.?Weblogic中因為IP變更導(dǎo)致SubCoordinator not available,Transaction RollbackException問題調(diào)查(7)
3.?淺析weblogic10 plugin中的DynamicServerList (6)
4.?JVM TI學(xué)習(xí)(1)----如何中斷weblogic中stuck thread(6)
5.?Weblogic Apache Plugin由HALF_OPEN_SOCKET_RETRY引起的“No backend server available”(5)
WLS10.3.0中,連接測試導(dǎo)致的connection pool shrinking(disabling)問題分析
問題的描述在上面,我這里簡單復(fù)述一下這個問題:當(dāng)應(yīng)用被加載的時候,會有大量的請求被觸發(fā),這時可以看到連接數(shù)迅速增長到110,活動連接數(shù)也達(dá)到102。但后來發(fā)現(xiàn),連接數(shù)迅速下降到40,同時看到“Failed Reserve Request Count”迅速增長。同時Oracle DBA也報告說很多新的連接被建立(遠(yuǎn)大于之前的110)。應(yīng)用開始拋出“XX connection pool is disabled”的錯誤。一段時間以后,連接池自我恢復(fù)完畢,連接重新回到110,但DBA看到連接此時沒有減少,任然維持在240左右。
直覺上來看,這個問題應(yīng)該是連
接池臨時disable或者flush導(dǎo)致的,而不是shrink導(dǎo)致(從后面的pool disable也能看出來,pool是被disable而不是shrink了),可以通過netstat看一下db端的連接狀態(tài),應(yīng)該很多處于close_wait狀態(tài),記連接關(guān)閉請求由weblogic端發(fā)起,但截至問題發(fā)生的時刻,連接本身尚未關(guān)閉。為什么會出現(xiàn)連接池臨時disable的狀況呢?問題根源在于test-connections-on-reserve的設(shè)定后,當(dāng)某個連接的idle時間超過
SecondsToTrustAnIdlePoolConnection 后,這個連接在返回客戶端之前,會進(jìn)行連接測試。測試之前,WLS首先會調(diào)用checkHang()來檢查之前的連接測試是否存在掛起的現(xiàn)象,如果掛起,我們需要disable整個connection pool,同時重新初始化這個連接池。那么什么情況下,連接測試會被視為掛起呢?
當(dāng)一個連接被測試后(在測試結(jié)果返回之前),測試記錄(TestRecord)會被記錄到一個叫做
currentlyRunningTests
的TreeSet變量中,當(dāng)測試返回后,無論結(jié)果成功與否,這個record都會被從
currentlyRunningTests
中刪除。在連接被測試之前,checkHang()被調(diào)用,checkHang的邏輯如下:
1
//
check and process test hang
2
private
void
checkHang()
throws
ResourceDisabledException
3
{
4
TestRecord checkRecord
=
getCheckRecord();
5
boolean
hanging
=
suspectHang(checkRecord);
6
int
loopCount
=
0
;
7
while
(hanging
&&
(loopCount
<
SLEEP_COUNT))
{
8
try
{Thread.sleep(getCurrentTypicalTime());}
catch
(Exception e)
{}
9
10
hanging
=
checkRecord.equals(getCheckRecord());
11
loopCount
++
;
12
}
13
14
//
still hanging, disable the pool
15
if
(hanging)
{
16
disabledUponHangTestFailure
=
true
;
17
try
{suspend(
false
);}
catch
(Throwable ignore)
{}
18
try
{destroyAllResources(OP_POOL_PURGE);}
catch
(Throwable ignore)
{}
19
20
}
21
}
當(dāng)
currentlyRunningTests
中的記錄數(shù)超過五條的時候,第六條會被返回,否則不會返回測試記錄,即suspectHang將返回false。而當(dāng)記錄數(shù)超過五條的時候,我們會拿第六條記錄作為checkHang的樣本。每次連接測試成功后,wls會將這一次的測試時間作為一個樣本時間,記錄到一個
successfulTestTimes數(shù)組中,這個數(shù)組最多維護(hù)10條記錄,然后wls會這10個時間中,最長的那個作為樣本測試時間。最后再用這個樣本測試時間
*TYPICAL_TIME_FACTOR(hard-coded value is 1.2)作為連接返回時間,如果我們的樣本record測試時間已經(jīng)超過樣本測試時間,那么suspectHang將返回true, 否則返回false。如果suspectHang返回true,當(dāng)前線程進(jìn)入for循環(huán),sleep20次(
SLEEP_COUNT
)后,如果測
試仍然沒有返回,且
currentlyRunningTests
中前五個測試記錄也沒有返回的話,那么這個測試將會被視為測試掛起,這個pool就會被disable。可能引起這問題的條件是:之前的數(shù)據(jù)庫性能很好,測試都能夠迅速返回,可能測試耗時都是毫秒級的。突然某一時刻,數(shù)據(jù)庫性能急劇下降,導(dǎo)致測試耗時很長(當(dāng)然包括前面的五條測試記錄)。WLS以之前的測試時間作為樣本時間來衡量此時此刻的測試結(jié)果,在數(shù)據(jù)庫性能下降、測試響應(yīng)慢的時候,很容易被當(dāng)成測試掛起來處理(即disable整個pool)。
于是客戶端看到了pool被disable的現(xiàn)象,那么Pool什么時候會被重新初始化呢,pool中有一個Healh Maintainece Task,每隔五秒,這個task會啟動一次,用于檢查那些被disabled的pool,如果連接測試通過,那么這個Pool會被重新enable。
這個實現(xiàn)方式不是很好,于是10.3.4中對這塊做了重新設(shè)計。我們現(xiàn)在看看10.3.4中是如何實現(xiàn)的吧!
10.3.4引入了一個可配置變量weblogic.resourcepool.max_test_wait_secs,默認(rèn)為10秒,如果通過-Dweblogic.resourcepool.max_test_wait_secs將它設(shè)為0,那么連接測試的時候,將不再做checkHang。如果這個值不是0,那么checkHang的最長等待時間將是這個指定的值,而不再像10.3.0中,最長等待時間為樣本時間*20。同時修改了TYPICAL_TIME_FACTOR,這個值由1.2變成了10,這個值得修改對suspectHang有一定影響,但影響不大,這個參數(shù)也是硬編碼的,客戶不能對它進(jìn)行配置。這兩個參數(shù)中,對checkHang影響比較大的還是weblogic.resourcepool.max_test_wait_secs,所以如果碰到類似問題,可以通過適當(dāng)?shù)男薷倪@個值來解決問題。
posted on 2011-03-22 14:45
走走停停又三年
閱讀(2863)
評論(1)
編輯
收藏
所屬分類:
Weblogic
FeedBack:
#
reool shrinking(disabling)問題分析
2011-03-22 15:34 |
power cord
我只能旁觀了,發(fā)表不了任何意見哈,因為不懂。
回復(fù)
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
Weblogic10.3.5 數(shù)據(jù)庫連接被異常回收問題解析
WLS10.3.0中,連接測試導(dǎo)致的connection pool shrinking(disabling)問題分析
weblogic92連接池的連接數(shù)異常問題 (二)
Weblogic Apache Plugin由HALF_OPEN_SOCKET_RETRY引起的“No backend server available”
weblogic92連接池的連接數(shù)異常問題
如何在Weblogic的全局事務(wù)執(zhí)行多線程操作
關(guān)于JMS Message Pending的問題
Weblogic92中使用JDBC store存儲session時,unique constraint violated(唯一約束沖突)相關(guān)問題分析
關(guān)于weblogic中jms message的狀態(tài)
和JMS Message Cosumer相關(guān)的幾個問題
Copyright ©2025 走走停停又三年 Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
午夜一级免费视频
|
亚洲va久久久噜噜噜久久狠狠
|
99ee6热久久免费精品6
|
亚洲人成在线免费观看
|
免费A级毛片无码久久版
|
亚洲国产成人久久精品影视
|
亚洲人成色在线观看
|
sss日本免费完整版在线观看
|
国产成人精品免费大全
|
亚洲精品无码久久不卡
|
亚洲va在线va天堂va手机
|
中文字幕免费视频精品一
|
在线观看成人免费
|
亚洲自偷精品视频自拍
|
国产一级a毛一级a看免费视频
|
亚洲娇小性色xxxx
|
日韩免费在线观看视频
|
免费人成激情视频
|
人人爽人人爽人人片av免费
|
在线a级毛片免费视频
|
亚洲国产精品婷婷久久
|
精品熟女少妇av免费久久
|
国产亚洲综合成人91精品
|
国产jizzjizz免费视频
|
亚洲免费观看网站
|
亚洲?V乱码久久精品蜜桃
|
亚洲免费在线视频
|
无码中文字幕av免费放
|
亚洲AV无码成人精品区狼人影院
|
西西人体44rt高清亚洲
|
男女猛烈激情xx00免费视频
|
四虎成人免费影院网址
|
深夜a级毛片免费视频
|
国产精品亚洲A∨天堂不卡
|
免费看黄视频网站
|
亚洲另类视频在线观看
|
亚色九九九全国免费视频
|
99亚洲乱人伦aⅴ精品
|
国产免费变态视频网址网站
|
国产情侣久久久久aⅴ免费
|
亚洲AV无码国产在丝袜线观看
|