हाल ही में हमारे उत्पादन टोमकैट सर्वर में से एक अप्रतिबंधित हो गया क्योंकि टॉमकैट के व्यस्त धागे 200 तक चले गए। जब हमने पुनरारंभ करने से पहले थ्रेड डंप लिया तो हमें TIMED_WAITING में 100 थ्रेड मिले इन 3 धागे की तरह राज्य:टॉमकैट में 100 धागे TIMED_WAITING, जिससे यह स्टॉल हो जाता है क्योंकि थ्रेड की कुल संख्या 200
""http-bio-7007"-exec-241" daemon prio=10 tid=0x00002aaab107b000 nid=0x59df waiting on condition [0x0000000051239000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000580d877d0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:424)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:86)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:32)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)
""http-bio-7007"-exec-237" daemon prio=10 tid=0x00002aaab186e000 nid=0x596d waiting on condition [0x000000004d1f9000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000580d877d0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:424)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:86)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:32)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)
""http-bio-7007"-exec-236" daemon prio=10 tid=0x00002aaab1118000 nid=0x596c waiting on condition [0x000000004e50c000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000580d877d0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:424)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:86)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:32)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)
हम है 4 आवेदन की धागा पूल (जैसे पूल-4-धागा -20 आदि) भी है जो 20 धागे कर रहे हैं प्रत्येक तो मैं नहीं अवरुद्ध, जिस पर ये 100 धागे इंतज़ार कर कतार यकीन ? हम c3P0 कनेक्शन पूल का उपयोग हाइबरनेट के साथ कर रहे हैं जो इस कारण का प्रतीत नहीं होता है।
कोई विचार क्या java.util.concurrent.locks.AbstractQueuedSynchronizer $ ConditionObject है?
क्या आपने हेप डंप लेने और इसे [MAT] (http://www.eclipse.org/mat/) के माध्यम से चलाने के लिए क्या ऑब्जेक्ट जमा कर रहे हैं? –
इस समय हमें एक ही समस्या है। यहां तक कि टॉमकैट को पुनरारंभ करने में भी मदद नहीं मिली। फिर से काम करने के बाद evrything काम किया। अजीब! बीमार आगे की जांच करें और अगर मुझे कुछ दिलचस्प लगे तो रिपोर्ट करेंगे। – Janning
इसका हाइबरनेट से कोई लेना-देना नहीं है क्योंकि आज रात हमारे पूरे सर्वर फार्म में इस समस्या का सामना करना पड़ा और उनमें से कुछ बिना किसी हाइबरनेट या डेटाबेस स्टैक के छवि सर्वर हैं। – Janning