[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 メーリングリストの案内