Problème de blocage Java: pourquoi la JVM bloque-t-elle les threads dans de nombreuses classes / méthodes?

Mise à jour: Cela ressemble à un problème de mémoire. Un 3,8 Go Hprof fichier indiqué que la JVM a été dumping-son-tas lors de ce "blocage" s'est produite. Notre équipe des opérations vu que le site n'était pas de répondre, prit une trace de la pile, puis arrêtez l'instance. Je crois qu'ils ont fermé le site avant le dump du tas fini. Le journal avait pas erreurs/exceptions/indices de problèmes, probablement parce que la JVM a été tué avant qu'il peut générer un message d'erreur.

Question D'Origine
Nous avons eu une situation récente où l'application est apparu --à l'utilisateur final--à accrocher. Nous avons obtenu une trace de la pile avant le redémarrage de l'application et j'ai trouvé quelques résultats surprenants: de 527 fils, 463 avait thread état BLOQUÉ.

Dans le Passé
Dans le passé thread bloqué généralement eu ce problème:
1) certains évident goulot d'étranglement: par exemple, certains enregistrement de base de données de serrure ou de verrou de système de fichier problème qui a causé d'autres threads en attente.
2) Tous les threads bloqués serait sur le bloc de la même classe/méthode (par exemple, jdbc ou du système de fichiers clases)

Des Données Inhabituelles
Dans ce cas, je vois toutes sortes de classes/méthodes bloqués, y compris jvm classes internes, jboss classes, log4j, etc, en plus des classes de l'application (y compris jdbc et lucene appels)

La question
quelle serait la cause d'une JVM pour bloquer log4j.La hiérarchie.getLogger, java.lang.de réfléchir.Constructeur.newInstance? De toute évidence, certains ressource "rare" mais qui de la ressource?

grâce

sera

Trace De La Pile D'Extraits

http-0.0.0.0-80-417" daemon prio=6 tid=0x000000000f6f1800 nid=0x1a00 waiting for monitor entry [0x000000002dd5d000]
java.lang.Thread.State: BLOCKED (on object monitor)
at sun.reflect.GeneratedConstructorAccessor68.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at org.jboss.ejb.Container.createBeanClassInstance(Container.java:630)
http-0.0.0.0-80-451" daemon prio=6 tid=0x000000000f184800 nid=0x14d4 waiting for monitor entry [0x000000003843d000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getMethod0(Class.java:2670)
"http-0.0.0.0-80-449" daemon prio=6 tid=0x000000000f17d000 nid=0x2240 waiting for monitor entry [0x000000002fa5f000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.register(Http11Protocol.java:638)
- waiting to lock <0x00000007067515e8> (a org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.createProcessor(Http11Protocol.java:630)
"http-0.0.0.0-80-439" daemon prio=6 tid=0x000000000f701800 nid=0x1ed8 waiting for monitor entry [0x000000002f35b000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.Hierarchy.getLogger(Hierarchy.java:261)
at org.apache.log4j.Hierarchy.getLogger(Hierarchy.java:242)
at org.apache.log4j.LogManager.getLogger(LogManager.java:198)

source d'informationauteur user331465