2009-10-30 16 views
9

Herkese öper.Zombi konuları beynimi yeme (J2EE, Tomcat, Hazırda Bekletme, Kuvars)

İşte sorun şu ki, bazı eski ish J2EE kodlarını kullanarak, iş parçacığı tükenmekte olduğum Quartz kullanarak. jconsole bana, yaklaşık 100 (!!) 'in çalıştığı armut şeklindeki 60K iplikten kısa olduğunu söylüyor. Sezgi ve bazı googling (ayrıca bkz. here) neler olup bittiğine dair bir şey (ben Quartz'i kandıyorum) asla temizlenemeyen yönetilmeyen iplikler yaratıyor.

Çeşitli subquestions:

  1. Ben parçacığı oluşturma izlemek için kolayca kullanabileceğiniz bir araçtır, bu yüzden sorun gerçekten Kuvars olduğu belli olmaz?

  2. Benzer sorunlar hakkında bulduğum her şey Weblogic; Tomcat için bu sahte bir nedendir?

  3. Bilinen bir çözümü olan var mı?

J2EE'yi yaptığımdan beri yıllar geçti, bu, basitçe çözülebilecek bir şeyse çok şaşırmam.

Güncelleme: Açıkça bağlı olmaksızın konuları artıyor, jconsole bu arsa bakın.

They're dead, Jim http://i35.tinypic.com/33vnarn.png

+0

İplik adlarında herhangi bir desen fark ediyor musunuz?Ben sorun kukuleta Quartz kullanır, kuvars değil, kendisi için –

+8

+1 klavyede, bilmem gereken her şeyi anlatır. Av tüfeğini denedin mi? – Anthony

+0

Matt, JEE hata ayıklama araçlarıyla gerçekten güncel değilim (sadece öneriler için ayrı bir soru sordum: http://stackoverflow.com/questions/1650881/state-of-the-art-in-j2ee-debugging-and -monitoring-tools/1650922 # 1650922) Bu yüzden henüz yapmadım. Ancak, yönetilmeyen iplikleri yumurtlamaya neden olan bilinen bir Quartz hatası var. –

cevap

4
  • deneyin fazla bilgi almak için debug org.quartz.simpl.SimpleThreadPool günlük düzeyini artırmak için.

  • Bu işe yaramazsa, bir günlük dinleyici deneyin. Quartz, tutorial numaralı belgede belirtilen bir JobListener arabirimine sahiptir. Bir dinleyici, işin yürütülmesini izlemenize yardımcı olabilir. Belki işler bitmez ve çıkmazlar.

  • Dişlerin bitmesini durdurmak için org.quartz.threadPool.threadCount'u yapılandırın.

güncelleme:

  • Ayrıca, bir iş parçacığı dökümü almak ve iplik istatistikleri görmek isteyebilirsiniz. visual vm, TDA adlı bir eklentiye sahiptir veya doğrudan Thread dump analyzer'u kullanabilirsiniz.

  • Her halükarda, bilinen bir hata olup olmadığını görmek için kuvars versiyonunu kontrol edin.

+0

Marcelo, jconsole arsa, iş parçacığının açıkça sınırsızca büyüdüğünü gösterir. Hmm, o resmi eklemeliyim. –

0

jvisualvm ile bir göz attınız - biraz daha bilgi verir.

Ayrıca, iş parçacığının ne beklediğini görmek için yığın izleri alın. Orada bir şey hissedebilirsin.