2012-02-27 43 views
2

我需要測試WLST腳本來檢查weblogic部署中某些託管實例上的卡住線程。不幸的是,當我需要測試時,我無法解決我的卡住線程問題。我如何故意創建一個卡住的線程來測試腳本的檢測?我的想法目前一直是睡眠一個線程比Weblogic的設置上的卡住的線程限制更多,但這也比網頁的超時更長。所以我的請求應該在線程卡住之前暫停。 Apache commons executor是另一個想法......有沒有人有一個優雅的解決方案來重現這個醜陋的問題?創建一個卡住的線程(Weblogic)(J2SE)(1.5)

+0

請確定你需要複製的確切行爲。 – 2012-02-27 19:45:00

+0

當我使用'get(「domainRuntime:/ ServerRuntimes/server1/ThreadPoolRuntime/ThreadPoolRuntime/ExecuteThreads」)查詢給定運行時的線程並遍歷線程時,我需要找到一些'thread.isStuck )'返回true – wmarbut 2012-02-27 20:42:12

+0

定義「卡住」 – 2012-02-27 21:06:25

回答

0

如果你想有一個阻塞線程,你可以簡單地將其掛起

synchronized(this){ 
    wait(); 
} 
1

首先,你永遠不應該創建一個Java EE環境線程,它是由規範禁止的。如果你的應用程序正在這樣做,你總會遇到問題。

無論如何,一個「卡住的線程」有點含糊不清。你可以把你在進入一個無限循環:

while(true){ 
try{ 
    Thread.sleep(1000); 
} catch (Exception e){ 
    break; 
} 
} 

,或者你可以將其鎖定在監視器上:

while (true){ 
new Object().wait(); 
}