轉自:http://blog.csdn.net/z69183787/article/details/12647539
聲明:出現這個問題有程序方面、網絡方面、weblogic設置方面等等原因,此文章主要講述由於weblogic設置而導致的解決辦法。
因為:
1.程序問題,需要項目自己去解決,weblogic在做優化處理也於事無補。
2.網絡中斷或者認為關閉交互這種情況也不能用weblogic處理(這點我是這么認為的)
一、說明:
,"weblogic.kernel.Default"是從客戶端提交請求后產生的線程所在的隊列名。這個隊列的線程數默認是15個。如果超過15個線程堵塞,則部署的應用將不能訪問。同時后台報:
<2008-2-27 下午09時37分48秒 CST> <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '14' for queue: 'weblogic.kernel.Default' has been busy for "1,720" seconds working on the request "Http Request: /myapp/test/index.jsp", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
2,線程數(Tread Count):指派到weblogic.kernel.Default隊列的線程數。如果你不需要使用超過15個線程(默認),就不必更改這個屬性值。
如果發送該請求較多,很有可能會導致weblogic的線程阻塞,嚴重會引起weblogic掛起現象。
可以通過以下幾種方法解決:
1)修改StuckThreadMaxTime參數,將默認的600s改成1200s,或者其它適合的值。
2)增大線程數,防止線程阻塞問題。
3)優化程序,減少處理時間。
二、修改辦法
------------------------------------------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓修改辦法↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓---------------------------
1) 如何修改StuckThreadMaxTime參數值:http://lujinan858.iteye.com/blog/986237
啟動weblogic服務,進入控制台:
your_domain->Environment->Servers->your_server->Configuration->Tuning->Stuck Thread Max Time
如下圖:
2)怎樣增大線程數
window環境下修改【bea】\user_projects\domains\my_domain\bin\setDomainEnv.cmd文件,查詢最下面set JAVA_OPTIONS=%JAVA_OPTIONS%
改為:
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.threadpool.MinPoolSize=50
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.threadpool.MaxPoolSize=300