2012-02-09 191 views
2

當我的測試用例掛起時,我設法生成線程轉儲。但是,它似乎並不是一個僵局,一個競爭條件或資源爭奪。但是在3個虛擬用戶的加載測試工具中運行測試用例時,它確定掛起。任何人都可以在這裏指出我正確的方向?乾杯java線程掛起導致其他線程掛起(續)

"Servlet.Engine.Transports : 387" daemon prio=5 tid=0x15386f8 nid=0x943 waiting on monitor [0xb4781000..0xb4781a00] 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:415) 
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161) 
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669) 

"Servlet.Engine.Transports : 385" daemon prio=5 tid=0x51e898 nid=0x93e waiting on monitor [0xb3281000..0xb3281a00] 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:415) 
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161) 
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669) 

"Servlet.Engine.Transports : 384" daemon prio=5 tid=0x464760 nid=0x93d waiting on monitor [0xb3381000..0xb3381a00] 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:415) 
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161) 
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669) 

"Servlet.Engine.Transports : 382" daemon prio=5 tid=0x1141de8 nid=0x8a0 waiting on monitor [0xb3581000..0xb3581a00] 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:415) 
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161) 
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669) 

"Servlet.Engine.Transports : 380" daemon prio=5 tid=0x1151ad8 nid=0x6b5 waiting on monitor [0xb3e81000..0xb3e81a00] 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:415) 
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161) 
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669) 

"Servlet.Engine.Transports : 366" daemon prio=5 tid=0x1a1d110 nid=0x3fb waiting on monitor [0xb4b81000..0xb4b81a00] 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:415) 
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161) 
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669) 

"Servlet.Engine.Transports : 365" daemon prio=5 tid=0x4e8bd8 nid=0x3fa waiting on monitor [0xb6281000..0xb6281a00] 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:415) 
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161) 
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669) 

"Servlet.Engine.Transports : 362" daemon prio=5 tid=0x17055b0 nid=0x3f7 waiting on monitor [0xb3481000..0xb3481a00] 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:415) 
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161) 
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669) 

"Servlet.Engine.Transports : 356" daemon prio=5 tid=0x1ddbae0 nid=0x3f1 waiting on monitor [0xb9c01000..0xb9c01a00] 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:415) 
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161) 
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669) 

"Servlet.Engine.Transports : 299" daemon prio=5 tid=0x2519028 nid=0x3b5 waiting on monitor [0xb6001000..0xb6001a00] 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:415) 
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161) 
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669) 
+5

看到代碼可能有幫助......你的線程正在等待一個緩衝區,你確定它不是空的? – Dmitri 2012-02-09 06:03:31

+1

我認爲目前形式的問題是無法回答的。根本沒有足夠的信息。 – NPE 2012-02-09 09:22:08

回答

0

除非你有自己的com.ibm。*類運行,它看起來像所有這些線程都是正常的「我在等待着什麼做的」應用程序服務器的線程。你確定這是完整的線程轉儲嗎?看起來你的測試可能已經執行並完成了,容器正在等待某件事......?

+0

感謝您的回覆,我不允許在此處粘貼所有完整線程轉儲。我的跑步測試最終確實完成,但在完成之前還有很長一段時間沒有活動。測試運行8分鐘,最後3分鐘變平。難道它不應該一直重複這些網絡活動嗎? – dale 2012-02-09 06:19:33