0

Weblogic にデプロイされた webapp に取り組んでいます。数回の再デプロイの後、PermGen のスペースが不足したため、webapp にクラスローダーのリークがあると結論付けなければなりませんでした...

私は Yourkit を使用してそのリークを調査していますが、どのクラス ローダーがリークしているのかさえわからないため、行き詰まっていることに気付きます。 . 名前からして、そうでないものもあると推測できますが、それでも多くの可能性が残されています。

アプリケーションを使用する前後のクラスローダーのリストを比較しようとしましたが(有効なアプローチですか?)、ほとんどのクラスローダーは同じクラスのカップルのインスタンスであるため、どのインスタンスかわかりません。私が興味を持っているものです。

Yourkit によって報告されるクラス ローダー クラスは次のとおりです。

  1. sun.misc.Launcher$AppClassLoader
  2. weblogic.utils.classloaders.GenericClassLoader
  3. weblogic.utils.classloaders.ChangeAwareClassLoader
  4. java.net.URLClassLoader sun.misc.Launcher$ExtClassLoader
  5. weblogic.servlet.jsp.JspClassLoader
  6. weblogic.diagnostics.query.QueryCompiler
  7. sun.reflect.DelegatingClassLoader
  8. javax.management.remote.rmi.NoCallStackClassLoader

これらのどれが Weblogic で Web アプリケーションのクラスをロードするために使用されているかを既に知っている場合は、Weblogic のドキュメントで見つけられなかったので、それは既に役に立ちます。そして、特定のクラスローダーインスタンスを見つけるための方法論を提案できる人はいますか?

4

1 に答える 1

0

GenericClassLoader最後に、 andの各インスタンスのロードされたクラスのリストを調べChangeAwareClassLoader(最も可能性が高いと思われるため)、独自のクラスがあるかどうかを確認しました (パッケージのフィルタリング)。webapp クラス ローダーは のインスタンスですChangeAwareClassLoader

于 2014-03-27T10:31:39.400 に答える