[Seasar-user:13241] Re: Tomcat5.0.28 使用時のメモリ解放について

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2008年 3月 11日 (火) 22:27:17 JST


大谷です。

お世話になっております。

>S2ContainerServlet を使っていれば,その destroy() で
>SingletonS2ContainerFactory#destroy() も
>呼び出されるはずですが,S2ContainerServlet を
>使っていないのでしょうか?

特に理由はないのですが、独自にサーブレットを作成してその中で
S2ContainerServletと
同じようなことをしています。(その他、システムに必要な機能なども多少実装して
います。)


>WebappClassLoader でロードされたクラスがどこかに
>キャッシュされているんでしょうね.
>ヒープダンプとか使うと犯人が分かるかも.

今、ヒープダンプをWebOTXのサポートチームに送付して分析してもらっています。
(-XX:+HeapDumpOnOutOfMemoryErrorオプションを使用して出力したものです。)

HeapDumpOnOutOfMemoryErrorを使うとOutOfMemoryErrorの直前に「完全な
GC(?)」を
行うらしく、しばらくはそれでクラスが解放されるような状態になっていたのです
が、
そのうちに現象が再発してヒープダンプが出力されるようになっていました。
(理由は今のところよくわかりません。)

-XX:+HeapDumpOnOutOfMemoryErrorオプションの解説:
http://docs.hp.com/ja/12587/jdk_rnotes_6.0.00.htm



>素のままの Tomcat 5.0 で再現するならこちらでも
>調査できるのですが,どうなんでしょうか?

今確認してみましたが、現象は同じです。(Tomcat 5.0.28で確認)
デプロイ時にアンロードが行われず、ひたすらロードし続けます。

ParmGenSpaceが発生するところまでは確認できていないのですが、ログの内容から
すると
最終的には発生すると思われます。


調査していただけるならとても嬉しいです。
可能であればお願いしたいです。



Seasar-user メーリングリストの案内