[Seasar-user:13191] Tomcat5.0.28 使用時のメモリ解放について
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2008年 3月 7日 (金) 21:27:05 JST
大谷と申します。
初めて投稿させていただきます。
開発中のアプリケーションのテストを行っているのですが、アプリケーションの配
備、配備解除を
繰り返すと「OutOfMemory(ParmGenSpace)」が発生してしまいます。
アプリケーションの稼働中にもParmGenSpaceが発生しアプリケーションサーバ
が停止してしまうこともあります。(頻度は少ないですが)
■動作環境
WebOTX Ver7.1 WebEdition(Tomcat5.0.28ベース)
Seasar 2.4.22
jdk150_07
<jvm-options>
-Xms1024m
-Xmx1024m
-XX:MaxPermSize=384m
-XX:PermSize=384m
■原因
以下のページの情報によれば、このバージョンのTomcatのバグ(?)でメモリが解放
されないようです。
(Tomcat6では解消されているようです。)
http://blogs.boxysystems.com/2007/4/11/tomcat-v5-0-28-memory-leak-exposed
https://issues.apache.org/bugzilla/show_bug.cgi?id=26135
■質問
上記URLのbugzillaの方に、以下のように書かれています。
----------------------------------------------------------------------------
After doing a bit more searching I found that the Spring framework solves
this
problem by providing a servlet context listener class
(http://www.springframework.org/docs/api/org/springframework/web/util/Introspec
torCleanupListener.html) that calls Introspector.flushCaches() when a
context
is destroyed.
Springフレームワークがサーブレットコンテキストリスナーのクラスを提供するこ
とによって
この問題を解決するのがわかった。
(
http://www.springframework.org/docs/api/org/springframework/web/util/IntrospectorCleanupListener.html)
このリスナーはコンテキストが破棄された際にIntrospector.flushCaches()をコー
ルします。
※文中のURLはリンク切れ
----------------------------------------------------------------------------
S2でもspringと同様に解放処理を行うことはできませんでしょうか?
(WebOTXのサポートチームの方にも対応をお願いしていますが、もしこちらで対応
可能であればと思い投稿させていただきました。)
よろしくお願いします。
Seasar-user メーリングリストの案内