Threads im Weblogic-Klassenlader stecken festJava

Java-Forum
Anonymous
 Threads im Weblogic-Klassenlader stecken fest

Post by Anonymous »

Wir haben hier eine Situation, in der mehr als 100 Threads auf einem von Weblogic (10.3.6) verwalteten Server feststecken.
Ich analysiere einen Threaddump und finde, dass 150 Threads blockiert sind und auf einen warten Sperren Sie den Klassenlader, etwa:
"jmsContainer-14" prio=10 tid=0x00007f11485d7000 nid=0x14c8 waiting for monitor entry [0x00007f1023590000] java.lang.Thread.State: BLOCKED (on object monitor) at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:48) - waiting to lock (a weblogic.utils.classloaders.ChangeAwareClassLoader) at ch.qos.logback.classic.spi.PackagingDataCalculator.loadClass(PackagingDataCalculator.java:207)
(10 Vorkommen)
oder
"[STUCK] ExecuteThread: '30' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f10d002d800 nid=0x5ea5 waiting for monitor entry [0x00007f1136eeb000] java.lang.Thread.State: BLOCKED (on object monitor) at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:48) - waiting to lock (a weblogic.utils.classloaders.ChangeAwareClassLoader) at javax.xml.datatype.FactoryFinder.getProviderClass(FactoryFinder.java:115) at javax.xml.datatype.FactoryFinder.newInstance(FactoryFinder.java:181)
(137) Vorkommen
Nicht alle hängengebliebenen Threads werden aus demselben Grund blockiert, aber wir haben 150 Threads, die darauf warten, sie zu sperren gleiche Sperre , was ich seltsam finde, weil sie im classLoader ist.
Ich glaube nicht, dass es die Hauptursache für das Problem ist, das wir gerade haben, aber wenn Jemand könnte dieses Verhalten erklären, es könnte eine große Hilfe sein.
Danke
BEARBEITEN:
Hier ist der blockierende Thread:
ExecuteThread '136' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f11484af800 nid=0x7640 runnable [0x00007f102c11b000]
java.lang.Thread.State: RUNNABLE
at sun.nio.cs.UTF_8$Encoder.encode(UTF_8.java:632)
at java.util.zip.ZipCoder.getBytes(ZipCoder.java:86)
at java.util.zip.ZipFile.getEntry(ZipFile.java:306)
- locked (a java.util.jar.JarFile)
at java.util.jar.JarFile.getEntry(JarFile.java:226)
at weblogic.utils.classloaders.ZipClassFinder.getSource(ZipClassFinder.java:39)
at weblogic.utils.classloaders.JarClassFinder.getSource(JarClassFinder.java:50)
at weblogic.utils.classloaders.AbstractClassFinder.getClassSource(AbstractClassFinder.java:31)
at weblogic.utils.classloaders.MultiClassFinder.getClassSource(MultiClassFinder.java:58)
at weblogic.utils.classloaders.MultiClassFinder.getClassSource(MultiClassFinder.java:58)
at weblogic.utils.classloaders.MultiClassFinder.getClassSource(MultiClassFinder.java:58)
at weblogic.utils.classloaders.MultiClassFinder.getClassSource(MultiClassFinder.java:58)
at weblogic.application.utils.CompositeWebAppFinder.getClassSource(CompositeWebAppFinder.java:88)
at weblogic.utils.classloaders.MultiClassFinder.getClassSource(MultiClassFinder.java:58)
at weblogic.utils.classloaders.MultiClassFinder.getClassSource(MultiClassFinder.java:58)
at weblogic.utils.classloaders.CodeGenClassFinder.getClassSource(CodeGenClassFinder.java:25)
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:291)
- eliminated (a weblogic.utils.classloaders.ChangeAwareClassLoader)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:49)
- locked (a weblogic.utils.classloaders.ChangeAwareClassLoader)
at javax.xml.datatype.FactoryFinder.getProviderClass(FactoryFinder.java:115)
at javax.xml.datatype.FactoryFinder.newInstance(FactoryFinder.java:181)

Entschuldigung, ich hätte es früher posten sollen.
Fast alle Threads sind blockiert oder durch eine von zwei Codezeilen blockiert, die dies enthalten Codestück:
DatatypeFactory.newInstance().newXMLGregorianCalendar(dateDebCre)

Anscheinend ist Weblogic sehr bemüht, das gleiche JAR immer wieder zu laden. Was ich nicht verstehe, weil es in einem Cache im Speicher gespeichert werden soll, oder?
Zuerst werden wir diese Codezeilen entfernen, da sie völlig nutzlos sind (schade). Ist). Aber auch hier denke ich, dass es besser wäre, das Problem zu verstehen.
Vielen Dank

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post