数日間のデバッグの後、中規模から大規模の Web アプリケーションをリークなしで Tomcat 6.0.32 に正常に再デプロイすることができPermGen
ました。いっぱいになった後にドロップが見られPermGen
、クラスローダーがガベージコレクションされました。
大喜びした後、Maven と Jetty プラグインで構成される開発環境で、アプリケーションをリークなく再デプロイできるようにしました。
残念ながら、以下のスクリーンショットに示すように、サーバーの制限に達したようです
あなたのキットのスナップショット http://img811.imageshack.us/img811/7320/jettyclassloaderbeanelr.png
Jetty リクエスト スレッドにはBeanElResolver
、Web アプリケーションから複数のクラスへの強い参照がある への強い参照があります。
この情報をフラッシュする方法についての参照は見つかりませんでした。
PermGen
この最後のリークをアプリケーションから削除するにはどうすればよいですか?
アップデート:
問題を解決するために次のことを行いましたが、うまくいきませんでした。
- Jetty プラグインの最新バージョン (7.4.5 と 8.0.0.M3 の両方) に更新されました。
- CMSコレクターを使用しました:
-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled
更新 2:
- これは、Jetty イシュー トラッカーのバグとして報告しました: maven-jetty-plugin: PermGen リークによる javax.el.BeanELResolver